Wechat: yu389741| Email: gisdqy@163.com

Shop:https://www.giserdqy.com/shop

centos磁盘爆满,查找大文件并清理


linux操作系统中,经常会遇到磁盘空间满的问题。遇到这样的问题,先查下是什么文件过大或过多引起的,至于引起这个更深一层的原因,先不探讨。

怎么查看大文件所在的路径,linux中有一个命令,叫du,

先贴命令:du -m –max-depth=1或du -h –max-depth=1du:用于统计linux中文件或目录所占磁盘空间的大小du参数

  • m:以M为单位展示查询结果
  • -h:以K、M、G为单位展示查询结果,提高信息可读性
  • –max-depth=1:其中,数字“1”是指查询结果中最多显示的目录层数,这里指最多显示一层目录。示例如下:

然后,利用此命令,逐层(目录)深入,这样就一定会查询到大文件所在目录,但也有可能是目录中文件过多所致。当找到大文件后,若因某些原因,不想对文件进行删除,可以用echo或cat或clear命令清除文件内容:

echo > /var/log/big.log此命令会把/var/log目录中的big.log文件内容清除,而又不删除big.log文件

cat > /var/log/big.log此命令能与“echo > /var/log/big.log”达到相同效果,不过,命令执行后,需要用“Ctrl + d”结束

clear > /var/log/big.log此命令会把big.log文件内容清空,而不删除文件

另一种情况: 也可能是inode用完了.

用# df -i  可以查看。

真的是inode用完了,磁盘没法再写入新的内容了,这个是某些临时的小文件太多了,把inode用完了,把它删掉就行了。

# find /var/spool/clientmqueue -type f -print -exec rm -f {} ;

这个命令中 /var/spool/clientmqueue 是要删除的文件所在的目录 -type f这个参数限定find只查找普通文件(即不是管道文件,不是块文件,不是链接文件,不是目录等),防止误删除系统文件。

原因分析:系统中有用户开启了cron,而cron中执行的程序有输出内容,输出内容会以邮件形式发给cron的用户,而sendmail没有启动所以就产生了这些文件;