排查服务器上大资源文件du

服务器上磁盘快满了,记录一下排查命令

在Linux系统中,du命令主要用于查看文件和目录占用的磁盘空间。如果你想通过使用du命令来帮助清理服务器上的空间,可以遵循以下步骤来进行:

  1. 查找大文件或目录:首先,你需要找到哪些文件或目录占用了大量空间。可以使用以下命令来查找最大的前10个目录(按大小降序排列):

    du -h --max-depth=1 /path/to/start | sort -hr | head -n 10
    

    这里,/path/to/start是你想开始查找的目录,默认可以是/根目录,但请注意,这可能需要一些时间来完成。

要在Linux中递归查找当前目录下文件大小最大的前10个文件,可以使用find命令结合du(disk usage)和sort命令来实现。这里有一个常见的做法是使用find查找文件,通过管道传递给du计算每个文件的大小,然后用sort进行排序,最后用head命令取出前10个。下面是一个示例命令:

find . -type f -exec du -h {} + | sort -rh | head -n 10

解释一下这个命令的各部分作用:

  • find .:从当前目录开始查找。
  • -type f:只查找文件,不包括目录。
  • -exec du -h {} +:对每个查找到的文件执行du -h命令,-h参数使得输出的文件大小为人类可读的格式(如KB, MB, GB等),{} +find命令的语法,代表将之前匹配到的所有文件作为参数一次性传递给du命令。
  • |:管道符号,将前一个命令的输出作为后一个命令的输入。
  • sort -rh-r表示逆序排序,即从大到小;-h表示按人类可读的大小进行排序,这样大小单位不同的文件也可以正确排序。
  • head -n 10:取出排序后的前10行,即最大的10个文件的信息。

请注意,这个命令可能在大量文件的目录下运行得比较慢,因为它需要计算每个文件的大小。此外,由于文件名中可能包含空格或其他特殊字符,使用这种方法是安全的,因为find-exec动作会正确处理这些情况。

  1. 检查具体目录:找到大的目录后,你可以深入该目录进一步查找具体的大文件。例如,如果发现/var/log占用空间较大,可以运行:

    du -h --max-depth=1 /var/log | sort -hr
    
  2. 删除不必要的文件:确定了不需要的文件后,可以使用rm命令删除它们。例如,要删除名为largefile.txt的文件,可以运行:

    rm -f /path/to/largefile.txt
    

    注意: 使用rm命令要格外小心,因为一旦文件被删除就很难恢复,请确保你不会误删重要数据。

  3. 清理临时文件和日志:常见的空间占用者包括临时文件和旧的日志文件。可以考虑清理以下目录的内容(但在执行前请务必确认这些文件是否真的不再需要):

    • /tmp:临时文件目录
    • /var/log:日志文件目录
    • 用户的临时文件和下载目录
  4. 定期任务:为了防止空间再次被不必要的文件填满,可以设置定期清理任务,比如使用cron安排定时任务自动清理临时文件和旧日志。

记得,在执行任何删除操作之前,都应该做好数据备份,以防止意外丢失重要信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值