突然接到警报,某一台机的磁盘快要爆掉了。登录上去一看,/var分区只剩20%的空间。
- [root@localhost var]# df -h /var
-
Filesystem Size Used Avail Use% Mounted on
-
/dev/sda5 3.0G 2.3G 597M 80% /var
由上面命令可以看出,/var分区已经用了2.3G,再到/var目录内
- [root@localhost var]# du -sh *
-
12K account
-
2.1M cache
-
16K crash
-
28K db
-
32K empty
-
75M lib
-
8.0K local
-
96K lock
-
4.9M log
-
16K lost+found
-
4.0K mail
-
32K net-snmp
-
8.0K nis
-
8.0K opt
-
8.0K preserve
-
204K run
-
11M spool
-
8.0K tmp
-
24K yp
奇怪,df命令明明显示,/var分区已经被占用了2.3G,而du命令却显示只用到100多M,搜了一下两者的区别:du是把目录下所有的文件统计另起来,而df是从文件系统考虑,统计被分配出去的空间,并且包括被程序申请占用的空间。
如果看来,/var目录下应该有大量空间被某个程序占用了。
- [root@localhost var]# lsof /var
-
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
- crond 7432 root cwd DIR 8,5 4096 314881 /var/spool
- sendmail 7536 smmsp cwd DIR 8,5 3145728 314890 /var/spool/clientmqueue
- sendmail 7536 smmsp 3uW REG 8,5 660279296 215705 /var/spool/clientmqueue/dfpA4AA2Bf007536 (deleted)
- crond 7538 root cwd DIR 8,5 4096 314881 /var/spool
- sendmail 7643 smmsp cwd DIR 8,5 3145728 314890 /var/spool/clientmqueue
- sendmail 7643 smmsp 3uW REG 8,5 660234240 215708 /var/spool/clientmqueue/dfpA4AK2V9007643 (deleted)
- crond 15167 root cwd DIR 8,5 4096 314881 /var/spool
- crond 17323 root cwd DIR 8,5 4096 314881 /var/spool
- sendmail 17430 smmsp cwd DIR 8,5 3145728 314890 /var/spool/clientmqueue
- sendmail 17430 smmsp 3uW REG 8,5 940290048 176076 /var/spool/clientmqueue/dfp8O8U5KJ017430 (deleted)
由上,可看到该目录下有进程7536、17430等占用了空间,后面括号里的deleted表示该文件已经被删除了,但进程还在,所以df仍然会认为空间被占用了。
- [root@localhost var]# kill -9 7643 7536 17430
杀死这些进程后,再运行df命令,磁盘空间已经正常了。
- [root@localhost var]# df -h /var
-
Filesystem Size Used Avail Use% Mounted on
-
/dev/sda5 3.0G 119M 2.7G 5% /var
阅读(2053) | 评论(0) | 转发(0) |