万恶的"crontab -r"
目录
1 起因
最近检查了一下数据库dump的定时任务,发现有一段时间没有新的dump文件了,准备改一改crontab,然后发生了下面的事故。按crontab -e成了crontab -r,键盘上E和R是邻居,一不小心就没了。

2 拯救
接下来说说怎么恢复吧
通过命令可以找出以前执行过的命令
cat /var/log/cron* | grep CMD | awk -F'CMD' '{print $2}' | awk -F'[(|)]' '{print $2}' | sort -u3 防止再发
给crontab别名
在/usr/bin下面新建cron.sh,内容如下
#!/bin/bash
source ~/.bashrc
if [ "$1" = "-r" ] ; then
echo "My God! Dangerous..."
echo "Exit..."
exit 2
fi
if [ "$1" = "-l" ] ; then
/usr/bin/crontab -l
exit 0
fi
if [ "$1" = "-e" ] ; then
mkdir -p ~/cronbak
/usr/bin/crontab -l > ~/cronbak/cron.bak.$etime.a
/usr/bin/crontab -e
/usr/bin/crontab -l > ~/cronbak/cron.bak.$etime.b
fichmod +x cron.sh在/etc/bashrc或者~/.bashrc文件最后添加
alias crontab='/usr/bin/cron.sh'
cron.sh作用
1、禁止crontab -r
2、每次编辑都备份 cron 列表到~/cronbak目录下面