关于crontab任务命令产生得垃圾
作者 : Yullin 发布时间 : August 15, 2010 分类 : 技术共享最近在整理系统得时候发现一个目录很大/var/spool/clientmqueue/,占了好几个G,去问GOOGLE老师得知.原来罪魁祸首是cron,具体原因是:
系统中有用户开启了cron,而cron中执行的程序有输出内容,输出内容会以邮件形式发给cron的用户,而sendmail没有启动所以就产生了这些文件。文件路径是在/var/spool/clientmqueue/,如果长时间不清理的话,此目录就会变得很大很大,这对于磁盘空间绝对是一个浪费!
解决的办法就是:将crontab里面的命令后面加上> /dev/null 2>&1
举个例子:
#crontab -l
10 3 * * * /home/backscript/tar.sh
#more /home/backscript/tar.sh
#!/bin/sh
cd /home/test
tar czvf test.tar.gz ./
#vi /home/backscript/tar.sh
#!/bin/sh
cd /home/test
tar czvf test.tar.gz ./ >/dev/null 2>&1
知识点:
2>:重定向错误。
2>&1:把错误重定向到输出要送到的地方。即把上述命令的执行结果重定向到/dev/null,即抛弃,同时,把产生的错误也抛弃。
而/var/spool/clientmqueue/目录的清理方法如下:
#cd /var/spool/clientmqueue/
#ls | xargs rm -f
或者直接用:
#find /var/spool/clientmqueue/ -name "*" | xargs rm -rf
以上没有直接用rm是因为rm有一次删除数量的限制,如果直接用rm删除的话会报错:bash: /bin/rm: Argument list too long。
标签: linux, clientmqueue
当前暂无评论 »