磁盘又双叒叕爆红了?一条 Linux 命令秒级揪出「空间杀手」!
凌晨两点,刺耳的告警短信惊醒梦中人:「服务器磁盘使用率95%!」
睡眼朦胧打开终端,面对上百G的存储空间,你是否也曾绝望发问:“到底是谁吃掉了我的磁盘?!”
别慌!今天分享一条运维老司机私藏的命令,30秒精准定位罪魁祸首:
复制
find / -size +500M -exec ls -lh {} \;1.
命令拆解:
这条命令如同磁盘空间的「雷达扫描仪」:
find /:从根目录开始地毯式搜索-size +500M:锁定500MB以上的巨无霸文件-exec ls -lh {} \;:用人类可读格式展示详情(权限/大小/路径)六大实战场景:从此告别存储焦虑场景1:紧急清理磁盘火山
复制
find /var/log -size +100M -exec ls -lh {} \;1.
作用:快速揪出膨胀的日志文件(如Nginx/Apache日志),及时截断或归档
场景2:拯救混乱的媒体库
复制
find /home -name "*.mp4" -size +1G -exec ls -lh {} \;1.
作用:精准捕获用户上传的超大视频,迁移至对象存储释放本地空间
场景3:扼杀失控的日志怪兽
复制
find /app -mtime +30 -size +500M -exec du -sh {} \;1.
作用:捕获30天未处理且超500MB的应用日志,防止单个日志撑爆磁盘
场景4:清理幽灵临时文件
复制
find /tmp -type f -size +300M -exec rm -fv {} \;1.
作用:自动清除/tmp中残留的大临时文件(加-v参数显示删除记录)
场景5:备份前的空间审计
复制
find /backup -size +10G -printf "%kKB\t%p\n" | sort -nr1.
作用:扫描备份目录中的10G+文件,按大小排序输出,避免备份无效数据
场景6:安全工程师的暗器
复制
sudo find /etc -size +10M -exec file {} \;1.
作用:检测/etc下异常大文件(正常配置应小于1MB),可能隐藏攻击痕迹
高危操作防护指南慎用rm命令! 建议分三步操作:
复制
# 1. 先预览文件
find /path -size +100M -exec ls -lh {} \;
# 2. 确认后移动到临时区
find /path -size +100M -exec mv {} /tmp/todelete/ \;
# 3. 观察无异常再删除
rm -rf /tmp/todelete1.2.3.4.5.6.7.8.
技巧1:并行处理加速
复制
find /data -size +1G -print0 | xargs -0 -P 4 ls -lh1.
用xargs -P启动多进程,扫描百万级文件快如闪电
技巧2:生成可视化报告
复制
find . -size +10M -printf "%s\t%p\n" |
awk {printf "%.1fGB\t%s\n", $1/1024/1024/1024, $2} |
sort -nr > large_files.txt1.2.3.
输出带GB单位的排序清单,直接发给领导汇报!
经验之谈「磁盘清理的最大风险,是删了不该删的文件」
建议将核心命令封装成安全脚本:
复制
#!/bin/bash
THRESHOLD=${1:-100} # 默认100MB
find / -xdev -size +${THRESHOLD}M -type f \
-exec ls -lh {} \; 2>/dev/null |
grep -Ev "/proc|/sys|/dev"1.2.3.4.5.6.
(跳过虚拟文件系统,避免误报)
THE END