/var/spool/clientmqueue下文件清理和产生
2015-12-18 16:14
411 查看
收到公司机器的报警,根目录的使用率超过90%。会影响机器上任务的正常执行。
在机器上执行 du -h --max=depth=1 .,发现在 /var/spool/clientmqueue/ 文件比较多。
处理方式:
删除 /var/spool/clientmqueue/ 下的废弃文件
但是删除之后发现空间并没有释放,原因是因为文件被删除,但是还有进程在读写文件,所以磁盘并没有真正的释放。
使用 lsof | grep deleted 查看
看到被删除的文件打开的命令为 sendmail
原因是:
用户开启了 crontab 任务,crontab 任务有输出内容,输出的内容就会以邮件的形式发送给用户,但是 sendmail 没有启动就产生了 /var/spool/clientmqueue/ 下的文件。但是打开文件的 cmd 就是 sendmail,我的理解是 sendmail 并不知道要怎么发送(配套信息不完整),所以是 sendmail 来打开文件。
将这些进程杀死,空间释放。
crontab任务写法
多数人的 crontab 任务,写法基本如下,输出都没有重定向。
删除正在写的文件
删除正在写的文件一般用 cat /dev/null > file,而不是直接rm(直接rm会造成文件删除空间不释放的问题)。
避免需要杀死进程的情况。
在机器上执行 du -h --max=depth=1 .,发现在 /var/spool/clientmqueue/ 文件比较多。
处理方式:
删除 /var/spool/clientmqueue/ 下的废弃文件
但是删除之后发现空间并没有释放,原因是因为文件被删除,但是还有进程在读写文件,所以磁盘并没有真正的释放。
使用 lsof | grep deleted 查看
看到被删除的文件打开的命令为 sendmail
原因是:
用户开启了 crontab 任务,crontab 任务有输出内容,输出的内容就会以邮件的形式发送给用户,但是 sendmail 没有启动就产生了 /var/spool/clientmqueue/ 下的文件。但是打开文件的 cmd 就是 sendmail,我的理解是 sendmail 并不知道要怎么发送(配套信息不完整),所以是 sendmail 来打开文件。
将这些进程杀死,空间释放。
crontab任务写法
多数人的 crontab 任务,写法基本如下,输出都没有重定向。
30 3 * * * sh /home/user/xx.sh解决方法:
30 3 * * * sh /home/user/xx.sh > /dev/null 2>&1
删除正在写的文件
删除正在写的文件一般用 cat /dev/null > file,而不是直接rm(直接rm会造成文件删除空间不释放的问题)。
避免需要杀死进程的情况。
相关文章推荐
- leetcode -- Repeated DNA Sequences -- 简单但要注意
- fastcgi_finish_request
- NGUI UILabel 代码换行
- building workspace问题
- juicer.js模板引擎入门
- UITableView高级
- 详解 $_SERVER 函数中QUERY_STRING和REQUEST_URI区别
- 【- -】:quick learn
- easy ui datagrid 从编辑框中获取值
- Android PullToRefresh 分析之二、UI结构
- UIViewController
- UIWindow
- Xcode7.2搭UI界面时如何进行横竖屏预览
- ios学习之UISwipeGestureRecognizer手势识别
- 对Map中数据,按value值排序方法
- netty5笔记-线程模型4-MpscLinkedQueue
- netty5笔记-线程模型4-无锁队列MpscLinkedQueue
- 控制Arduino的利器-Windows Remote Arduino
- UIWindows
- iOS 自定义UIButton点击动画特效 —— HERO博客