溫馨提示×

CentOS系統如何定期清理

小樊
47
2025-10-22 00:46:55
欄目: 智能運維

CentOS系統定期清理方法

一、清理臨時文件

臨時文件主要存儲在/tmp、/var/tmp及用戶主目錄的.cache、.local/share/Trash目錄中,定期清理可快速釋放磁盤空間。

  • 手動清理:使用rm命令刪除目錄下文件(謹慎操作,避免誤刪系統文件):
    sudo rm -rf /tmp/* /var/tmp/*  # 清理系統臨時目錄
    rm -rf ~/.cache/* ~/.local/share/Trash/*  # 清理用戶臨時文件
    
  • 工具清理:使用systemd-tmpfiles(CentOS 7及以上)根據配置規則自動清理,也可通過tmpwatch工具刪除指定時間未訪問的文件:
    sudo systemd-tmpfiles --clean  # 按系統配置清理
    sudo yum install tmpwatch && sudo tmpwatch 7d /tmp  # 刪除7天未訪問的/tmp文件
    
  • 定時任務:通過cron每天凌晨3點自動清理:
    sudo crontab -e
    # 添加以下內容
    0 3 * * * rm -rf /tmp/* /var/tmp/* && rm -rf ~/.cache/* ~/.local/share/Trash/*
    

二、清理日志文件

日志文件(如/var/log/messages、/var/log/secure)會隨時間增長占用大量空間,可通過以下方式管理:

  • 使用logrotate工具(推薦):自動輪轉、壓縮、刪除舊日志。編輯配置文件(如/etc/logrotate.d/messages_secure):
    /var/log/messages /var/log/secure {
        daily  # 每天輪轉
        rotate 7  # 保留7份舊日志
        compress  # 壓縮舊日志
        missingok  # 日志丟失不報錯
        notifempty  # 空日志不輪轉
        create 640 root adm  # 新日志權限
    }
    
    測試配置是否正確:sudo logrotate -f /etc/logrotate.conf。
  • 使用journalctl命令:針對systemd日志,刪除指定時間前的日志:
    sudo journalctl --vacuum-time=2weeks  # 刪除2周前的日志
    sudo journalctl --rotate  # 手動旋轉日志
    
  • 手動清理:直接刪除舊日志文件(需確認不影響系統診斷):
    sudo find /var/log -type f -name "*.log" -mtime +7 -exec rm -f {} \;  # 刪除7天前的.log文件
    

三、清理包管理器緩存

包管理器(yum/dnf)的緩存會占用/var/cache空間,定期清理可釋放資源:

  • 清理所有緩存
    sudo yum clean all  # CentOS 7及以下
    sudo dnf clean all  # CentOS 8及以上
    
  • 僅清理元數據或包數據
    sudo yum clean metadata  # 清理元數據(減少包查詢時間)
    sudo yum clean packages  # 清理下載的包文件
    

四、清理系統緩存

系統緩存(頁面緩存、目錄項緩存等)會占用內存,清理后可釋放內存,但可能短暫影響性能(建議在系統負載低時執行):

sync && echo 3 > /proc/sys/vm/drop_caches  # 清理頁面緩存、目錄項緩存、inode緩存

五、刪除不必要軟件包

卸載不再使用的軟件包及其依賴,減少系統冗余:

sudo yum autoremove  # CentOS 7及以下
sudo dnf autoremove  # CentOS 8及以上

六、清理舊內核

舊內核會占用/boot分區空間,保留當前使用的最新內核即可:

sudo package-cleanup --oldkernels --count=1  # 保留1個最新內核,刪除其余舊內核

七、自動化清理腳本

將常用清理命令整合為腳本(如/usr/local/bin/cleanup.sh),通過cron定期執行:

#!/bin/bash
# 清理臨時文件
rm -rf /tmp/* /var/tmp/*
# 清理日志
journalctl --vacuum-time=3d
# 清理包緩存
yum clean all
# 清理系統緩存
sync && echo 3 > /proc/sys/vm/drop_caches

賦予腳本執行權限:sudo chmod +x /usr/local/bin/cleanup.sh。
添加cron任務(每天凌晨2點執行):

sudo crontab -e
# 添加以下內容
0 2 * * * /usr/local/bin/cleanup.sh >> /var/log/cleanup.log 2>&1

注意事項

  • 謹慎使用rm -rf:避免刪除系統關鍵文件(如/etc、/boot目錄下的文件)。
  • 測試清理命令:首次執行前,可先預覽將要刪除的文件(如find /tmp -type f -mtime +7)。
  • 備份重要數據:定期備份系統或重要文件,防止誤操作導致數據丟失。
  • 調整定時任務時間:根據系統使用場景,選擇負載低的時段執行清理任務(如凌晨)。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女