执行“crontab -r”命令后的恢复

过滤cron日志,找出执行过的命令

CentOS

cat /var/log/cron* | grep CMD | awk -F'CMD' '{print $2}' | awk -F'[(|)]' '{print $2}' | sort -u

Debian

grep 'CRON.*(root)' /var/log/syslog

然后重新添加定时任务

禁止“crontab -r”误操作
在/usr/bin下面新建cron.sh,内容如下

#!/bin/bash
source ~/.bashrc

etime=`date -d "0 days ago" +%Y%m%d_%H%M%S`

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
fi


/etc/bashrc
/etc/bash.bashrc/
~/.bashrc
以上其中一个文件最后添加
alias crontab='/usr/bin/cron.sh'

cron.sh作用
1. 禁止crontab -r
2. 每次编辑都备份cron列表到~/cronbak目录下面

来源:
https://blog.csdn.net/wunianjiumeng/article/details/79923018
https://www.cnblogs.com/kinwing/p/11231315.html