首先通過以下命令明確磁盤空間的使用情況,鎖定需要清理的目標:
df -h
(重點關注Use%
列,超過80%需警惕)。du -sh /* | sort -rh
(按大小排序,快速識別占用最大的目錄,如/var
、/home
)。find / -type f -size +100M -exec ls -lh {} \;
(查找系統中大于100MB的文件,可根據實際情況調整閾值)。臨時文件和緩存是“空間殺手”,優先清理無風險:
/tmp
和/var/tmp
目錄:rm -rf /tmp/* /var/tmp/*
(刪除臨時文件,注意:避免刪除正在使用的臨時文件)。yum clean all
(CentOS 7及以下)或dnf clean all
(CentOS 8及以上),釋放軟件包緩存。rm -rf /var/cache/yum/* /var/cache/dnf/*
(進一步清理包管理器緩存)。日志文件長期積累易占滿空間,需定期清理或輪轉:
find /var/log -type f -name "*.log" -mtime +30 -exec rm -f {} \;
(刪除修改時間超過30天的.log
文件)。truncate -s 0 /var/log/*.log
(將日志文件大小截斷為0,保留文件結構)。logrotate
自動管理:編輯/etc/logrotate.conf
,設置日志輪轉周期(如daily
)、保留數量(如rotate 7
)及壓縮選項(如compress
),或通過logrotate -f /etc/logrotate.conf
強制立即輪轉。減少不必要的軟件安裝和大文件占用:
yum remove <package_name>
(如yum remove httpd
)或dnf remove <package_name>
(CentOS 8+),釋放軟件安裝目錄空間。rpm -q kernel
(列出所有已安裝內核),yum remove kernel-<舊版本號>
(保留最新2個內核,避免系統崩潰)。find /home/<username> -type f -name "*.tmp" -delete
(刪除用戶目錄下的臨時文件,如/home/user1
)。若清理后仍空間不足,需通過擴展磁盤解決:
pvcreate /dev/sdb
(/dev/sdb
為新磁盤)。vgextend centos /dev/sdb
(centos
為卷組名,可通過vgdisplay
查看)。lvextend -l +100%FREE /dev/centos/root
(root
為邏輯卷名,可通過lvdisplay
查看)。resize2fs /dev/centos/root
(EXT4文件系統)。fdisk /dev/sdb
創建新分區(如/dev/sdb1
),格式化為ext4
或xfs
:mkfs.ext4 /dev/sdb1
。mkdir /data
。mount /dev/sdb1 /data
,驗證是否成功。/etc/fstab
,添加/dev/sdb1 /data ext4 defaults 0 0
,重啟后生效。/home
、/var
等關鍵目錄,防止誤操作導致數據丟失。/boot
、/etc
目錄下的文件,刪除可能導致系統無法啟動。crontab -e
添加0 3 * * * /usr/bin/ncdu / > /var/log/disk_usage.log
),每周自動分析磁盤使用情況,提前預警。