【Linux-运维-故障恢复】误删crontab的恢复

【Linux-运维-故障恢复】误删crontab的恢复,第1张

重要的事情说三遍,但总是会有各种意外。这里简单讲一下crontab误删后的恢复。

测试环境做测试,没有对测试环境的crontab进行备份。脚本误将crontab复写,原本的定时任务被清零。

虽然是测试环境,但是还是有一些特殊的心跳上报、性能监控、信息同步等任务。

所以需要将没有备份的crontab复原

解释:

grep -i " whoami " :是为了过滤其他用户的信息

grep "CMD" :是需要过滤非命令行

awk -F '(' '{print $3}':是以'('为分隔符,提取第三个元素。这里结果为“/home/scripts/check_alive.sh)”

awk -F ')' '{print $1}':是以')'为分隔符,提取第一个元素。这里结果为“/home/scripts/check_alive.sh”

这时,我们已经提取到自己所需要的命令了,但由于crontab定时触发,会有大量重复。后面需要进行去重

sort >cmd_tmp:去重后输出至cmd_tmp文件

后续根据提取出来的命令再去 /var/log/cron文件中确认一下时间间隔,按照指定的方式恢复至/var/spool/cron/

至此crontab恢复完毕

以后测试和发布内容之前一定要备份!!!为了防止类似事件再次发生,写一个自动化脚本是很有必要的。这里简单实现一个每天对crontab进行备份的脚本(备份最近7天的数据,每天定期删除7天前的数据)

1、crontab

-l

如果还有内容

2、crontab

-l

>

/var/spool/cron/username即可

3、/etc/crontab如果删除了,重新安装cron或找同版本的crontab文件替换即可

有两种情况,不知道你说哪种情况

crontab任务被删:root账号从crontab执行log里捞

awk -F'(' '/crond/{a[$3]=$0}END{for(i in a)print a[i]}' /var/log/cron*

crontab -l记录被删,/etc/crontab被删:首先crontab -l>xx.txt保存任务,然后安装crontab


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/11587683.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-17
下一篇2023-05-17

发表评论

登录后才能评论

评论列表(0条)

    保存