Linux磁盘空间占满问题快速定位并解决
经常会遇到这样的场景:测试环境磁盘跑满了,导致系统不能正常运行!
此时就需要查看是哪个目录或者文件占用了空间。
常使用如下几个命令进行排查:df, lsof,du。
通常的解决步骤如下:
1. df -h 查看是哪个挂载目录满了,常常是根目录/占满
[root@test ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/vda1 50G 25G 22G 54% / tmpfs 7.8G 0 7.8G 0% /dev/shm
2. 快速定位一下应用日志大小情况
比如tomcat日志,应用系统自己的日志等。
3. 如果能直观地看到日志文件过大,则酌情进行删除。有时候删除日志文件之后再df -h查看空间依然被占满,继续排查。
lsof file_name 查看文件占用进程情况,如果删除的日志正在被某个进程占用,则必须重启或者kill掉进程。
[root@test ~]# lsof /usr/local/apache-tomcat-7.0.54/logs/catalina.out COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME java 7053 root 1w REG 202,1 958123 1180888 /usr/local/apache-tomcat-7.0.54/logs/catalina.out java 7053 root 2w REG 202,1 958123 1180888 /usr/local/apache-tomcat-7.0.54/logs/catalina.out
4. 如果不能直观地排除出是某个日志多大的原因,就需要看一下指定目录下的文件和子目录大小情况,使用du命令。
du -h --max-depth=1 <path> | sort -hr #查看目录大小并按照大小倒序展示
[root@test ~]# du -h --max-depth=1 /usr/local/ | sort -hr 2.6G /usr/local/ 1.1G /usr/local/mysql 358M /usr/local/jdk1.8.0_121 ......
【参考】
http://www.cnblogs.com/peida/archive/2012/12/10/2810755.html 每天一个linux命令(34):du 命令
http://blog.csdn.net/cjf_iceking/article/details/37593963 Linux中删除文件,磁盘空间未释放问题追踪
https://segmentfault.com/q/1010000003044027 linux 删除文件后,如何释放磁盘空间?
作者:编程随笔
出处:http://www.cnblogs.com/nuccch/
声明:本文版权归作者和博客园共有,欢迎转载,但请在文章页面明显位置给出原文连接。