插件窝 干货文章 如何使用Linux脚本清理系统垃圾

如何使用Linux脚本清理系统垃圾

清理 sudo 使用 脚本 89    来源:    2025-05-04

Linux系统垃圾清理脚本指南

作为IT工程师,我将为您提供一个全面的Linux系统垃圾清理方案。以下是几种清理方法和脚本示例:

1. 基础清理脚本

#!/bin/bash

# 清理包管理器缓存
sudo apt-get clean          # Debian/Ubuntu
sudo yum clean all          # CentOS/RHEL
sudo dnf clean all          # Fedora

# 清理旧内核版本(仅保留当前和上一个版本)
sudo apt-get autoremove --purge  # Debian/Ubuntu
sudo package-cleanup --oldkernels --count=2  # CentOS/RHEL

# 清理日志文件(保留最近7天)
sudo find /var/log -type f -mtime +7 -delete

# 清理临时文件
sudo rm -rf /tmp/*
sudo rm -rf /var/tmp/*

# 清理用户缓存
rm -rf ~/.cache/*

2. 高级清理脚本

#!/bin/bash

# 显示磁盘使用情况
echo "磁盘使用前:"
df -h

# 1. 清理缩略图缓存
echo "清理缩略图缓存..."
rm -rf ~/.cache/thumbnails/*

# 2. 清理浏览器缓存(以Firefox为例)
echo "清理浏览器缓存..."
rm -rf ~/.mozilla/firefox/*.default-release/Cache/*
rm -rf ~/.mozilla/firefox/*.default-release/OfflineCache/*

# 3. 清理旧的snap包版本
echo "清理旧的snap包..."
sudo snap list --all | awk '/disabled/{print $1, $3}' | \
    while read snapname revision; do
        sudo snap remove "$snapname" --revision="$revision"
    done

# 4. 清理Docker无用数据
echo "清理Docker无用数据..."
docker system prune -af

# 5. 清理系统日志(保留最近30MB)
echo "清理系统日志..."
sudo journalctl --vacuum-size=30M

# 显示清理后磁盘使用情况
echo "磁盘使用后:"
df -h

3. 安全清理脚本(谨慎使用)

#!/bin/bash

# 警告: 此脚本会删除更多系统文件,使用前请确认

# 清理所有日志文件(危险!)
read -p "确定要清理所有日志文件吗? (y/n) " -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
    sudo find /var/log -type f -delete
    sudo systemctl restart rsyslog
fi

# 清理未使用的语言包
echo "清理未使用的语言包..."
sudo apt-get remove --purge $(dpkg -l | grep '^rc' | awk '{print $2}')  # Debian/Ubuntu
sudo dnf remove $(dnf repoquery --extras --exclude=kernel*)  # Fedora

# 清理孤儿包
echo "清理孤儿包..."
sudo deborphan | xargs sudo apt-get -y remove --purge  # Debian/Ubuntu
sudo dnf autoremove  # Fedora

使用建议

  1. 定期执行:可以设置cron任务每月执行一次基础清理

    # 编辑crontab
    crontab -e
    # 添加每月1号凌晨3点执行
    0 3 1 * * /path/to/clean_script.sh
    
  2. 备份重要数据:执行清理前确保重要数据已备份

  3. 谨慎操作:特别是使用root权限删除文件时

  4. 查看效果:清理前后使用df -h比较磁盘空间变化

  5. 自定义调整:根据您的系统使用情况调整保留天数或文件大小

您可以根据自己的系统环境和需求选择适合的脚本,或组合使用这些清理方法。对于生产环境,建议先在测试环境验证脚本效果。