温馨提示×

如何自动化清理CentOS

小樊
38
2025-02-24 22:47:37
栏目: 智能运维
Centos服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

在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系统上实现自动化的清理工作,从而提高系统性能和稳定性。

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读:如何自动化CentOS系统清理

0