说明
在一次系统根目录满100%后,删除某文件,发现空间未释放
未释放磁盘空间的原因:
在Linux或者Unix系统中,通过rm或者文件管理器删除文件将会从文件系统的文件夹结构上解除链接(unlink),然而假设文件是被打开的(有一个进程正在使用),那么进程将仍然能够读取该文件,磁盘空间也一直被占用。而我删除的是nginx的访问日志文件,在删除的时候该文件正在被使用。
查看已删除文件确仍被进程占用的信息
[root@BQBB-DB01 ~]# lsof |grep deleted
mysqld_sa 16877 root 2u CHR 136,2 0t0 5 /dev/pts/2 (deleted)
mysqld 17354 mysql 5u REG 253,0 0 1441839 /tmp/ibimGkAr (deleted)
mysqld 17354 mysql 6u REG 253,0 0 1441906 /tmp/ibylR0jL (deleted)
mysqld 17354 mysql 7u REG 253,0 0 1441919 /tmp/ib4aAH34 (deleted)
mysqld 17354 mysql 8u REG 253,0 0 1441920 /tmp/ibaTMg4J (deleted)
mysqld 17354 mysql 12u REG 253,0 0 1441921 /tmp/ibSEc1S5 (deleted)
mysqld 17354 mysql 53u REG 253,0 0 1441818 /tmp/MLYzlgH8 (deleted)
mysqld 17354 mysql 98u REG 253,0 0 1441929 /tmp/ML1k1i31 (deleted)
mysqld 17354 mysql 105u REG 253,0 0 1441934 /tmp/MLQdThXo (deleted)
mysqld 17354 mysql 975u REG 253,0 0 1441933 /tmp/MLKYmlB3 (deleted)
根据之前删除的文件,查到对应的信息。
释放资源:
1,重启服务器
2,杀掉对应进程,或者停掉对应的应用,让操作系统自己主动回收磁盘空间(根据文件大小时间不一)
3,对需要清理的文件不直接删除,使用echo “” > xxx.log的方式进行清理