4步骤实现Debian系统环境精简优化

  • 第一步、升级Debian系统
  1. apt-get update&&apt-get upgrade

需要说明的是,在操作这些步骤最好是在我们刚重装系统,而不是在已经运行网站中优化机器,以免出现机器问题。

  • 第二步、移除多余的软件
  1. apt-get -y purge apache2-* bind9-* xinetd samba-* nscd-* portmap sendmail-* sasl2-bin

到底这些软件有什么用途呢?

  1. apache2-* //apache服务器,一般我们自己会用一键安装包安装
  2. bind9-* //我们不需要用VPS搭建DNS,所以去掉
  3. xinetd //xinetd是服务守护进程
  4. samba-* //samba能让linux使用windows共享功能,不需要
  5. nscd-* //DNS缓存软件,同bind9,不需要
  6. portmap //端口转发,一般Web服务器不需要
  7. sendmail-* //发送邮件用,如果有需要保留
  8. sasl2-bin //一个权限程序,占用资源,删除
  • 第三步、删除多余组件
  1. apt-get -y purge lynx memtester unixodbc python-* odbcinst-* sudo tcpdump ttf-*
  • 第四、清理缓存文件
  1. apt-get autoremove && apt-get clean

通过上述4步,就可以完成对debian系统的精简优化。

不编译修改潘多拉Pandorabox openwrt固件

基于网上帖子修改(原贴http://www.openwrt.org.cn/bbs/thread-14787-1-1.html)

现在能刷固件的路由器太多了,买来路由器,网上找一下教程,分分钟搞定。如果固件不合适,有人还会自己下载代码,编译固件,真是折腾无止境。可编译固件可不是闹着玩的,需要很长时间编译不说,里面好多配置,也不是那么容易搞清楚的,那么,怎样在不重新编译固件的前提下对固件进行修改呢?这就是本文要介绍的,在不重新编译固件的前提下,对已有的固件进行修改。这样做一可以省去繁琐的编译工作,二可以精简不需要的功能,减小固件体积,节省路由器空间,也可以增加软件,放进固件里(固件压缩后,也会节省不少空间),减少刷固件后安装软件的麻烦。

言归正传,下面开始。开始之前,简单介绍一下本文以MT7620为例,使用Ubuntu系统(12.10),一个解压合并脚本,解压合并程序(程序来自于 openwrt-sdk,如https://downloads.openwrt.org/barrier_breaker/14.07/ramips/mt7620a/OpenWrt-SDK-ramips-for-linux-x86_64-gcc-4.8-linaro_uClibc-0.9.33.2.tar.bz2),使用本文提供的脚本和程序可以直接对MT7620系列固件进行修改,其余系列固件不保证。

以下操作基于Ubuntu 12.10

1. 拷贝程序mksquashfs4,padjffs2,unsquashfs4至/bin目录,同时,给与可执行权限,如sudo chmod 755 mksquashfs4

2. 拷贝固件bin(本文固件)和modify.sh,脚本也需要可执行权限。至同一目录下,如~/Desktop/Pandora

3. 解压固件(需要root权限)。

  • cd ~/Desktop/Pandora
  • ./modify.sh e mt7620.bin

4. 修改固件(需要root权限), 删掉或增加相应的功能。

5. 合并固件。

  • cd ~/Desktop/Pandora
  • ./modify.sh c mt7620_new.bin

拷贝程序后,可以一劳永逸的使用这几个程序,解压合并固件也很快,主要的工作都是在第四步,修改固件。另外,固件体积是以128kb为单位增加的。也就是说,如果你精简或增加的软件体积很小的话,可能不会引起固件体积的变化。

假设需要从mt7620.bin(http://downloads.openwrt.org.cn/PandoraBox/Xiaomi-Mini-R1CM/testing/PandoraBox-ralink-mt7620-xiaomi-mini-squashfs-sysupgrade-r1216-20150721.bin)固件中删除samba。解压./modify.sh e mt7620.bin,进入squashfs-root目录,查找相关samba的目录,(find ./ -name *samba*),基本可以确认,查找出来的这些文件(确认是否有别的程序依赖于这些程序),然后全部删除。从./squashfs-root/usr/lib/opkg/status文件里删除相应的samba块(由于samba删除了,smb相关功能可能会影响,这里不深入了)。然后合并 ./modify.sh c mt7620_new.bin。比较一下新老固件大小,7864324 mt7620.bin, 7077892 mt7620_new.bin,小了0.75M。按照这个思路,可以去精简比如usb,print,ss,smb等等。增加的话,需要从别的固件找到对应文件,拷贝到对应目录。

脚本及相应程序附件

[url href=yun.wuwenwu.com/Openwrt]点击下载[/url]

巧用find命令删除Linux下乱码文件及文件夹

在Linux下遇到乱码文件或文件夹,一般还是可以用通配符来试试的,或者配合Tab补全功能。但是适用率很低,也可以有其它五花八门的方法,这里介绍巧用find命令来解决这难题!

删除文件

在Linux中,每个文件都有一个节点编号,我们可以利用此来搞定乱码,首先查看乱码文件的节点号

  1. ls -i
  2. 660136 whmcs_v631_full??%98?%96??%8E%9F?%89%88.zip

 前面的就是节点号了,接下来使用find命令查询并且删除

  1. find -inum 660136 -delete

-inum指根据节点号查询;-delete顾名思义就是删除操作了。这样就成功删除乱码文件了,值得注意的是,此方法只适用于删除文件或空的文件夹

删除文件夹

对于文件夹,尤其是非空的文件夹,上面的方法就不适用了,要用到另外的参数来实现,首先相同的是查看乱码文件夹的节点号

  1. ls -i
  2. 18612483 瑗块.?.. – Thank you, Love(128kbps) 2016.05.27

接下来使用find命令删除

  1. find -inum 18612483 -exec rm -rf {} ;
  2. find: ./瑗块.?.. – Thank you, Love(128kbps) 2015.06.27: No such file or directory

虽然提示我们找不到此文件或文件夹,但其实已经表明删除了。-exec作用是查找后执行命令,其中{}代表前面查询到的结果,空格+;是结束符,其它就不说了。-exec后可以跟任何常用命令,因此这方法不但适用于文件夹,文件也可以。

小技巧

怎么批量删除呢?其实很简单,用for就好了

文件

  1. for n in 22413315 22413314;do find -inum $n -delete;done

文件夹

  1. for n in 22413315 22413314;do find -inum $n -exec rm -rf {} ;;done

$n是变量名,与for后面定义的一致,其它没啥好说的,适用其它操作。

后记

不仅仅是删除,其它基本操作如改名、移动、复制等都适用的。

LNMP 下使用命令导出导入 MySQL 数据库

作为站点或服务器运维人员,网站的备份与还原操作是必须熟练的。MySQL 数据库的导出和导入操作是必不可少的,对于一般的用户,可能使用的比较多的是 phpMyAdmin 这样的可视化操作界面,但是这种界面操作在数据库比较大的情况下,经常出错。

如果你对Linux下的命令比较熟悉,并且自己使用的是 vps 或云服务器的话,可以使用 MySQL 相关命令来导出和导入数据库,非常方便高效!

导出数据库

导出数据库为 db_wp.sql.gz 文件:

  1. mysqldump -u数据库用户名  -p数据库密码 –add-drop-table –complete-insert 数据库名 | gzip > db_wp.sql.gz

请注意根据自己的实际情况,修改上面的“数据库用户名”、“数据库密码”、“数据库名”为具体的值,一般来说,“数据库用户名”应该使用最高权限的 root,数据库密码应该为 root 用户的密码

导入数据库

因为我们刚才导出的数据库是 gz 压缩的,所以导入前我们需要解压:

  1. gzip -d db_wp.sql.gz

解压出来的文件为 db_wp.sql,然后导入到数据库:

  1. mysql -u数据库用户名 -p数据库密码 数据库名 < db_wp.sql —default-character-set=utf8

mysql 错误 server has gone away

在操作过程中,可能会出现 mysql server has gone away 的错误,这是数据库太大,缓存不够或操作超时导致的,可以修改下 mysql 的配置来解决:

1、打开配置文件(这里演示的是军哥的 lnmp 下的配置文件,如果你的路径不是这个,自己找到)

  1. vi /etc/my.cnf

2、找到 wait_timeout、interactive_timeout 两个变量,设置值为

  1. wait_timeout=2880000
  2. interactive_timeout = 2880000

如果没有这两个参数,直接添加即可

3、再找到max_allowed_packet,增加这个变量的值,比如 100M (也可以设置自己需要的大小)

  1. max_allowed_packet = 100M

max_allowed_packet 参数的作用是,用来控制其通信缓冲区的最大长度。

当然,其他参数可以根据自己的需要调整:

4、重启 mysql 服务即可

Debian mutt无法发送邮件 exim4发送邮件到外网

这两天迁移服务器,本来那个的centos ,现在改成了Debian系统,在安装了mutt之后无法发送邮件至外网。本来以为是mutt的问题,后来查阅了资料发现是体制不同的原因。

centos 使用的 sendmail 发送邮件,而debian使用的是exim4 发送邮件。

在默认情况下 exim4 是不允许发送邮件至外网的,下面我们自己配置一下。

修改配置文件:

  1. vi /etc/exim4/update-exim4.conf.conf
  2. dc_eximconfig_configtype=local
  3. 将这一行改成
  4. dc_eximconfig_configtype=internet

然后重启服务:

  1. /etc/init.d/exim4 restart

ENJOY IT!

debian6开机启动脚本的方法

在debian6中,加入开机启动脚本的方法与debian5不同了,直接做符号链接到runlevel已经不起作用了,提示缺少LSB信息,并且用insserv来替代update-rc.d:

  1. root@14:/etc/rc2.d# update-rc.d -n  php_fastcgi.sh  defaults
  2. update-rc.d: using dependency based boot sequencing
  3. insserv: warning: script ‘K02php_fastcgi’ missing LSB tags and overrides
  4. insserv: warning: script ‘K01php_fastcgi.sh’ missing LSB tags and overrides
  5. insserv: warning: script ‘php_fastcgi.sh’ missing LSB tags and overrides
  6. insserv: warning: current start runlevel(s) (emptyempty) of script `php_fastcgi.sh’ overwrites defaults (2 3 4 5).
  7. insserv: warning: current stop runlevel(s) (0) of script `php_fastcgi.sh’ overwrites defaults (0 1 6).
  8. insserv: dryrun, not creating .depend.boot, .depend.start, and .depend.stop
  9. # insserv /etc/init.d/php_fastcgi.sh
  10. insserv: warning: script ‘K02php_fastcgi’ missing LSB tags and overrides
  11. insserv: warning: script ‘php_fastcgi.sh’ missing LSB tags and overrides

debian6中将脚本加入到开机启动的方法:

在脚本中加入LSB描述信息。

  1. # more  /etc/init.d/php_fastcgi.sh
  2. #!/bin/sh
  3. ### BEGIN INIT INFO
  4. # Provides:          php_fastcgi.sh
  5. # Required-Start:    $local_fs $remote_fs $network $syslog
  6. # Required-Stop:     $local_fs $remote_fs $network $syslog
  7. # Default-Start:     2 3 4 5
  8. # Default-Stop:      0 1 6
  9. # Short-Description: starts the php_fastcgi daemon
  10. # Description:       starts php_fastcgi using start-stop-daemon
  11. ### END INIT INFO

安装启动脚本到system init script。

  1. insserv -v -d /etc/init.d/php_fastcgi.sh

重启机器试试吧。

Fancyindex+Nginx,打造自己的简约下载站

近期折腾了一个下载站,用来方便大家和自己,存储一些东西,地址:http://yun.wuwenwu.com/

关于Fancyindex模块美化Nginx的Index的功能已经到处都是了,百度上一下就行,简单总结下安装教程。

  • 1.准备一个纯净的Linux环境,编译nginx,不会的话直接安装LNMP就行,
  • 推荐:军哥一键包 下载地址 :http://lnmp.org/download.html
  • 2.安装Fancyindex模块。
  1. wget http://nginx.org/download/nginx-1.9.13.tar.gz
  2. tar -xzvf nginx-1.9.13.tar.gz
  3. git clone https://github.com/aperezdc/ngx-fancyindex.git ngx-fancyindex
  4. nginx -V //得到Nginx的参数,全部复制
  5. cd nginx-1.9.13
  6. ./configure –add-module=../ngx-fancyindex 你刚才复制的参数
  7. make
  8. make install
  • 3.LNMP新建一个主机,不需要数据库,和普通开通虚拟主机一样的步骤。
    4.修改conf文件。
  1. server {
  2. listen       80;
  3. server_name  down.wuwenwu.com;
  4. index index.html index.php index.html;
  5. root /data/wwwroot/down.wuwenwu.com;
  6. fancyindex on;
  7. fancyindex_exact_size off;
  8. fancyindex_localtime on;
  9. fancyindex_footer /footer.html;
  10. fancyindex_header /header.html;
  11. fancyindex_ignore footer.html header.html;
  12. }
  • 完成后重启Nginx service nginx reload
  • 5.提供一份页面头部和底部的美化模板,完成后放在网站的根目录下。
  • (1)新建一个header.html
  1. <html xmlns=“http://www.w3.org/1999/xhtml”>
  2. <head><meta http-equiv=“content-type” content=“text/html; charset=utf-8”/>
  3. <style type=“text/css” media=“screen”>
  4. body,html {background:#fff;font-family: “Lucida Grande”,Calibri,Arial;font-size: 13pt;color: #333;background: #f8f8f8;}
  5. tr.e {background:#f4f4f4;}
  6. th,td {padding:0.1em 0.5em;}
  7. th {text-align:left;font-weight:bold;background:#eee;border-bottom:1px solid #aaa;}
  8. #top1 {width:80%; font-size:28px; margin: 0 auto 5px auto;}
  9. #top2 {width:80%; font-size:18px; margin: 0 auto 5px auto;}
  10. #footer {width:80%;margin: 0 auto; padding: 10pt 0;font-size: 10pt;text-align:center;}
  11. #footer a {font-size: 14px; font-weight: normal; text-decoration: underline;}
  12. #list {border:1px solid #aaa;width:80%;margin: 0 auto;padding: 0;}
  13. a {color: #b00;font-size: 11pt;font-weight: bold;text-decoration: none;}
  14. a:hover {color: #000;}
  15. #readme {padding:0;margin:1em 0;border:none;width:100%;}
  16. </style>
  17. <script type=“text/javascript”>// <!CDATAfunction ngx_onload(){var f=document.getElementById(‘readme’);if(!(f&&f.contentDocument))return;f.style.height=f.contentDocument.body.offsetHeight+’px’;f.contentDocument.body.style.padding=’0′;f.contentDocument.body.style.margin=’0′;}// ]]></script>
  18. <title>LuckTang下载站</title>
  19. </head>
  20. <body onload=“ngx_onload()”>
  21. <h1 id=“top1”>文件目录列表</h1>
  22. <h1 id=“top2”>Directory listing of
  • (2)新建一个footer.html
  1. <!– footer START –>
  2. <div id=“footer”>
  3. <div id=“themeinfo”>
  4.  <a href=“http://www.wuwenwu.com/1502.html” target=“_blank” title=“LuckTang Download Center”>想拥有这样的一个下载站?</a> | <a href=“http://www.wuwenwu.com” target=“_blank”>LuckTang博客</a>  | <a href=“http://www.wuwenwu.com/linux/” target=“_blank”>Linux学习笔记</a> | <a href=“http://www.116ss.com” target=“_blank”>免费SS</a>
  5.  </div>
  6. <div id=“copyright”>
  7. 本站所有资源均来源于互联网络,仅供学习参考之用,不得用于商业用途 2015-2016 Powered by LuckTang
  8. 由于服务器在国外,即使对其进行了网络优化仍存在不稳定的因素,较大的文件建议使用迅雷等离线下载的方式先下载到离线下载服务器,再自行下载到本地以节约下载时间,中国大陆地区以外的服务器之间传输一般不受影响</div>
  9. </div>
  10. <!– footer END –>
  • html文件请根据自己的需要修改即可。

ImageMagick存在远程代码执行安全漏洞(CVE-2016-3714)附修复方法

ImageMagick-CVE-2016-3714

ImageMagick是一个免费的创建、编辑、合成图片的软件。它可以读取、转换、写入多种格式的图片。图片切割、颜色替换、各种效果的应用,图片的旋转、组合,文本,直线,多边形,椭圆,曲线,附加到图片伸展旋转。在本周二,ImageMagick披露出了一个严重的0day漏洞,此漏洞允许攻击者通过上传恶意构造的图像文件,在目标服务器执行任意代码。低于7.0.1-1和6.9.3-10版本均可能会有安全风险。

LNMP上也附带此组件,但默认不安装,如果你安装了ImageMagick并使用了此组件,建议对其进行升级。目前不受影响版本为ImageMagick 7.0.1-1和6.9.3-10。

LNMP 1.3beta版中已经进行了更新,lnmp用户可以执行:

  1. wget http://soft.vpser.net/lnmp/lnmp1.3beta.tar.gz -O lnmp1.3beta.tar.gz &&  tar zxf lnmp1.3beta.tar.gz && cd lnmp1.3 && ./addons.sh install imagemagick

回车确认后将重新安装ImageMagick升级到不受影响的版本。

也可以手动如下安装:

  1. wget http://soft.vpser.net/web/imagemagick/ImageMagick-7.0.1-1.tar.gz
  2. tar zxf ImageMagick-7.0.1-1.tar.gz
  3. cd ImageMagick-7.0.1-1
  4. ./configure –prefix=/usr/local/imagemagick
  5. make && make install
  6. cd ../

不报错的话就升级成功了。

CentOS下系统时间同步和时区的修改和设置

一、修正时区

  1. rm -rf /etc/localtime    #删除当前默认时区
  2. ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
  3. #复制替换默认时区为上海

SSH执行以上命令,将VPS时区修改为中国上海的时区,当然,也可以设置中国香港或北京的时间。

二、手动修正时间

  1. date -s ’09:16:00 2016-05-08′

使用“date”命令,修改时间和日期为2013年5月8日,时间是上午9点16分0秒。

三、时间自动同步和校正

  1. yum install -y ntp        #安装时间同步服务(组件)
  2. ntpdate us.pool.ntp.org   #设置同步服务器
  3. date                      #查看当前时间

部分系统已经安装了NTP服务,系统会根据当前记录的时区(第一步操作)自动连接ntp服务器校正时间。