星期四, 七月 15, 2010

linux var log问题解决


观察新装的几台linux服务器状况,发现var目录超大,连续两周检查,均超大。


大文件分别存储在这些目录中:/var/log/xferlog, /var/cache/logwatch


1,检查发现,xferlog是vsftpd产生的。

而其根源在于vsftpd的缺省配置。

[root@xx~]# grep xfer /etc/vsftpd/vsftpd.conf


xferlog_enable=YES


#xferlog_file=/var/log/vsftpd.log


xferlog_std_format=YES

貌似配置没啥问题,从表面来看也不应该产生xferlog文件,但是偏偏/var/log目录下没有vsftpd.log,只有另一个xferlog
文件。其原因在于xferlog_file
缺省值是/var/log/xferlog,它被注释掉了,所以执行缺省值。




而每天都会进行归档的/etc/cron.daily/logrotate程序的配置中没有包括xferlog文件的规档,但是它已经缺省包含了/var/log/vsftpd.log的归档配置。

[root@xx~]# cat /etc/logrotate.d/vsftpd.log


/var/log/vsftpd.log {


# ftpd doesn't handle SIGHUP properly


nocompress


missingok


}


解决办法很简单,修改/etc/vsftpd/vsftpd.conf配置文件,把xferlog_file前面的#井号去掉。然后重启vsftpd即可。




2,检查发现,logwatch是每天都会增加的。

每天都由/etc/cron.daily/0logwatch来执行和调度。

目前还没有找到太好的办法来控制这些文件的产生。

如果需要手工删除过大的文件,可以通过find来查找。

查找大于1M大小的文件 find . -size +1M -exec ls -l {} ;


估计可以按这种思路去解决:

vi /etc/cron.daily/tmpwatch

增加一行内容,保留100天的归档文件(子目录):


/usr/sbin/tmpwatch --mtime 2400 /var/cache/logwatch






没有评论: