linux操作系统中,经常会遇到磁盘空间满的问题。如下图1所示:
图一:
遇到这样的问题,首先查下那个挂载点磁盘空间满。
方法一:然后cd到该挂载点下,本例中挂载点为”/”,见图2:
图二:
磁盘空间满,很多情况下是由于大文文件引起的,若文件不大,则一定是文件过多引起的,至于引起这个更深一层的原因,先不探讨。
怎么查看大文件所在的路径,linux中有一个命令,叫du,先贴命令:
du -m --max-depth=1
或
du -h --max-depth=1
du:用于统计linux中文件或目录所占磁盘空间的大小
du参数######
-m:以M为单位展示查询结果
-h:以K、M、G为单位展示查询结果,提高信息可读性
–max-depth=1:其中,数字“1”是指查询结果中最多显示的目录层数,这里指最多显示一层目录。
cd到挂载点后,执行du -m –max-depth=1或du -h –max-depth=1命令,示例如下:
作为对
du -m --max-depth=1
的一个优化,还可以使用
du -m --max-depth=1 |sort -nr
命令,这个命令的含义是统计目录所占磁盘空间的大小,并按数值的从大到小进行排序。
然后,利用此命令,cd到/opt目录,再次利用“du -m –max-depth=1或du -h –max-depth=1”找出/opt目录中占用磁盘较大的文件或目录,这样逐层(目录)深入就一定会查询到大文件所在目录,当然也有可能是目录中文件过多所致。
特别注意:
以上方法只是对目录大小,进行判定,所以当确定某目录过大时,最好是cd到该目录,查看下有无大文件,然后再确定是否进入下一层目录。
当找到大文件后,若因某些原因,不想对文件进行删除,可以用echo或cat或clear命令清除文件内容:
echo > /opt/log/big.log
此命令会把/var/log目录中的big.log文件内容清除,而又不删除big.log文件
cat > /opt/log/big.log
此命令能与“echo > /var/log/big.log”达到相同效果,不过,命令执行后,需要用“Ctrl + d”结束
clear > /opt/log/big.log
此命令会把big.log文件内容清空,而不删除文件
同样的效果,用true、flase、“:”等也能实现清空文件内容,而不删除文件的效果
true > /opt/log/big.log flase > /opt/log/big.log : > /opt/log/big.log
若想删除文件,只需利用rm命令即可
rm -f /opt/log/big.log
以前没有关闭mysql日志的时候,经常满。现在基本没怎么管了。。。。
很好的网站,赞一个,加油!