一、问题描述:
zabbix监控报警,磁盘(数据盘)空间不足登陆服务器上查看发现使用率不足20%,但清理完垃圾日志以后磁盘空间还是没有释放
以下是处理未释放空间的步骤
二、解决步骤- 1.查看磁盘空间
# df -HT
Filesystem Type Size Used Avail Use% Mounted on
/dev/vda1 ext4 43G 4.2G 37G 11% /
/dev/vdb1 ext4 317G 262G 40G 88% /opt
- 2.安装lsof命令
# yum -y install lsof
- 3.查看删除文件被占用的具体情况
# lsof -n /opt/ |grep deleted
scp 1909 root 3r REG 253,17 42929774289 15737286 /opt/docker/bak.zip (deleted)
# lsof -n /opt/ |grep deleted|awk '{print $2}'
1909
- 5.kill掉相应的进程
# lsof -n /opt/ |grep deleted|awk '{print $2}'|xargs kill -9
# lsof -n /opt/ |grep deleted
- 再次查看磁盘空间已释放
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 40G 3.9G 34G 11% /
/dev/vdb1 296G 204G 77G 73% /opt
kill掉相应的进程,或者停掉使用这个文件的应用,让os自动回收磁盘空间
我这个文件仅是一个备份文件,且已经存在一份压缩好的备份文件,所以直接kill,风险不是很大。
使用kill时,应确定不会对运行中的进程造成影响。这种方式对应用程序并不友好,当一个正在使用的文件被截断可能会引发不可预知的问题,请慎用。