一、編寫自動化清理腳本
首先創建一個包含常用清理任務的Bash腳本,覆蓋系統日志、臨時文件、APT緩存、舊內核等關鍵區域。示例如下:
#!/bin/bash
# 清理系統日志(保留最近2周)
echo "Cleaning system logs..."
sudo journalctl --vacuum-time=2weeks
# 清理臨時文件(/tmp和/var/tmp)
echo "Cleaning temporary files..."
sudo rm -rf /tmp/* /var/tmp/*
# 清理APT包緩存(刪除已下載的包文件)
echo "Cleaning APT package cache..."
sudo apt-get clean
# 清理舊的內核版本(保留最新的2個內核)
echo "Cleaning old kernels..."
dpkg --list | grep '^ii' | sed -n '/linux-image-/p' | awk '{print $2}' | sort -V | uniq | tail -n +3 | xargs sudo apt-get -y purge --auto-remove
# 清理孤立的無用軟件包
echo "Cleaning orphaned packages..."
sudo apt-get autoremove --purge -y
echo "Cleanup completed."
將腳本保存為/usr/local/bin/debian_cleanup.sh,并賦予執行權限:
sudo chmod +x /usr/local/bin/debian_cleanup.sh
二、使用Cron設置定時任務
通過Cron定時調用上述腳本,實現定期自動清理。編輯root用戶的crontab文件:
sudo crontab -e
添加以下行(例如每天凌晨2點執行):
0 2 * * * /usr/local/bin/debian_cleanup.sh >> /var/log/debian_cleanup.log 2>&1
說明:
0 2 * * *:表示每天凌晨2點執行;>> /var/log/debian_cleanup.log 2>&1:將腳本輸出(包括錯誤信息)追加到日志文件,便于后續查看。三、利用Systemd定時器(可選)
若系統使用systemd,可通過創建服務單元和定時器單元實現更靈活的定時任務。步驟如下:
/etc/systemd/system/debian-cleanup.service):[Unit]
Description=Debian System Cleanup Service
[Service]
Type=oneshot
ExecStart=/usr/local/bin/debian_cleanup.sh
/etc/systemd/system/debian-cleanup.timer):[Unit]
Description=Run Debian cleanup daily at 2 AM
[Timer]
OnCalendar=*-*-* 02:00:00
Persistent=true
[Install]
WantedBy=timers.target
sudo systemctl enable --now debian-cleanup.timer
通過systemctl list-timers可查看定時器狀態。
四、借助現有工具增強清理
sudo apt install bleachbit
sudo bleachbit --clean system.cache system.tmp system.logs
/etc/logrotate.d/myapp):/var/log/myapp/*.log {
daily
rotate 7
compress
missingok
notifempty
create 640 root adm
}
此配置表示每天輪轉日志,保留最近7天的壓縮日志。
五、注意事項
/home、/etc等關鍵目錄,避免誤刪。df -h查看磁盤使用情況,確保清理效果。