linux误删crontab定时任务后的补救措施(随手记)

19 篇文章 0 订阅
6 篇文章 0 订阅

起因

想看一眼定时任务的时候,手误打成了-r,接着我的定时任务就全没了……

补救措施

我们都知道,crontab的几个关键目录中有一个是/var/log/cron,这个目录记录了crontab执行的日志。
如果平时没有备份crontab的习惯的话,只能靠读取这个文件来找命令了。

cat /var/log/cron  | grep -i "root" | grep "CMD" | awk -F 'CMD' '{print $2}' |sort|uniq -c |sort -n | grep "/bin/sh"

#针对上述语句可以翻阅我之前的笔记(linux专栏下)或自行gpt解释
#最后过滤/bin/sh的原因是,在我的crontab中,除了ntp均以shell脚本执行,因此我只需关注这个部分,可以看得更少

根据上述命令的输出,我个人推荐从END这个栏目中寻找代码

cat /var/log/cron  | grep -i "root" | grep "CMD" | awk -F 'CMD' '{print $2}' |sort|uniq -c |sort -n | grep "/bin/sh" | grep "END"
      4 END (/bin/sh /root/exercise/
     /backup.sh)
     11 END (/bin/sh /root/exercise/send_sys_to_mail.sh 2>&1)
     18 END (/bin/sh /root/exercise/backup-conf-ip.sh )
     81 END (/bin/sh /root/exercise/ipif.sh &>> /tmp/ipif.info)
    112 END (/bin/sh /root/exercise/sys_info_check.sh >> /tmp/sys_info_check.info 2>&1)

#END开头表明crontab正常执行了这个指令

最后,自己重新补充到crontab中即可

备份定时任务

这次给我敲了个警钟,我是真没想到清空这么关键的选项竟然没有二次确认。
为了避免,编写了一个定时备份crontab内容的脚本放入crontab中执行。

#编写脚本
vim backup_crontab.sh

#!/bin/bash
#author: tassel_yue

#1.set variable
dir=/tmp
IP=`hostname -I | awk '{print $1}'`
TIME=`date +%F_%w`
backup_dir=${dir}/$IP

#2. backup
mkdir -p ${backup_dir}
/usr/bin/crontab -l &> /tmp/$IP/backup_crontab~$TIME


#放入crontab
crontab -e
#5.backup crontabfile to tmp dir,once one day
0 0 * * * /bin/sh /root/exercise/backup_crontab.sh
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值