在执行rm、mv、cp等命令的时候,如果要操作的文件过多(例如:使用通配符或正则表达式处理),就会报错 “argument list too long”
现象
生产上的一台跑批服务器有很多定时任务,在某一天通过crontab命令添加定时任务后,出现报错:
crontab : installing new crontab
cron/tmp/crontab.xxxxx: no space left on device
crontab :edits left in /tmp/crontab.xxxxx
排查思路
根据现象判断是磁盘空间慢了
crontab的写入文件位置是在/var/spool/cron/用户名,并且默认会发送邮件到/var/spool/postfix/maildrop/,所以需要检查var目录的空间剩余情况
解决问题
经查看,/var目录占分区大小的90%,需要删除文件
执行 rm *的时候报错,“argument list too long”,因为待处理的文件过多
使用find命令删除文件
find /var/spool/postfix/maildrop -type f -exec rm -f {} ;