一、查看磁盤空間使用情況
在進行磁盤清理前,需先明確空間占用情況。常用命令如下:
df -h
:查看各文件系統的磁盤空間使用情況(包括總大小、已用空間、可用空間及掛載點),-h
參數以人類可讀格式(GB/MB)顯示。df -i
:查看磁盤inode使用情況(若inode耗盡,即使磁盤空間充足也無法創建新文件)。du -sh /path/to/directory
:統計指定目錄的總大?。ㄈ?code>du -sh /var/log查看日志目錄大?。?;du -sh /path/to/dir | sort -rh | head -20
:找出占用空間最大的前20個目錄。二、清理緩存文件
緩存文件會占用大量磁盤空間,定期清理可釋放空間:
sudo yum clean all # 清理YUM緩存(兼容CentOS Stream 8)
sudo dnf clean all # 清理DNF緩存(推薦,適用于CentOS 8及以上)
/tmp
目錄用于存儲臨時文件,重啟系統后會自動清空,但可手動清理:sudo rm -rf /tmp/* # 刪除/tmp目錄下所有臨時文件(謹慎操作,避免刪除正在使用的文件)
sudo sync # 將內存中的數據同步到磁盤
sudo echo 3 > /proc/sys/vm/drop_caches # 釋放頁緩存、目錄項和inode緩存
三、清理日志文件
日志文件(如/var/log
目錄下的文件)會隨時間增長占用大量空間,需定期管理:
du -sh /var/log # 統計/var/log目錄總大小
find
命令查找并刪除超過一定時間(如30天)或大小的日志文件:find /var/log -type f -name "*.log" -mtime +30 -exec rm -f {} \; # 刪除30天前的.log文件
find /var/log -type f -name "*.log" -size +50M -exec truncate -s 0 {} \; # 清空超過50MB的.log文件(保留文件結構)
/etc/logrotate.conf
(全局配置)或/etc/logrotate.d/
下的子配置(如/etc/logrotate.d/syslog
),調整輪轉周期(如weekly
每周)、保留份數(如rotate 5
保留5份)及壓縮選項(如compress
)。四、刪除不必要的文件和目錄
/boot
分區空間,可使用package-cleanup
工具刪除(保留最新的2個內核):sudo package-cleanup --oldkernels --count=2 # 刪除除最新2個內核外的所有舊內核
sudo package-cleanup --quiet --leaves --exclude-bin | xargs sudo yum remove -y # 刪除無用的依賴包
sudo rm -rf /home/user/old_backups/* # 刪除用戶目錄下的舊備份文件夾
五、使用工具輔助清理
sudo dnf install bleachbit # 安裝bleachbit
bleachbit # 啟動圖形化界面,選擇清理項目(如“系統臨時文件”“YUM緩存”)
六、擴展磁盤空間(可選)
若清理后仍空間不足,可考慮擴展磁盤:
sudo pvresize /dev/sdXY
(/dev/sdXY
為物理卷設備,如/dev/sda2
)。sudo vgextend vgName /dev/sdXY
(vgName
為卷組名稱,可通過vgdisplay
查看)。sudo lvextend -L +10G /dev/vgName/lvName
(+10G
表示增加10GB,可根據需求調整)。sudo xfs_growfs /dev/vgName/lvName
(XFS文件系統)或sudo resize2fs /dev/vgName/lvName
(ext4文件系統)。fdisk /dev/sdX
創建新分區(/dev/sdX
為磁盤設備,如/dev/sdb
)。sudo mkfs.ext4 /dev/sdX1
(/dev/sdX1
為新分區)。sudo mkdir /mnt/newdisk
(創建掛載點),sudo mount /dev/sdX1 /mnt/newdisk
(臨時掛載)。/etc/fstab
文件,添加/dev/sdX1 /mnt/newdisk ext4 defaults 0 0
(重啟后自動掛載)。注意事項
/home
、/etc
目錄),避免誤操作導致數據丟失。virt-manager
或virsh
命令擴展虛擬磁盤(需先擴展虛擬機磁盤文件,再擴展系統分區)。