CentOS定期维护清单与自动化方案

一 维护周期与核心任务
| 周期 | 关键任务 | 要点 |
|---|---|---|
| 每日 | 检查系统健康与告警 | 查看资源使用(CPU、内存、磁盘)、关键服务状态、登录与安全日志异常 |
| 每周 | 补丁与仓库更新 | 执行安全/常规更新、清理缓存、核对更新日志 |
| 每月 | 安全与配置核查 | 防火墙与端口、SSH加固、用户与权限、SELinux、备份校验 |
| 每季 | 容量与性能评估 | 磁盘增长趋势、I/O与网络基线、慢查询/慢进程优化 |
| 每半年 | 灾备演练与审计 | 恢复演练、备份有效性验证、漏洞扫描与合规审计 |
| 按需 | 内核与驱动 | 评估并升级内核/驱动,变更窗口内实施与回滚预案 |
二 系统更新与补丁管理
三 安全加固与访问控制
四 日志与磁盘空间维护
/var/log/myapp/*.log {dailymissingokrotate 7compressdelaycompressnotifemptycreate 0640 root admsharedscriptspostrotate/bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || trueendscript}五 备份恢复与巡检自动化
#!/usr/bin/env bashLOGDIR="/var/log/"logs=(boot.log messages secure)for log in "${logs[@]}"; doecho "=== $log ==="grep -iE 'fail|error|warning' "${LOGDIR}${log}"done#!/usr/bin/env bashTHRESHOLD=80usage=$(df -Ph / | awk 'NR==2 {print $5}' | tr -d '%')if [ "$usage" -gt "$THRESHOLD" ]; thenecho "WARN: Rootfs usage ${usage}% > ${THRESHOLD}%"elseecho "OK: Rootfs usage ${usage}%"fi#!/usr/bin/env bashfor svc in sshd rsyslog crond nginx mysqld; doif systemctl is-active --quiet "$svc"; thenecho "$svc: running"elseecho "ERROR: $svc: stopped"fidone