三二互联专业提供速度最快最稳定的美国服务器、香港服务器。中美直连,亚洲优化![ 代理登陆 ] [ 付款方式 ] [ 找回密码 ][ 电子协议责任书 ]
硬件资源保障

采用高配品牌服务器

主流强悍CPU配置

确保服务高速稳定运行

中美直连线路

中美直连亚洲优化

采用中国CN2骨干网络

保证速度飞快稳定高效

如何监控定期清理CentOS 7.6系统无用文件任务的执行情况?

美国、香港服务器

如何监控定期清理CentOS 7.6系统无用文件任务的执行情况?

09-22   来源:

要监控 CentOS 7.6 中定期清理无用文件任务的执行情况,可通过日志记录、执行结果检查和告警机制实现全流程跟踪,确保清理任务正常运行且无异常操作。以下是具体方法:
一、通过日志记录监控清理细节
在清理脚本中添加详细日志输出,记录清理时间、操作内容、成功 / 失败状态,便于事后追溯。
1. 完善清理脚本的日志功能
修改之前的清理脚本(如 /usr/local/bin/system_cleanup.sh),增加更详细的日志记录(包括清理的文件数量、大小、错误信息等):
bash
#!/bin/bash
LOG_FILE="/var/log/system_cleanup.log"
# 记录开始时间和磁盘空间初始状态
echo "===== 清理任务开始:$(date) =====" >> $LOG_FILE
df -h >> $LOG_FILE  # 记录清理前的磁盘空间
 
# 1. 清理 yum 缓存
echo "--- 清理 yum 缓存 ---" >> $LOG_FILE
yum clean packages >> $LOG_FILE 2>&1
if [ $? -eq 0 ]; then
  echo "yum 缓存清理成功" >> $LOG_FILE
else
  echo "yum 缓存清理失败" >> $LOG_FILE
fi
 
# 2. 清理临时文件(记录删除的文件数量)
echo "--- 清理 /tmp 旧文件 ---" >> $LOG_FILE
tmp_count=$(find /tmp -type f -mtime +7 -delete -print | wc -l)
echo "删除 /tmp 下 $tmp_count 个旧文件" >> $LOG_FILE
 
echo "--- 清理 /var/tmp 旧文件 ---" >> $LOG_FILE
vartmp_count=$(find /var/tmp -type f -mtime +7 -delete -print | wc -l)
echo "删除 /var/tmp 下 $vartmp_count 个旧文件" >> $LOG_FILE
 
# 3. 清理旧日志(记录删除的文件数量)
echo "--- 清理旧日志文件 ---" >> $LOG_FILE
log_count=$(find /var/log -type f \( -name "*.log-*" -o -name "*.log.*" -o -name "*.gz" \) -mtime +30 -delete -print | wc -l)
echo "删除 $log_count 个旧日志文件" >> $LOG_FILE
 
# 4. 记录清理后的磁盘空间
echo "--- 清理后磁盘空间 ---" >> $LOG_FILE
df -h >> $LOG_FILE
echo "===== 清理任务结束:$(date) =====" >> $LOG_FILE
echo "" >> $LOG_FILE
关键改进:增加 $? 判断操作是否成功、用 wc -l 统计删除文件数量、记录清理前后的磁盘空间(便于对比释放效果)。
2. 定期查看清理日志
通过日志确认任务是否执行、是否有错误:
bash
# 查看最近一次清理记录
tail -n 50 /var/log/system_cleanup.log
 
# 搜索包含“失败”的记录(检查错误)
grep "失败" /var/log/system_cleanup.log
 
# 查看历史清理的文件数量(评估清理效果)
grep "删除" /var/log/system_cleanup.log
二、检查定时任务(crontab)的执行状态
确认 crond 服务是否正常运行,以及定时任务是否按计划执行。
1. 检查 crond 服务状态
bash
# 查看 crond 服务是否运行
systemctl status crond
 
# 若未运行,启动并设置开机自启
systemctl start crond
systemctl enable crond
2. 查看 crontab 任务执行记录
crond 的执行日志默认记录在 /var/log/cron 中,可通过该日志确认任务是否触发:
bash
# 搜索清理脚本的执行记录(例如脚本名为 system_cleanup.sh)
grep "system_cleanup.sh" /var/log/cron
若输出类似 Sep 22 03:00:01 localhost CROND[12345]: (root) CMD (/usr/local/bin/system_cleanup.sh),说明任务已按计划执行。
三、设置执行结果告警(主动通知)
通过邮件或脚本判断,当清理任务失败或异常时主动发送告警,及时发现问题。
1. 配置邮件告警(需安装邮件服务)
(1)安装并配置邮件服务
bash
# 安装 postfix 邮件服务和 mailx 客户端
yum install -y postfix mailx
systemctl start postfix
systemctl enable postfix
 
# 配置默认发件人(编辑 /etc/mail.rc,添加以下内容)
echo "set from=your-email@example.com" >> /etc/mail.rc  # 替换为你的邮箱
echo "set smtp=smtp.example.com" >> /etc/mail.rc        # 替换为邮箱的 SMTP 服务器
echo "set smtp-auth-user=your-email@example.com" >> /etc/mail.rc
echo "set smtp-auth-password=your-password" >> /etc/mail.rc  # 邮箱密码或授权码
echo "set smtp-auth=login" >> /etc/mail.rc
(2)在清理脚本中添加告警逻辑
修改脚本,当任务执行失败时发送邮件:
bash
#!/bin/bash
LOG_FILE="/var/log/system_cleanup.log"
ALERT_EMAIL="admin@example.com"  # 接收告警的邮箱
 
echo "===== 清理任务开始:$(date) =====" >> $LOG_FILE
 
# 执行清理操作(以清理 yum 缓存为例,其他操作类似)
yum clean packages >> $LOG_FILE 2>&1
if [ $? -ne 0 ]; then
  echo "yum 缓存清理失败" >> $LOG_FILE
  echo "系统清理任务失败,请查看日志:$LOG_FILE" | mail -s "CentOS 清理任务告警" $ALERT_EMAIL
  exit 1  # 遇到错误时退出脚本
fi
 
# 其他清理步骤...
 
echo "===== 清理任务结束:$(date) =====" >> $LOG_FILE
2. 监控磁盘空间变化(验证清理效果)
通过对比清理前后的磁盘空间,确认清理任务是否有效释放了空间:
bash
# 查看清理日志中记录的磁盘空间变化
grep -A 10 "清理前的磁盘空间" /var/log/system_cleanup.log
grep -A 10 "清理后磁盘空间" /var/log/system_cleanup.log
若多次清理后磁盘空间未明显减少,可能是清理规则需调整(如增加清理范围)。
四、使用监控工具(适合企业级场景)
若需更专业的监控,可集成开源工具(如 Prometheus + Grafana)或系统自带工具:
1. 用 monit 监控任务执行
monit 是轻量级监控工具,可配置监控脚本执行状态:
bash
# 安装 monit
yum install -y monit
 
# 配置监控规则(编辑 /etc/monit.d/cleanup.conf)
cat << EOF > /etc/monit.d/cleanup.conf
check process system_cleanup with pidfile /var/run/system_cleanup.pid
  start program = "/usr/local/bin/system_cleanup.sh"
  if does not exist for 2 cycles then alert  # 连续2次未执行则告警
EOF
 
# 启动 monit 并设置开机自启
systemctl start monit
systemctl enable monit
2. 用 Prometheus 监控磁盘空间
通过 Prometheus 采集磁盘空间指标,结合 Grafana 可视化,当空间占用超过阈值时告警(需额外部署,适合多服务器场景)。
总结
监控定期清理任务的核心方法:
日志记录:在脚本中详细记录清理内容、时间、结果,通过 tail 或 grep 查看;
任务检查:通过 /var/log/cron 确认定时任务是否触发,systemctl status crond 检查服务状态;
主动告警:配置邮件通知,当任务失败时及时提醒;
效果验证:对比清理前后的磁盘空间,确认清理有效。
通过以上措施,可全面监控清理任务的执行状态,确保其稳定运行并达到释放空间的目的。

三二互联专业提供香港VPS,美国VPS主机,香港云服务器租用等业务香港美国到大陆CN2 GIA速度最快

上一篇:怎样设置告警机制以监控定期清理任务的执行情况? 下一篇:定期清理 CentOS 7.6 系统中的无用文件会对系统造成影响吗?

美国GIA服务器三二互联版权所有 WWW.250.cc 2008-2015 All Rights Reserved
三二互联 - 专业的美国C3服务器香港vps、抗DOOS流量清洗、云备份系统、网站加速系统、美国GIA服务器和香港云服务器产品提供商
三二互联24小时在线工单系统为您提供全面、专业、周到的技术支持与服务
咨询热线:400-679-9994(免长话费)