Linux系統緩存清理指南:方法、步驟與注意事項
在清理緩存前,需用sync命令將內存中未寫入磁盤的緩存數據同步到磁盤,避免數據丟失。該命令無返回值,執行后即完成數據同步。
命令:sudo sync
Linux系統緩存主要分為三類,可通過向/proc/sys/vm/drop_caches寫入不同數值清理對應類型:
echo 1 | sudo tee /proc/sys/vm/drop_cachesecho 2 | sudo tee /proc/sys/vm/drop_cachesecho 3 | sudo tee /proc/sys/vm/drop_cachessysctl命令可直接修改內核參數,效果與echo寫入drop_caches相同,語法更簡潔。
示例(清理所有緩存):sudo sysctl -w vm.drop_caches=3
若swap分區使用率過高(可通過free -h查看),可關閉并重新開啟swap,釋放swap中的緩存數據。
命令:sudo swapoff -a && sudo swapon -a
系統緩存清理僅釋放內核管理的緩存,應用層緩存(如包管理器、瀏覽器、日志)也需定期清理:
sudo apt-get clean(清理已下載的deb包)、sudo apt-get autoclean(清理舊版deb包)sudo yum clean all(清理yum緩存)、sudo dnf clean all(清理dnf緩存)舊內核會占用/boot分區空間,可通過以下命令清理(保留當前使用和最新內核):
步驟:
① 查看已安裝內核:dpkg --list | grep linux-image
② 刪除舊內核(如linux-image-5.15.0-86-generic,保留當前內核):sudo apt-get purge linux-image-x.x.x-x-generic
rm -rf /tmp/* /var/tmp/*(謹慎使用,避免刪除正在使用的臨時文件)journalctl --vacuum-time=2weeks(清除兩周前日志)、sudo rm -rf /var/log/*.gz(刪除壓縮的舊日志)若需定期自動清理緩存,可通過腳本+定時任務實現:
新建clear_cache.sh,內容如下:
#!/bin/bash
sync
echo 3 > /proc/sys/vm/drop_caches
echo "$(date): 緩存清理完成" >> /var/log/cache_clean.log
賦予執行權限:chmod +x clear_cache.sh
用crontab -e編輯定時任務,例如每天凌晨3點執行:
0 3 * * * /path/to/clear_cache.sh
sudo。free -h顯示空閑內存足夠),無需頻繁清理。sync命令是數據安全的保障,務必在清理前執行。通過以上方法,可有效清理Linux系統緩存,釋放內存空間,提升系統性能。需根據實際場景選擇清理類型,避免過度清理影響系統穩定性。