1. 盤點磁盤使用狀況
首先通過df -h /命令查看根分區及各分區的磁盤使用詳情(如總容量、已用空間、可用空間),快速定位占用空間最多的分區;再用du -sh * | sort -nr | head -n 10命令進入占用空間大的分區(如根分區),查看當前目錄下各文件/子目錄的大小并排序,找出占用空間最大的目錄。這一步是清理優化的基礎,幫助明確清理方向。
2. 清除包緩存
包管理器(如APT、YUM)在安裝或升級軟件時會緩存軟件包文件,這些文件占用了大量空間且無需長期保留。
sudo apt clean命令清除所有緩存的軟件包文件;sudo apt autoclean命令僅清除舊版本的緩存軟件包(比apt clean更安全)。sudo yum clean all命令清除YUM緩存;sudo dnf clean all命令清除DNF緩存(Fedora及新版本CentOS推薦)。3. 卸載多余內核版本
系統更新時會保留舊版本內核,舊內核不僅占用空間(每個內核約占用100-500MB),還可能增加啟動項數量。
dpkg --list | grep linux-image命令列出所有已安裝的內核(排除當前正在使用的內核,可通過uname -r查看當前內核版本);用sudo apt-get remove --purge linux-image-x.x.x-x-generic命令卸載舊內核(將x.x.x-x-generic替換為舊內核版本號)。rpm -q kernel命令列出所有已安裝的內核;用sudo yum remove kernel-x.x.x-x命令卸載舊內核(將x.x.x-x替換為舊內核版本號)。sudo update-grub命令更新引導器配置,確保系統能正常啟動。4. 整理日志文件
日志文件(如/var/log目錄下的syslog、auth.log、kern.log等)會隨時間推移變得龐大(尤其是服務器環境),占用大量空間。
sudo journalctl --vacuum-time=7d命令保留最近7天的系統日志(可根據需求調整天數,如30d表示保留30天);用sudo rm /var/log/*.log命令刪除/var/log目錄下所有.log文件(需謹慎,避免刪除正在使用的日志文件)。logrotate工具設置日志輪轉策略(默認配置文件為/etc/logrotate.conf),實現日志文件的自動壓縮、刪除(例如設置日志保留7天或大小超過1GB時自動輪轉)。例如,在/etc/logrotate.d/syslog文件中添加以下配置:/var/log/syslog {
daily
rotate 7
compress
missingok
notifempty
create 640 root adm
}
該配置表示每天輪轉syslog文件,保留最近7個壓縮日志,壓縮后文件大小減小,且不會刪除正在使用的日志。5. 清理臨時文件與緩存
臨時文件(如/tmp目錄下的文件)和應用程序緩存(如瀏覽器緩存、系統緩存)是無用空間的主要來源。
sudo rm -rf /tmp/*命令刪除/tmp目錄下的所有臨時文件(/tmp目錄下的文件通常會在系統重啟時自動清理,但定期手動清理更徹底)。bleachbit工具(跨平臺系統清理工具):安裝sudo apt install bleachbit(Debian/Ubuntu)或sudo yum install bleachbit(RHEL/CentOS),運行后選擇“系統緩存”“臨時文件”等選項進行清理(圖形界面操作,簡單直觀)。6. 查找并刪除大文件
大文件(如超過100MB的視頻、ISO鏡像、備份文件)是磁盤空間的“吞噬者”,需及時定位并刪除。
find命令查找大文件:例如sudo find / -type f -size +100M -exec ls -lh {} \;命令查找系統中所有大于100MB的文件,并顯示其詳細信息(-type f表示查找文件,-size +100M表示大于100MB,-exec ls -lh {} \;表示列出文件詳情);rm命令刪除(例如sudo rm /path/to/large_file.iso)。/usr、/bin目錄下的文件),建議在根分區(/)下查找。7. 卸載無用軟件包
無用的軟件包不僅占用空間,還可能增加系統負擔(如啟動項、后臺服務)。
sudo apt autoremove命令自動卸載不再需要的依賴包(即軟件包安裝時自動安裝的依賴,但當前軟件已卸載的依賴);sudo apt remove --purge package_name命令卸載指定軟件包及其配置文件(將package_name替換為軟件包名稱,如firefox)。sudo yum autoremove命令自動卸載無用依賴;sudo yum remove package_name命令卸載指定軟件包。8. 使用可視化清理工具
對于不熟悉命令行的用戶,可使用圖形化工具簡化清理過程:
sudo apt install baobab(Debian/Ubuntu)或sudo yum install baobab(RHEL/CentOS),運行后通過圖形界面查看磁盤空間使用情況,點擊目錄即可查看子目錄大小,快速定位大文件/目錄。sudo apt install bleachbit(Debian/Ubuntu)或sudo yum install bleachbit(RHEL/CentOS),通過圖形界面選擇清理項目(如系統緩存、臨時文件、瀏覽器緩存),一鍵清理無用文件。9. 配置日志壓縮與自動清理
通過logrotate工具設置日志自動輪轉與壓縮,避免日志文件無限增長。編輯/etc/logrotate.conf文件(全局配置)或/etc/logrotate.d/目錄下的具體配置文件(如/etc/logrotate.d/syslog),添加以下配置:
/path/to/logfile {
daily # 每天輪轉
rotate 7 # 保留7個輪轉日志
compress # 壓縮輪轉后的日志(使用gzip)
missingok # 如果日志文件不存在也不報錯
notifempty # 如果日志文件為空則不輪轉
create 640 root adm # 創建新的日志文件,權限為640,所有者為root,組為adm
}
該配置可實現日志文件的自動管理,減少日志占用的空間。
10. 定期維護與監控
清理優化不是一次性任務,需定期執行:
cron定時任務(如每天凌晨2點)運行df -h命令,將結果發送到郵箱(需配置郵件服務),及時掌握磁盤空間使用情況。cron結合df命令,當磁盤空間使用率超過80%時發送報警郵件(例如在/etc/crontab中添加以下任務):0 2 * * * root /usr/bin/df -h | awk '{if ($5+0 > 80) print $0}' | mail -s "Disk Space Alert" your_email@example.com
該任務每天凌晨2點檢查磁盤空間,若使用率超過80%,則發送報警郵件提醒管理員。