Linux基础
1 前言
一个问题,一篇文章,一出故事。
今天Zabbix警告说某服务器的“/log”目录显示磁盘空间占用显示100%,同事说已经手动释放部分空间,但是空间占用还是显示100%,感觉非常奇怪。
2 最佳实践
2.1 查看磁盘空间
df -h
可见如下显示,
Filesystem Size Used Avail Use% Mounted on #... /dev/mapper/data-log 98G 98G 0G 100% /log #...
2.2 统计目录空间大小
du -sh /log
可见如下显示,
846M /log/
注:以上log目录的实际大小明显与df的命令显示的100%占用率明显不相符
2.3 查看文件打开情况
lsof -n /log/ | grep deleted
可见如下显示,
java 1924597 app 1w REG 253,12 99411005440 3408006 /log/app.log (deleted) java 1924597 app 2w REG 253,12 99411005440 3408006 /log/app.log (deleted)
注:文件“/log/app.log”已经被“rm”命令删除,删除文件从文件系统的目录结构上解除链接(unlink),但由于文件仍然被进程号“1924597”的程序打开且仍然可读,因此磁盘空间暂时还不能释放。
2.3 释放空间
kill -s 9 1924597
注:杀死正在占用的进程即可释放磁盘空间(如果是服务重启服务亦可)
没有评论