关于Linux磁盘被占满的问题,之前在使用WDCP面板时有遇到过,因为在面板后台开启了网站日志,但是日志没有定期删除,长此以往导致了VPS主机的磁盘空间被日志占满了。当磁盘空间达到100%时,网站就会出现一些莫名的错误,例如后台无法登录,无法评论以及页面空白等等。
不过最近在维护网络监控平台ping.wzfou.com时,发现磁盘空间还有不少,但是日志中依然报No Space Left on Device错误。经过排查,终于发现是Linux磁盘的inode被用完了,导致网站无法继续写入新的数据,最终的后台就是Smokeping也运行不正常,报表都无法显示。
不管是磁盘空间还有磁盘的inode空间,只要是被占用满了都会造成网站的不稳定。有时候我们可能没有怀疑到这一点,可能还会去寻找其它的问题。磁盘被占满最严重可能还会导致S#S¥H也无法进入,这时需要我们从VPS面板中执行释放磁盘空间的相关操作了。
这篇文章就来分享一下Linux系统磁盘空间占满的解决办法,主要还是记录一下查找磁盘空间命令的使用方法,以备日后不时之需。更多的Linux命令使用方法,这里还有:
PS:2019年2月22日更新,当磁盘空间已经即将用尽时,这时候就要考虑扩容硬盘了:Linux VPS主机硬盘扩容方法-VPS新硬盘分区挂载和硬盘动态扩容。
命令:df -h
,使用这个命令可以看到当前VPS主机的磁盘空间还有多少了,如果看到占用达到90%以上,这时你就要清理一下空间了。
使用以下命令查找在大文件
#当目录下的大于1G、100MB、10MB的文件
find . -type f -size +1024M
find . -type f -size +100M
find . -type f -size +10M
使用以上命令就可以摸索出大文件了,如果你的VPS的文件多的话,你还需要进入某一个目录下执行上述命令。
使用以下命令找出大文件夹和目录:
sudo du -s * | sort -nr | head #显示前10个占用空间最大的文件或目录
dudo du -hm --max-depth=2 | sort -nr | head -12 #显示前12个占用空间大的目录(包括二级目录)
具体使用规则:
rm -rf 目录名字
-r 向下递归,不管有多少级目录,一并删除。
-f 直接强行删除,没有任何提示。
实例:
删除文件夹实例:
rm -rf /var/log/httpd
这句代码的意思是:删除/var/log/httpd目录以及其下所有文件、文件夹
删除文件实例:
rm -f /var/log/httpd/access.log
这个将会强制删除/var/log/httpd/access.log这个文件
注意:在linux中是没有设置回收站的,因此在使用rm命令的时候一定要小心些,删除之后的文件是无法恢复的。
硬盘格式化的时候,操作系统自动将硬盘分成两个区域。一个是数据区,存放文件数据;另一个是inode区(inode table),存放inode所包含的信息。每个inode节点的大小,一般是128字节或256字节。inode与数据存储对应关系如下:
inode节点的总数,在格式化时就给定,一般是每1KB或每2KB就设置一个inode。假定在一块1GB的硬盘中,每个inode节点的大小为128字节,每1KB就设置一个inode,那么inode table的大小就会达到128MB,占整块硬盘的12.8%。
使用命令df -ia
可以查询当前inode占用情况:
使用以下命令计算出当前目录下各个文件夹占用inode情况:
#当前各大文件夹占用inode情况
for i in /var/*; do echo $i; find $i |wc -l; done
#排序
sudo find . -xdev -type f | cut -d "/" -f 2 | sort | uniq -c | sort -n
多次使用以上命令就可以查出具体的占用大inode的目录了,然后上面的方法删除文件或者文件夹即可。
inode一般来说是用不完的,除非是程序产生大量的日志,例如本次wzfou.com遇到的问题是/var/spool/postfix/maildrop/ 中有大量的文件,这是因为postfix运行不正常导致的。当然如果sendmail或者postfix正常运行,则会在/var/mail目录下也会堆积大量的邮件。
如果不用sendmail或者postfix的话,建议直接删除或者卸载它们:
apt-get remove sendmail*
yum remove sendmail
或者
yum remove postfix
sudo apt-get remove postfix
sudo apt-get remove --auto-remove postfix
有些朋友想到可以用脚本来监控VPS主机的inode使用情况,其实挖站否之前介绍的Zabbix可以实现服务器的inode监控,详细见:Zabbix安装与使用-强大的服务器性能监控工具掌控服务器软硬件资源。
文章出自:挖站否 https://wzfou.com/disk-no-space/,版权所有。本站文章除注明出处外,皆为作者原创文章,可自由引用,但请注明来源。
文章更新于: %s = human-readable time difference 下午9:36
查看评论
好实用啊 今天刚好在打理已经荒废的站,,登陆linode看了下磁盘使用满了 正在发愁怎么清理。。。不过linode很慷慨的给我免费升级到25G的空间了。。
Linode确实良心,每年免费升级一次配置。
监控站不错。
以前遇到过,找主机商解决了。
第一