溫馨提示×

如何定期自動清理centos

小樊
49
2025-09-07 21:40:51
欄目: 智能運維

定期自動清理CentOS系統可通過以下方式實現,核心方法包括使用cron定時任務、systemd定時器及系統自帶工具:

一、使用cron定時任務(推薦)

  1. 創建清理腳本
    編寫腳本(如/usr/local/bin/cleanup.sh),包含清理邏輯,例如:

    #!/bin/bash
    # 清理臨時文件
    rm -rf /tmp/*
    rm -rf /var/tmp/*
    # 清理7天前的日志
    find /var/log -type f -name "*.log" -mtime +7 -exec rm -f {} \;
    # 清理包管理器緩存
    yum clean all  # 或 dnf clean all
    

    賦予執行權限chmod +x /usr/local/bin/cleanup.sh。

  2. 配置cron任務
    編輯crontab文件:sudo crontab -e,添加定時規則(如每天凌晨2點執行):
    0 2 * * * /usr/local/bin/cleanup.sh >> /var/log/cleanup.log 2>&1
    保存后可通過crontab -l查看任務。

二、使用systemd定時器(CentOS 7+)

  1. 創建服務單元文件
    編輯/etc/systemd/system/cleanup.service

    [Unit]
    Description=System Cleanup Service
    [Service]
    Type=oneshot
    ExecStart=/usr/local/bin/cleanup.sh
    ```。
    
    
  2. 創建定時器單元文件
    編輯/etc/systemd/system/cleanup.timer

    [Unit]
    Description=Run Cleanup Daily
    [Timer]
    OnCalendar=daily
    Persistent=true
    [Install]
    WantedBy=timers.target
    

    啟用并啟動定時器:
    sudo systemctl enable --now cleanup.timer。

三、利用系統工具輔助清理

  • logrotate管理日志
    編輯/etc/logrotate.conf或創建自定義配置(如/etc/logrotate.d/myapp),設置日志輪轉和壓縮策略,例如:

    /var/log/myapp/*.log {
        daily
        rotate 7
        compress
        missingok
    }
    

    手動測試:logrotate -f /etc/logrotate.conf。

  • 清理YUM/DNF緩存
    執行命令:sudo yum clean all(或dnf clean all),可結合cron定期運行。

四、注意事項

  • 腳本中避免直接刪除系統關鍵文件,優先通過truncate清空日志或通過find按時間刪除。
  • 定期檢查/var/log/cleanup.log確認任務執行情況。
  • 生產環境建議先在測試環境驗證腳本邏輯,避免誤刪數據。

以上方法可根據需求選擇,cron適合通用場景,systemd適合需要精準控制的場景,系統工具則可簡化特定清理操作。

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