分类 技术 Technology 下的文章
解决 sendmail 邮件队列文件的磁盘溢出问题
最近准备重新回归运维,很好。前一阵子易先生打电话说服务器上 session 失效,他在公司又不方便 ssh 上去看。于是我为了自己的博客勉为其难上去看了一下,结果发现 /var 下面居然爆满溢出了。
www# df -h
在啧啧称赞之外,准备找出在 /var 下面所有大于 1MB 的文件:
Filesystem Size Used Avail Capacity Mounted on
/dev/ad0s1a 989M 59M 851M 7% /
devfs 1.0K 1.0K 0B 100% /dev
/dev/ad0s1d 989M 2.2M 908M 0% /tmp
/dev/ad0s1e 19G 1.6G 16G 9% /usr
/dev/ad0s1f 989M 910M -384K 100% /var
/dev/ad0s1g 124G 1.7G 113G 2% /www
/dev/ad2s1d 9.7G 1.4G 7.5G 16% /database
/dev/ad2s1e 139G 42G 85G 33% /backup
www# find /var -xdev -size +2048 -ls| sort -r +6
这个搜索结果是相当的恐怖,可以用眼花缭乱来形容当时的屏幕滚动。强行中止后发现绝大部分文件都集中在 /var/spool/clientmqueue 这个目录下面。那么这到底是个什么目录呢?
原来,当使用 sendmail 发邮件,或者系统默认要发邮件(譬如 crontab)的时候,首先会把邮件复制到这个目录里,然后等待 MTA 处理。MTA 做的事情就是把这个目录中的邮件转移到 /var/spool/mqueue,然后再发往目的地。
在 /var/spool/clientmqueue 下产生大量文件的情况,通常是因为没有合适的 MTA 来发送邮件,于是都堆积在这里了。假如这里的邮件并不是你需要的,比如由 crontab 产生的信,你可以简单地删除。
还有一种情况,当这个目录下面的文件数量足够多的时候,直接 rm -f * 的话会被提示 Argument list too long。没事,下面两个命令会帮助你搞定问题:
find /var/spool/clientmqueue/ -type f –delete
或者
find /var/spool/clientmqueue/ -type f -exec rm {} \+
不过这两条命令要求 find 的版本较新,如果你的文件版本较低,可尝试:
find /var/spool/clientmqueue/ -type f -exec rm {} \;
到这里,我们已经搞明白 /var 爆满的原因。可以判断的是,易先生服务器的问题就在于系统中有用户启用了 crontab,且 crontab 中执行的程序有输出内容。这些内容会以邮件形式发给 crontab 的用户,而 sendmail 又没有启动,所以就大量产生了这些队列文件。
解决的办法很简单,在 crontab 中命令的最后加上:
>/dev/null 2>&1
这样输出的内容会被直接抛弃,问题就得以解决了。
最后也顺便提一下禁用 sendmail 的事情。本地 MTA 正确工作是 Unix 系统正确工作的一个必要条件。盲目禁止 sendmail 意味着对安全的不关注。如果你不打算启动任何邮件服务,就不应该使用 sendmail_enable="NONE",而应使用 sendmail_enable="NO"。
当然,你也可以考虑用下面的办法来彻底消除其影响,但我认为没什么必要。在 /etc/make.conf 中加入:
NO_SENDMAIL=yes
然后 make buildworld installworld,然后用 find 删除 lib、libexec、usr/bin、usr/sbin 等目录中没有被碰过的文件,最后删除 /etc/mail、/etc/rc.d/sendmail 等文件。这个方法来源于网络,没有亲自实验,请谨慎操作。
INSTALL=install
MySQL 安装后配置细节及 PureFTPd 报错处理
应易先生的要求,我对《快速搭建 FAMP 环境》一文作如下补充。
对 MySQL 依次进行 configure、make、make install 后,还需要执行初始化数据库、配置权限等操作,具体如下:
www# /usr/local/mysql/bin/script/mysql_install_db --user=mysql
安装 PureFTPd 的过程简单,不再赘述。但经常能遇到这样的报错:
www# pw groupadd mysql
www# pw useradd mysql -g mysql -s /sbin/nologin
www# chown -R mysql:mysql /usr/local/mysql/var
www# /usr/local/mysql/bin/mysqld_safe --user=mysql &
Shared object "libmysqlclient.so.15" not found, required by "pure-ftpd"
一般遇到这样的情况,可以这样操作:
关于之前爆出的 S60 系统“Curse of Silence”漏洞
我是今年 1 月 2 日在 CB 上看到有关这个事情的新闻,当晚就短信通知了我身边使用 Nokia 智能手机的朋友,并致电 Nokia Care Line(4008800123)咨询相关情况。诺基亚客服称暂时没有接到用户举报,他们会继续关注这个情况,并让我留下了联系方式。
第二天有人在 CB 上给出了临时解决方案和最早发现这个漏洞的德国 Chaos Computer Club 组织(域名可能被 walled)所演示这个漏洞的一个视频。
随后的几天,其他媒体开始反应过来,纷纷报道。
其实国内最早发布这则新闻的是这个网站。这个页面显示试验这个漏洞的过程,并提供专杀工具的汉化版下载。
该漏洞涉及机型如下:
1、S60 3rd Edition,Feature Pack 1(S60 3.1):
Nokia E90 Communicator、Nokia E71、Nokia E66、Nokia E51 、Nokia N95 8GB、Nokia N95、Nokia N82、Nokia N81 8GB、Nokia N81、Nokia N76、Nokia 6290、Nokia 6124 classic、Nokia 6121 classic、Nokia 6120 classic、Nokia 6110 Navigator、Nokia 5700 XpressMusic。
2、S60 3rd Edition,initial release(S60 3.0):
Nokia E70、Nokia E65、Nokia E62、Nokia E61i、Nokia E61、Nokia E60、Nokia E50、Nokia N93i、Nokia N93、Nokia N92、Nokia N91 8GB、Nokia N91 、Nokia N80、Nokia N77、Nokia N73、Nokia N71、Nokia 5500、Nokia 3250。
3、S60 2nd Edition,Feature Pack 3(S60 2.8):
Nokia N90、Nokia N72、Nokia N70。
4、S60 2nd Edition,Feature Pack 2(S60 2.6):
Nokia 6682、Nokia 6681、Nokia 6680、Nokia 6630。
通过国外研究者的报告以及 CNPDA 的验证,发现:
1、S60 2.8 / 3.1 系统的诺基亚手机,在收到十余条该短信时会出现“内存不足,请先删除一些短信”类似提示,并且无法收到新短信。
2、其他上述提及系统的诺基亚手机,收到一条该短信后便无法收到新短信,且无任何提示。
鉴于该漏洞的严重危害性,请所有使用上述机型的机友:
1、S60 3.1 系统的手机,进入短信息收件箱时,出现“内存不足,请删除一些短信”等提示时,很可能已经中招。
2、其他上述提及但非 3.1 系统的手机,长时间收不到短信息。
据分析,这个漏洞是利用了手机电子邮件程序代码段的内存溢出。程序在处理有特殊伪造的信息时,由于控制不严导致内存越界,从而被利用。到底是一段什么代码呢?出于人道主义考虑,我就不再重复张贴漏洞利用方式了,在这里你或许可以找到答案和一些相关的情况描述。
另外,你还可以在这里和这里看到一些已经遭受伤害的同学的经历和具有献身精神的小白鼠做的实验过程。
大约在 1 月 7 日的时候,诺基亚终于回应称“正与运营商商谈解决”。
截至今天的更多的信息,可以通过这里查阅。
对德国组织发布的视频感兴趣的朋友,可以在这里下载到。
关于专杀工具,除了上面说的 CNPDA 可以下载到以外,还可以在这里下载。另外我这里也提供一份专杀工具的分流下载吧。
最后,和谐地祝愿与我一样使用 Nokia 智能机的朋友好运。
Typecho 0.3 alpha 释出
Typecho 是一个开源的跨平台博客系统,在 GPL Version 2 许可证下发行。它基于 PHP(需 PHP5 以上版本)构建,它是轻量级的、面向对象的,并抛弃了繁琐的 MVC 构建方式,将所有的功能单纯地封装为一个模块(也就是Widget),使其更加适合开源的并发开发模式。
关于 Typecho 更多的介绍,请参阅我之前的一篇文章和官方博客相关文章。
目前我们发布的是一个 0.3 alpha(这里是下载地址,70 同学已经用上 Typecho 了)。既然是预览版,就一定存在很多不足。我们欢迎用户向我们提交这些问题,或是任何需求。也可以参与 Typecho 的论坛讨论。
以下引用 sluke 同学慷慨激昂的陈词:
如果你是 PHP 爱好者,看看代码,一定不会让你失望; 如果你是设计师,看看后台设计和 CSS,一定不会让你失望; 如果你是狂热的开源粉丝,看看 Typecho 使用的 GPL 开源协议,一定不会让你失望; 如果你是一个普通的博客程序用户,可以忽略本帖,因为一个襁褓里的程序不适合你……无论如何,对该项目有兴趣的朋友请关注 www.typecho.org。