在使用scp复制文件到远程服务器的时候,复制失败,提示远程服务器没有足够的空间。
登录服务器之后,使用df -lh
查看了下空间是够的。
然后我使用df -i /
或者 df -ih
查看了下文件inode数量,发现是这个爆满了。
这个没有解决方法,就是删除文件。
inode表示允许的文件数量。
解决方法:
执行命令查看文件数目
find / -xdev -printf '%h\n' | sort | uniq -c | sort -k 1 -n
发现 在目录/var/spool/postfix/maildrop
下有两百多万的文件
搜了下这个目录底下是什么
由于 Linux 在执行 cron 时,会将 cron 执行脚本中的 output 和 warning 信息,都会以邮件
的形式发送 cron 所有者, 而由于客户环境中的 sendmail 和 postfix 没有正常运行,导致邮件
发送不成功,全部小文件堆积在了 maildrop 目录下面,而且没有自动清理转换的机制,所以长达一
年的时间,此目录已堆积了大量的文件。查看 man cron 的信息,可以知道会发送给 cron owner.
进入到目录底下,把文件全部删除了,功能恢复。
但是这个只是治标。没有从根源上解决问题。
搜了下解决方法,主要有两个
1.修改crontab
vi /etc/crontab
,把MAILTO=root
修改成 MAILTO=""
,我测试无效。。
2.在crontab命令那边解决
command >/dev/null 2>&1