1. 不能獲取鎖異常(Could not get lock)
原因:系統中已有apt
或apt-get
進程在運行(如未正常結束的安裝/卸載操作),導致鎖文件無法釋放。
解決方法:手動終止沖突進程,再執行清理命令。具體步驟:
sudo killall apt apt-get # 殺死所有apt相關進程
sudo rm /var/lib/apt/lists/lock # 刪除鎖文件(謹慎操作,確保無進程運行)
sudo rm /var/cache/apt/archives/lock
sudo apt clean # 重新清理緩存
2. 刪除文件后空間未釋放
原因:已刪除的文件仍被某個進程占用(如日志文件、數據庫文件),文件系統未刷新;或/tmp
、/var/tmp
等臨時目錄未清理。
解決方法:
sudo lsof | grep deleted # 列出被刪除但仍被占用的文件及進程
sudo kill -9 <PID> # 終止對應進程
sudo sync; sudo echo 3 | sudo tee /proc/sys/vm/drop_caches
sudo rm -rf /tmp/* /var/tmp/*
3. 磁盤空間不足
原因:緩存文件、舊內核、孤立軟件包、日志文件或大文件占用過多空間。
解決方法:
sudo apt clean
sudo apt autoremove --purge -y
dpkg --list | grep linux-image # 列出已安裝的內核
sudo apt remove --purge <舊內核版本號> # 刪除舊內核
sudo journalctl --vacuum-time=3d # 按時間清理
sudo journalctl --vacuum-size=100M # 按大小清理
4. 誤刪重要文件
原因:使用rm -rf
命令時路徑錯誤,或未確認文件用途導致系統/應用關鍵文件被刪除。
解決方法:
/etc
、/home
目錄):sudo tar -czvf /backup/etc_backup.tar.gz /etc
rm -rf
,優先用find
命令精準刪除(如刪除大于100MB的日志文件):sudo find /var/log -type f -size +100M -delete
5. 清理命令使用不當
誤區:混淆apt clean
、apt autoclean
、apt autoremove
的功能,或過度清理(如刪除/etc
下的配置文件)。
正確用法:
apt clean
:刪除/var/cache/apt/archives/
下的所有包文件(徹底清理緩存)。apt autoclean
:刪除/var/cache/apt/archives/
下舊版本的包文件(僅保留最新版本)。apt autoremove
:刪除不再被任何軟件包依賴的孤立包(避免殘留無用依賴)。/etc
、/usr
、/lib
等系統目錄下的文件,除非明確知道其用途。6. 忽略依賴關系
原因:卸載軟件時未使用--purge
選項,導致配置文件殘留;或未使用autoremove
刪除不再需要的依賴。
解決方法:
sudo apt purge <package_name>
sudo apt autoremove --purge -y
sudo deborphan | xargs sudo apt purge -y # 使用deborphan查找孤立包
7. 日志文件過大
原因:系統日志(如/var/log/syslog
、/var/log/auth.log
)或應用日志(如Apache的access.log
)長期未清理,占用大量磁盤空間。
解決方法:
logrotate
工具自動管理日志(默認已配置,可修改/etc/logrotate.conf
調整保留策略)。sudo rm /var/log/*.gz # 刪除壓縮的舊日志
sudo journalctl --vacuum-time=7d # 清理7天前的systemd日志
8. 過度清理
誤區:刪除所有緩存文件(如/var/cache/apt/archives/
)或臨時文件,導致系統需要重新下載包,降低后續安裝效率。
正確做法:
/tmp
、/var/tmp
)和過期日志。