Linux删除大文件或占用磁盘的大量文件以后未释放磁盘空间处理排查步骤与处理办法
云海天教程原创,转载请注明出处。
之前也遇到过几次linux系统磁盘满的情况,一直没有记录,这次记录一下。 之前遇到过线上的服务器磁盘满的情况,我们习惯性的会查找该磁盘下比较大的文件,然后找出来该删除的删除,该转移的转移,该升级磁盘的升级磁盘,该压缩的压缩等等解决方案。
常见磁盘满的原因有很多,最常见的无非是一些日志文件或线上数据增多导致磁盘满,尤其是日志文件导致过多导致。比如我们以日志文件过多导致磁盘满了, 我们查到以后进行删除,但是我们发现删除以后磁盘的大小依旧是100%。原因:删除以后文件以后,进程还一直运行导致没有被释放。
[[email protected] ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/VolGroup-lv_root 6.7G 1.1G 5.3G 17% / tmpfs 246M 12K 246M 1% /dev/shm /dev/vda1 485M 485M 0 100% /home
处理办法:我们需要使用lsof |grep deleted 找到对应的进程删掉或重启对应服务即可。
[[email protected]~]# lsof | grep deleted mysqld 1257 mysql 5u REG 253,0 0 5215 /home/log/nginx-20160822.log (deleted) mysqld 1257 mysql 6u REG 253,0 0 5219 /home/log/nginx-20160823.log (deleted) mysqld 1257 mysql 7u REG 253,0 0 5221 /home/log/nginx-20160824.log (deleted) mysqld 1257 mysql 8u REG 253,0 0 5223 /home/log/nginx-20160825.log (deleted) mysqld 1257 mysql 12u REG 253,0 0 5255 /home/log/nginx-20160826.log (deleted) salt-mini 1354 root 6w REG 253,0 1699 263760 /var/log/salt/minion-20160828 (deleted)