當你的Linux服務器突然彈出“磁盤空間不足”的警告時,是不是有點手足無措?別慌!磁盤空間不足是新手常見的問題,但只要掌握幾個簡單的清理技巧,就能讓服務器重新“輕裝上陣”。本文將用最基礎的命令和步驟,帶你一步步搞定磁盤空間問題,全程簡單易懂,跟着操作就能上手。
一、先看看磁盤空間用了多少?¶
第一步,要知道“哪裏佔用了空間”,得先查看磁盤整體使用情況。Linux下最常用的命令是 df -h,它能以人類可讀的方式(比如GB、MB)顯示磁盤分區的使用狀態。
df -h
執行後你會看到類似這樣的輸出:
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 20G 15G 5.0G 75% /
tmpfs 2.0G 0 2.0G 0% /dev/shm
這裏 Used 列就是已用空間,Avail 是可用空間。重點關注根目錄 / 或 /var 這類系統目錄,通常是空間佔用大戶。
二、找出“空間小偷”——定位大文件¶
知道整體情況後,需要定位到底是哪些文件/目錄佔了空間。最常用的工具是 du -sh(顯示目錄大小)和 find(搜索文件)。
1. 快速定位大目錄¶
比如查看 /var 目錄下的子目錄大小:
du -sh /var/*
輸出類似:
4.0K /var/backups
1.2G /var/cache
500M /var/lib
這裏能看到 /var/cache 或 /var/lib 可能是“嫌疑犯”。
2. 找大文件(比如超過100MB的文件)¶
用 find 命令搜索系統中大於100MB的文件(注意:/ 可能耗時較長,可先從 /home 或 /tmp 等用戶目錄開始):
find / -type f -size +100M 2>/dev/null
-type f:只找文件(不包括目錄);-size +100M:文件大小大於100MB;2>/dev/null:忽略找不到權限的錯誤信息,避免干擾。
三、針對性清理:這些“空間殺手”要重點關注¶
1. 清理日誌文件(/var/log 目錄)¶
日誌文件是磁盤空間的“隱形殺手”,尤其是 /var/log 裏的日誌(比如系統日誌、應用日誌)。但千萬別直接刪整個目錄!
-
方法1:清空特定日誌(謹慎操作)
有些日誌文件可能已經不再寫入(比如舊系統日誌),可以用echo "" > /var/log/syslog清空(需確認是否有新日誌寫入,用tail -f /var/log/syslog查看即時日誌)。
注意:如果日誌正在被程序寫入(比如用tail -f看到內容在更新),直接清空可能導致數據丟失! -
方法2:用 logrotate 自動管理日誌
Linux自帶的logrotate工具會自動輪轉日誌(比如壓縮舊日誌),避免日誌無限增長。如果系統已配置,直接執行sudo logrotate -f /etc/logrotate.conf強制輪轉一次即可。 -
方法3:刪除舊日誌壓縮包
有些日誌會被壓縮成.gz或.bz2文件(比如messages-202301.gz),這些是歷史日誌,確認無用後可直接刪除:
sudo rm /var/log/*.gz
2. 清理緩存和臨時文件¶
系統緩存、臨時文件(/tmp、/var/tmp)也會佔用空間,可按以下步驟清理:
- 釋放系統緩存
Linux會將頻繁訪問的文件緩存到內存,若內存充足但磁盤空間緊張,可清理緩存(不需要擔心數據丟失,這只是釋放系統緩存):
sudo sync # 同步數據到磁盤,避免數據丟失
echo 3 > /proc/sys/vm/drop_caches # 釋放所有緩存
- 清理臨時文件
/tmp是臨時文件的“聚集地”,大部分文件重啓後會自動消失,但長期未清理的文件可能殘留。直接刪除:
sudo rm -rf /tmp/* /var/tmp/*
注意:若有程序正在使用 /tmp 裏的文件(比如某個軟件臨時生成的文件),刪除可能導致程序報錯,刪除前建議確認文件是否爲“孤兒文件”(用 lsof /tmp/xxx 查看是否被佔用)。
3. 卸載無用軟件包¶
如果系統安裝了不需要的軟件(比如舊版本工具、測試包),可以用包管理器卸載釋放空間。
- CentOS/RHEL 系統(用
yum):
sudo yum remove 軟件包名稱 # 卸載單個軟件
sudo yum clean all # 清理緩存的安裝包(.rpm文件)
- Ubuntu/Debian 系統(用
apt):
sudo apt remove 軟件包名稱 # 卸載單個軟件
sudo apt autoremove # 卸載無用依賴
sudo apt clean # 清理緩存的安裝包(.deb文件)
4. 清理用戶目錄大文件¶
如果是個人用戶服務器,/home 目錄下可能有用戶下載的大文件(比如電影、安裝包)。可以讓用戶登錄後檢查自己的目錄:
cd ~ # 進入當前用戶目錄
du -sh * # 查看當前目錄下所有文件/文件夾大小
若發現無用的大文件(比如幾個GB的壓縮包),直接刪除即可:
rm -rf 大文件名稱 # 徹底刪除(需確認!)
四、注意事項:這些操作千萬別踩坑!¶
- 別刪系統關鍵文件:比如
/etc、/bin、/usr下的核心文件,刪除會導致系統故障! - 刪除前先確認:用
ls或cat先查看文件內容,比如cat /var/log/syslog確認是否爲舊日誌。 - 非root操作需謹慎:刪除系統目錄(如
/var)或修改系統文件(如/etc)需要sudo權限,避免誤操作。 - 定期清理更省心:養成每週檢查磁盤空間的習慣,小問題早發現早解決,避免堆積成大問題。
總結:清理步驟優先級¶
- 用
df -h看整體空間; - 用
du -sh定位大目錄; - 用
find找大文件; - 優先清理日誌、緩存、臨時文件;
- 卸載無用軟件,刪除用戶大文件。
按照這個流程操作,即使是新手也能輕鬆清理出足夠的磁盤空間。記住,Linux系統本身很穩定,只要不盲目刪除關鍵文件,清理過程是安全的!如果遇到不確定的文件,先備份或查閱資料,安全第一哦~