/var/spool/clientmqueue下文件清理和产生

  收到公司机器的报警,根目录的使用率超过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 任务,写法基本如下,输出都没有重定向。

  30 3 * * * sh /home/user/xx.sh
  解决方法:

  30 3 * * * sh /home/user/xx.sh > /dev/null 2>&1


  删除正在写的文件

  删除正在写的文件一般用 cat /dev/null > file,而不是直接rm(直接rm会造成文件删除空间不释放的问题)。
  避免需要杀死进程的情况。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值