linux定期释放已删除文件空间脚本

对于Linux下程序在用文件如log等,如果程序打开中,删除释放不了空间。必须在进程kill掉,或者程序重启才真正释放磁盘空间。

如果程序没有停机时间,但是磁盘空间承受不了,就需要定期释放空间。

#!/bin/sh

tempFile=/tmp/.lsof_deleted_pid.tmp
tempMsg=/tmp/.ls_deleted_fd.tmp

lsof | grep deleted | grep log | awk '{print $2}' | uniq > ${tempFile}
while read pid
do
    ls -l /proc/$pid/fd | grep "(deleted)" | awk '{print $9}' > ${tempMsg}
    while read fd
    do
        ls -l /proc/$pid/fd/$fd
    done < ${tempMsg}
done < ${tempFile}

以上脚本用于释放已删除未释放空间文件。

利用crontab定期执行,直到程序可以重启,真正释放空间


版权声明:本文为mengbing1990原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。