crontab 误删除恢复
恢复操作
获取完整日志和cmd日志。从日志中恢复出一份最近几天的完整crontab 运行日志和cmd日志,并存储,用于之后完善和核准例行时间。
CentOS 系统的 crontab 任务的日志,打印在 /var/log/cron 之中。考虑过滤日志:
cat /var/log/cron* | grep CMD | awk -F'CMD' '{print $2}' | awk -F'[(|)]' '{print $2}' | sort -u
由此得到系统记录过的 crontab 执行命令,过滤其他账号的命令后即可追回目标账号的 crontab 任务。
反思工作
防止类似事件再次发生,写个简单shell脚本,每天对crontab进行备份,备份最近15天的数据。过期清楚
#!/bin/bash
# 每天对crontab 进行备份 ,同时删除最近15天的数据
DATE=$(date +%Y%m%d)
crontab -l > /home/work/bak/crontab_$DATE.bak
find /home/work/bak/ -mtime +15 -name '*.bak' -exec rm -rf {} \;
禁止crontab -r清空定时任务列表误操作
关于crontab
1、附件放/usr/bin目录下面
2、在/etc/bashrc文件末尾添加
aliascrontab='/usr/bin/cron.sh'
cron.sh作用
1、禁止crontab–r
2、每次编辑都备份cron列表到~/cronbak目录下面