Centos清理垃圾查找大文件

在 CentOS 系统中清理垃圾文件和查找大文件是维护系统性能的重要操作。以下是详细的操作方法:

查找大文件和目录

1. 使用du命令查找大文件(常用方法)

du(disk usage)命令用于查看文件和目录的磁盘占用情况,配合参数可高效定位大文件:
# 查看当前目录下各文件/目录的大小(按从大到小排序)
du -sh * | sort -hr

# 查看指定目录下占用空间最大的前10个文件/目录
du -a /path/to/directory | sort -nr | head -n 10

# 递归查看目录大小(以人类可读格式显示)
du -h --max-depth=1 /path/to/directory

示例:查看根目录下占用空间最大的目录:

du -h --max-depth=1 /

2. 使用find命令结合文件大小筛选

find命令可按文件大小过滤,适合精准查找特定大小的文件:
# 查找大于100MB的文件
find / -type f -size +100M 2>/dev/null

# 查找大于1GB的文件并按大小排序
find / -type f -size +1G -exec du -h {} \; | sort -hr
注意/为根目录,查找时可能耗时较长,建议指定具体目录(如/home/var)。

3. 使用ncdu工具(可视化磁盘使用情况)

ncdu是交互式磁盘分析工具,比du更直观:
# 安装ncdu(若未安装)
yum install ncdu

# 启动ncdu分析当前目录
ncdu .

# 分析根目录(需root权限)
sudo ncdu /

清理系统垃圾文件

1. 清理 YUM 缓存

YUM 安装包的缓存会占用大量空间:
# 清理所有YUM缓存
yum clean all

# 仅保留最新的缓存(可选)
yum clean expire-cache

2. 删除旧的 RPM 包和依赖

# 删除不再需要的依赖包
yum autoremove

# 删除未使用的包(需先安装yum-utils)
yum install yum-utils
package-cleanup --oldkernels  # 删除旧内核
package-cleanup --unused      # 删除未使用的包

3. 清理日志文件

系统日志会不断累积,可定期清理:
# 查看日志目录大小
du -sh /var/log/*

# 手动清理部分日志(示例,谨慎操作)
cat /dev/null > /var/log/messages
cat /dev/null > /var/log/secure
# 或使用logrotate自动管理(系统默认已配置)

4. 清理临时文件

# 清理/tmp目录(需root权限)
rm -rf /tmp/* /tmp/.*  # 注意保留正在使用的文件

5. 清理 Docker 容器和镜像(如果安装了 Docker)

# 停止并删除所有容器
docker stop $(docker ps -a -q)
docker rm $(docker ps -a -q)

# 删除未使用的镜像
docker image prune -a

# 清理所有无用资源(容器、镜像、网络等)
docker system prune -a --volumes

6. 检查并删除大文件(结合查找结果)

通过前面的dufind命令找到大文件后,确认无用可直接删除:
# 示例:删除/var/log目录下大于500MB的日志
find /var/log -type f -size +500M -exec rm -f {} \;

三、释放磁盘空间后的验证

使用df -h命令查看磁盘占用情况:
df -h

若某分区空间仍紧张,可结合dufind进一步排查具体文件。

四、自动化清理(定时任务)

可将清理命令写入crontab实现定期自动清理:
# 编辑crontab
crontab -e

# 示例:每周日凌晨2点清理YUM缓存和临时文件
0 2 * * 0 yum clean all && rm -rf /tmp/* /tmp/.*

注意事项

  1. 权限问题:部分操作(如清理根目录文件)需root权限,使用sudo或切换至 root 用户。
  2. 谨慎删除:对不熟悉的文件或目录,先通过ls -la查看用途,避免误删系统文件。
  3. 日志管理:建议使用logrotate工具自动轮换日志,避免手动清理导致服务异常。


通过以上步骤,可有效释放 CentOS 系统的磁盘空间,提升运行效率。
THE END