转:http://wangbixi.com/x4360/
linux操作系统中,经常会遇到磁盘空间满的问题。如下图1所示:
图一:
这里写图片描述
磁盘空间满,很多情况下是由于大文文件引起的,若文件不大,则一定是文件过多引起的,至于引起这个更深一层的原因,先不探讨。

怎么查看大文件所在的路径,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 
Logo

更多推荐