自动化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 &
保存并退出编辑器。
注意事项:
- 在执行任何清理操作之前,请确保备份重要数据,以防误删。
- 根据实际需求调整脚本中的清理规则。
- 定期检查和维护系统,以确保系统始终保持最佳状态。