No space left on device

在向crontab中添加新的记录时,添加完成后保存报错:/var/spool/cron/tmp.XXXXnewi7F: No space left on device

从报错原因看,是磁盘满了。

使用df -lh查看,发现/var仍然有容量。使用df -i查看,发现/var已经使用了100%。

df -i是什么呢?是用于查看文件结点的,Linux下的目录会建立索引结点(inode),用于索引文件。每个文件都会占用一个索引结点。索引结点是有限的,如果索引结点全部被使用,系统无法给创建的文件分配索引结点,就会报错,新文件就无法创立。

问题根源在于/var/spool/clientmqueue目录下,存在大量的文件。使用ls -l命令查看,直接被刷屏。使用ls | wc -l命令统计了下,存在20W的文件,这就难怪inode被占用完了。

这些文件都是crontab 中执行任务产生的输出,当没有重定向的固定的位置时,全部写入到该目录下的文件中。

现在只要删除这些文件就可以了。那么问题来了,有这么多文件,怎么删除呢?

方法1:find ./*  | xargs rm -rf  或者 find ./* -mtime +30 -type f 

方法2:ls | xargs -n 100 rm -rf 这个是将当前目录下文件列出来,100个为一组(空格隔开),由rm -rf 删除。


参考自:

http://blog.163.com/ly_89/blog/static/186902299201191233058625/

http://www.2cto.com/kf/201311/260596.html


来源:https://blog.csdn.net/szchtx/article/details/41750799

阅读更多
个人分类: linux
上一篇MySQL timestamp的默认值怎么设置?
下一篇Linux Crontab 设置的定时任务没有启动的排查
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭