2015-10-29 13:03:46 ldhshao 阅读数 4666更多
分类专栏: linux
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/ldhshao/article/details/49490123
我们部分服务器的根文件系统只预留了50G空间,并且常用于调试的/var目录并未 挂载到单独的磁盘上而是共享这50G。那么 过多的打印信息或crash就会造成根目 录可用空间不够。但是删除大文件后,磁盘可用空间可能不会增大。
下面以删除存放系统log信息的message为例:
linux及solaris
可以这样做:
a、下载一个lsof软件装上,google上可以搜到
b、找到正在用被删文件的进程
lsof | grep deleted
c、kill掉相应的进程空间就释放了
# rm /var/log/messages
# df / -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_openstack-lv_root 50G 50G 0 100% /
从上面看,磁盘空间并没有释放。这是因为该文件可能被某进程访问中。通过下面 的方式可以查看打开该文件的进程:
# lsof | grep message
rsyslogd 20068 root 1w REG 253,0 212 1835497 /var/log/messages (deleted)
停掉运行该进程服务后,空间就释放出来了。
# service rsyslog stop
Shutting down system logger: [ OK ]
# df / -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_openstack-lv_root 50G 42G 5.4G 89% /
如果还想要记录系统信息,别忘了再启动该服务。
# service rsyslog start
Starting system logger: [ OK ]