作为IT工程师,我将为您提供一个全面的Linux系统垃圾清理方案。以下是几种清理方法和脚本示例:
#!/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/*
#!/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
#!/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
定期执行:可以设置cron任务每月执行一次基础清理
# 编辑crontab
crontab -e
# 添加每月1号凌晨3点执行
0 3 1 * * /path/to/clean_script.sh
备份重要数据:执行清理前确保重要数据已备份
谨慎操作:特别是使用root权限删除文件时
查看效果:清理前后使用df -h
比较磁盘空间变化
自定义调整:根据您的系统使用情况调整保留天数或文件大小
您可以根据自己的系统环境和需求选择适合的脚本,或组合使用这些清理方法。对于生产环境,建议先在测试环境验证脚本效果。