1.昨天晚上收到zabbix 报警,磁盘 / 空间已满。
2.登陆上去查看磁盘空间:
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 20G 7.5G 15G 50% /
tmpfs 3.9G 16K 3.9G 1% /dev/shm
/dev/vdb 148G 3.8G 137G 3% /data
由此可见,磁盘空间正常。
3.查看inode 使用情况
查看inode :
# df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/vda3 2289280 2289280 5 100% /
tmpfs 62805 1 62804 1% /dev/shm
/dev/vda1 51200 44 51156 1% /boot
/dev/vdb4 1966080 1327 1964753 1% /data
/ 的inode 已经爆满
4.查看那个分区占用最多
du --max-depth=1 /
...
var 最多
继续查看:
du --max-depth=1 var/
....
spool 最多
继续查看:
du --max-depth=1 spool/
....
clientmqueue 最多
5.查看数量:
ls clientmqueue | wc -l
1248921
哇,竟然有这么多。
6./var/spool/clientmqueue目录文件的由来:
如果系统中有用户开启了cron,而cron中执行的程序有输出内容,输出内容会以邮件形式发给cron的用户,而sendmail没有启动所以就产生了这些文件。
cron输出从定向:
很简单,在cron的自动执行语句后加上> /dev/null 2>&1
7./var/spool/clientmqueue 文件太多 rm -f * 删除会报错,无法删除。使用另外一种删除方法
8.建立空文件夹:
#mkidr /data/haha
# rsync --delete-before -a -H -v --progress --stats haha/ /var/spool/clientmqueue/
.....
deleting dfr787X1dF022679
deleting dfr787W1rw022630
deleting dfr787W1dY022629
deleting dfr787V1Fm022571
.....
rsync 海量删除文件
9.删除完毕,查看:
# df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/vda3 2289280 63766 2225514 3% /
tmpfs 62805 1 62804 1% /dev/shm
/dev/vda1 51200 44 51156 1% /boot
/dev/vdb4 1966080 1331 1964749 1% /data
已经恢复。