在使用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