/var/spool/clientmqueue 爆满问题
当你使用简单的sendmail发邮件的时候,或者系统默认要发一些邮件(比如cron发的邮件)的时候,首先会把邮件拷贝到这个目录里,然后等待MTA(mail transfer agent) 来处理,MTA做的事情通常是把这个目录中的邮件弄到/var/spool/mqueue里,然后再发送到真正的目的地。出现/var/spool/clientmqueue/非常大的情况通常因为没有合适的MTA发送邮件,就都积累在这里了,假如这里的邮件并不是你需要的,比如是系统默认发的每分钟跑一次的什么什么cron的信,你可以简单的删掉他们。当然,文件多了一些,直接rm -f *,系统可能会说argument 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 {} \;
原因分析:系统中有用户开启了cron,而cron中执行的程序有输出内容,输出内容会以邮件形式发给cron的用户,而sendmail没有启动所以就产生了这些文件;
解决办法: 1、 将crontab里面的命令后面加上> /dev/null 2>&1
2、知识点:
2>:重定向错误。
2>&1:把错误重定向到输出要送到的地方。即把上述命令的执行结果重定向到/dev/null,即抛弃,同时,把产生的错误也抛弃。
使用du -sh * 或 du -sh /* 查看目录的大小,查找占用空间大的目录
注:/是系统目录,可以cd到当前目录下执行du -sh *
3、具体代码:
(1)、# crontab -u cvsroot -l
01 01 * * * /opt/bak/backup
01 02 * * * /opt/bak/backup2
(2)、# vi /opt/bak/backup
#!/bin/sh
cd /
getfacl -R repository > /opt/bak/backup.acl
(3)、# vi /opt/bak/backup2
#!/bin/sh
week=`date +%w`
tar zcvfp /opt/bak/cvs$week/cvs.tar.gz /repository >/dev/null 2>&1
4、清除/var/spool/clientmqueue/目录下的文件:
# cd /var/spool/clientmqueue
# rm -rf *
如果文件太多,占用空间太大,用上面命令删除慢的话,就执行下面的命令:
# cd /var/spool/clientmqueue
# ls | xargs rm -f
最新文章
- GD库处理图像
- PostgreSQL的OGG -- bucardo
- tomcat mysql 内存溢出的问题
- cf555b
- Excel统计工作簿sheet个数
- opencv学习_15 (利用cmake查看opencv的源码)
- SELECT时为何要加WITH(NOLOCK)
- 如何检测某IP端口是否打开
- [转载]关于android SDK安装Failed to fetch URL http://dl-ssl.google.com/android/repository/addons_list-1.xml出错
- 调用DirectDraw接口和调DirectDraw7接口的不同点对比
- Apple MDM Supported configurable settings
- 基础SELECT示例掌握
- maven问题:如何不继承父工程的依赖
- Linux下安装Redis php-redis扩展 redis重启shell脚本 超详细!
- 大数据mapreduce二分法ip定位之Python实现
- 嵌入式FIFO核的调用
- ios轮播图片用法
- html5 canvas时钟
- Leetcode ——Lowest Common Ancestor of a Binary Tree
- SDOI2010粟粟的书架