记录一次删除大文件,但磁盘没有释放空间的问题

上服务器查看/dev/xxx 挂载的/var 快满了都过了90%,所以需要清理一下日志文件了
df -h
...
/dev/xxx xxG xxG 1.0G 93% /var
...

去/var/log中检查到文件
cd /var/log
ls
...
-rw-------. 1 root root 26G 10月 20 15:18 xxxx.log
...

也就是xxxx.log 这个文件有占了很大的磁盘空间,看了一下里面的内容,发现是syslog的日志文件;里面保存的是有离现在几个月的,所以删除它
rm xxxx.log
然后再df -h
...
/dev/xxx xxG xxG 1.0G 93% /var
...
发现磁盘空间并未释放,应该有程序还在操作这个文件,指针未释放
lsof | grep deleted | grep xxxx.log
rsyslogd xxx1 root xw REG 8,2 xxxxxxx xxxx /var/log/xxxx.log (deleted)
发现是syslog程序还在操作这个文件
于是用这个程序的进程号:xxx1 kill它
kill -9 xxx1
完事之后,发现rsyslog未启动了
只能重启
/etc/init.d/rsyslog restart
关闭系统日志记录器: [失败]
启动系统日志记录器: [确定]

再来查看磁盘空间发现空间被释放了
之后google到一种方式 就是 在删除之前 先清空文件,再删除文件 这样能快速释放磁盘空间。
echo "" > xxx.log
rm -rf xxx.log
这个方法下次再尝试

猜你喜欢

转载自blog.51cto.com/quietnight/2306810