centos

centos清理的自动化工具介绍

小樊
39
2025-12-13 16:15:08
栏目: 智能运维

CentOS清理的自动化工具与方案

一 工具分类与定位

二 常用自动化方式

三 一键自动化脚本示例

#!/usr/bin/env bash
set -Eeuo pipefail

# 仅在 CentOS 7/8 常见路径下执行清理
YUM=$(command -v yum 2>/dev/null)
DNF=$(command -v dnf 2>/dev/null)

# 1) 清理包管理器缓存
if [[ -n "$YUM" ]]; then
  yum clean all
elif [[ -n "$DNF" ]]; then
  dnf clean all
fi

# 2) 清理 systemd journal(保留最近7天)
journalctl --vacuum-time=7d || true

# 3) 截断 /var/log 下超过7天的 .log 文件(更安全,避免直接删除正在写入的日志)
find /var/log -type f -name "*.log" -mtime +7 -print0 | xargs -0 -r truncate -s 0

# 4) 清理临时目录(谨慎:确保无业务依赖)
rm -rf /tmp/*
rm -rf /var/tmp/*

# 5) 删除旧内核,仅保留最近2个(需 root;适配 yum/dnf)
if [[ -n "$YUM" ]]; then
  package-cleanup --oldkernels --count=2 || true
elif [[ -n "$DNF" ]]; then
  dnf remove -y "$(dnf repoquery --installonly --latest-limit=-2 -q)" || true
fi

# 6) 可选:清空回收站(若已安装 trash-cli)
if command -v trash-empty >/dev/null 2>&1; then
  trash-empty 7 || true
fi

exit 0

四 安全与最佳实践

0
看了该问题的人还看了