记录一次/tmp目录下空间满了 导致crontab 任务清空 备份恢复
crontab -r :-r:从/var/spool/cron目录中删除某个用户的crontab文件,如果不指定用户,则默认删除当前用户的crontab文件。
crontab 任务的恢复
CentOS 系统的 crontab 任务的日志,打印在 /var/log/cron 之中。考虑过滤日志:
cat /var/log/cron* | grep -i "某个用户" | grep "CMD" | awk -F '(' '{print $3}' | awk -F ')' '{print $1}' | sort -u > crontab_tmp
grep -i "某个用户" :是为了过滤某个用户的信息。比如你在test这个账户下误操作“crontab -r”删除当前用户的crontab文件,那么你可以使用 grep -i "test" 过滤test账户使用的
命令。
后续根据提取出来的命令再去 /var/log/cron文件中确认一下时间间隔,按照指定的方式恢复至/var/backup/cron/。
crontab 任务的备份
#!/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 {} \;