禁止crontab -r清空定时任务列表误操作

作者: 小新

发布于 2020-01-07 | 最后更新 2020-01-07


关于crontab

  1. 附件cron.sh放/usr/bin目录下面
  2. 在/etc/bashrc文件末尾添加
alias crontab='/usr/bin/cron.sh' 

或者在当前root用户下在~/.bashrc文件末尾添加:

alias crontab='/usr/bin/cron.sh' 

cron.sh作用

  1. 禁止crontab -r
  2. 每次编辑都备份cron列表到~/cronbak目录下面
#!/bin/bash
source ~/.bashrc

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

if [ "$1" = "-r" ] ; then
    echo "Deleting is dangerous"
    echo "Please use /usr/bin/crontab -r"
    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