cannot create temp file for here-document: No space left on device

第一眼看到这个错误是不是就觉的是磁盘满了呢,但是df看怎么都没有100%占用的。没错,原始的感觉是对的,但是分叉路不对,习惯了df -h,就忘记了inode这东西,因为它也会满,所以要双管齐下

先df -h查看磁盘文件大小占用的空间,有则清理

如果df -h查看磁盘未满,就df -i 查看inode占用比例,如果满也是清理

不过inode清理需要找到是哪里占用了,不像du -hs一样能从上往下查到某个文件,不过大概率都是文件太多导致inode被用光了,查找的方法可以参考cnblog前人共享的方式

for i in /var/*; do echo $i; find $i |wc -l; done

这里粘贴一个本人遇到的案例,/var/spool/postfix/maildrop目录下的文件。这个里面包含了cron定时任务发送给root的内容,定义在/etc/crontab里面:

# head /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root

把MAILTO=root改成MAILTO="", 重启systemctl restart crond.service就不会再生成文件了

 

看到这里才理解,为什么之前看到crontab里面的定时任务都会重定向到/dev/null,都是有意义的

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据