溫馨提示×

如何自動化清理CentOS

小樊
48
2025-02-24 22:47:37
欄目: 智能運維

在CentOS系統中,可以通過編寫shell腳本并結合crontab定時任務來實現自動化清理。以下是一個簡單的自動化清理腳本示例,該腳本可以清理內存緩存、舊的日志文件、臨時文件、不再使用的軟件包和依賴項等。

自動化清理腳本示例

  1. 創建腳本文件
#!/bin/bash
# 記錄清理前的可用空間
before=$(df -h / | awk '/\// {print $4}')

# 清理yum緩存
yum clean all

# 清理舊的日志文件
find /var/log -type f -name "*.log" -exec truncate --size 0 {} \;

# 清理回收站
echo "Emptying trash..."
rm -rf /root/.local/share/Trash/dev/null

# 清理歷史命令記錄
history -c
history -w

# 清理臨時文件
rm -rf /tmp/*
rm -rf /var/tmp/*

# 清理舊的系統備份
rm -rf /var/backups/*

# 清理不再使用的軟件包和依賴項
yum autoremove -y

# 清理舊的內核
package-cleanup --oldkernels --count=1 -y

# 清理緩存文件
find /var/cache -type f -exec rm -rf {} \;

# 清理用戶緩存
for user in $(ls /home); do
    rm -rf /home/$user/.cache/*
done

# 清理郵件日志
find /var/mail -type f -exec truncate --size 0 {} \;

# 清理core文件
find / -name "core" -delete

# 清理舊的會話文件
find /var/lib/php/session -type f -delete

# 清理系統郵件隊列
service postfix stop
rm -rf /var/spool/postfix/*
service postfix start

# 清理久未使用的軟件包緩存
dnf clean packages -y

# 清理系統崩潰日志
rm -rf /var/crash/*

# 清理journalctl日志
journalctl --rotate
journalctl --vacuum-time=1d

# 清理系統緩存
sync && echo 3 > /proc/sys/vm/drop_caches

# 計算清理了多少大小的文件
cleared=$(df -h / | awk '/\// {print $4}' | awk -v before="$before" '{print before - $1}')

# 記錄清理后的可用空間
after=$(df -h / | awk '/\// {print $4}')

echo "清理前可用空間: $before"
echo "清理后可用空間: $after"
echo "磁盤清理完成。"
  1. 設置腳本權限
chmod +x /path/to/cleanup.sh
  1. 添加定時任務
crontab -e

在打開的編輯器中添加以下內容,以每兩小時執行一次腳本:

0 */2 * * * /path/to/cleanup.sh >/dev/null 2>&1 &
  1. 保存并退出編輯器。

其他自動化清理工具

  • BleachBit:一個強大的系統清理工具,支持CentOS和其他Linux發行版。它可以清理內存和交換分區、刪除無效的鏈接、清理不使用的語言包等。

注意事項

  • 在執行任何清理操作之前,請確保備份重要數據,以防意外刪除。
  • 根據實際需求調整腳本中的清理規則。
  • 定期檢查腳本執行情況,確保其按預期工作。

通過上述步驟,您可以在CentOS系統上實現自動化的清理工作,從而提高系統性能和穩定性。

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