自動化CentOS系統清理可以通過編寫腳本并結合 crontab 定時任務來實現。以下是一個簡單的自動化清理腳本示例,該腳本可以清理YUM緩存、刪除無用的軟件包、清理舊的日志文件、清空回收站、清理臨時文件、清理舊的系統備份、清理不再使用的軟件包和依賴項、清理舊的內核、清理緩存文件、清理用戶緩存、清理郵件日志、清理core文件、清理舊的會話文件、清理系統郵件隊列、清理久未使用的軟件包緩存、清理系統崩潰日志、清理journalctl日志、清理系統緩存等。
#!/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/*
# 清理歷史命令記錄
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 | sudo tee /proc/sys/vm/drop_caches
# 清理歷史命令記錄
history -c
history -w
# 計算清理了多少大小的文件
cleared=$(df -h / | awk '/\// {print $4}' | awk -v before="$before" '{print before - $1}')
# 記錄清理后的可用空間
after=$(df -h / | awk '/\// {print $4}')
echo "清理前可用空間: $before"
echo "清理后可用空間: $after"
echo "磁盤清理完成。"
chmod +x cleanup.sh
crontab -e
在打開的編輯器中添加以下行,以每3天執行一次腳本:
0 0 */3 * * /path/to/cleanup.sh >/dev/null 2>&1 &
保存并退出編輯器。