今天发现/var/log/下所有的系统日志都停止写入,只有logrotate后生成的messages.1 messages.2...messages.5,没有messages文件本身,如下:
[root@mydb1 root]# ll /var/log/messages*
-rw-r--r-- 1 root root 99143 Aug 22 04:03 /var/log/messages.1
-rw-r--r-- 1 root root 123929 Aug 15 04:03 /var/log/messages.2
-rw-r--r-- 1 root root 4275 Aug 8 04:03 /var/log/messages.3
-rw-r--r-- 1 root root 3612 Aug 1 04:03 /var/log/messages.4
-rw-r--r-- 1 root root 10995 Jul 25 04:03 /var/log/messages.5
所以怀疑是logrotate后发生系统问题,打算重启syslog服务试试.
[root@mydb1 root]# service syslog restart
Shutting down kernel logger: [ OK ]
Shutting down system logger: [ OK ]
Starting system logger: [ OK ]
Starting kernel logger: [ OK ]
touch: creating `/var/lock/subsys/syslog': No space left on device
[root@mydb1 root]# df
/dev/sdba10 1007880 728736 227948 77% /var 还有空间啊
[root@toridb1 spool]# du -s ./*
490896 ./clientmqueue 通过du命令发现此处占用了很大磁盘空间。
网上搜索说这是sendmail关闭后产生的大量无用文件,可以删除
[root@mydb1 spool]# rm -f /var/spool/clientmqueue/*
-bash: /bin/rm: Argument list too long 无法删除
[root@mydb1 spool]# ls /var/spool/clientmqueue/ | xargs rm -f
[root@mydb1 spool]# 实际未删除文件
[root@mydb1 spool]# cd /var/spool/clientmqueue/
[root@mydb1 clientmqueue]# ls | xargs rm -f 这样才可以删除
[root@mydb1 clientmqueue]# service syslog restart
Shutting down kernel logger: [FAILED]
Shutting down system logger: [ OK ]
Starting system logger: [ OK ]
Starting kernel logger: [ OK ]
[root@mydb1 clientmqueue]# OK,问题解决
根据以上情况,之所以No space left on device报错,我猜测:虽然df显示磁盘空间只使用了77%,但是由于clientmqueue下的文件很小很多,耗尽了inode,所以无法创建新的文件。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/10341434/viewspace-671977/
,如需转载,请注明出处,否则将追究法律责任。