关于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



上一篇:rsync的一些常见问题
下一篇:Ubuntu 下Chromium的ibus输入法问题

当前暂无评论 »

添加新评论 »

You must enable javascript to see captcha here!