crontab 误删除恢复

事故原因分析:

回忆自己操作过程中,未进行crontab的清空,网上查了下原因,并且复现了下。可能原因如下:

如果在SSH远程终端中敲下“crontab”命令之后,远程连接被一些原因(比如 糟糕的网络,程序异常)意外终止了,那么Crontab计划任务就会被操作系统所清空。听起来很不可思议,但是经过在虚拟机上的多次测试,它确确实实的发生了。测试方式为 用SecureCRT开一个SSH窗口,然后敲下命令“crontab”,接着在“任务管理器”中直接杀掉SecureCRT进程,再通过另外一个SSH窗口执行“crontab -l”,就会发现,所有的计划任务都不存在了。在今天事故发生的时间点上,就有人在服务器上遇到了这样的情况。

恢复操作

  • 获取完整日志和cmd日志。从日志中恢复出一份最近几天的完整crontab 运行日志和cmd日志,并存储,用于之后完善和核准例行时间。

cat /var/log/cron | grep -i "`which cron`" > ./all_temp
cat  ./all_temp | grep -v "<command>” > ./cmd_temp
  • 获取所有crontab指令。从日志中恢复一份去重的crontab log。【相当于所有的crontab命令】

awk -F'(' '/crond/{a[$3]=$0}END{for(i in a)print a[i]}' /var/log/cron* >crontab.txt
  • 手工恢复:从crontab.txt 中找出每一条指令,然后在cmd_temp 中匹配运行次数,重新编辑crontab 添加

反思工作

防止类似事件再次发生,写个简单shell脚本,每天对crontab进行备份,备份最近15天的数据。过期清楚

#!/bin/bash
# 每天对crontab 进行备份 ,同时删除最近15天的数据
DATE=$(date +%Y%m%d)

crontab -l > /home/work/bak/crontab_$DATE.bak
find /home/work/bak/ -mtime +15 -name '*.bak' -exec rm -rf {} \;
要使用crontab定时删除文件,你需要编写一个shell脚本来执行删除操作,并在crontab中配置相应的定时任务。你可以按照以下步骤进行操作: 1. 创建一个shell脚本:使用文本编辑器创建一个新的文件,例如delete_files.sh,并在文件中添加以下命令: ``` #!/bin/bash find /path/to/files -mtime +7 -name "*.out" -exec rm -rf {} \; ``` 这个脚本会查找指定路径下7天前的所有以".out"结尾的文件,并将其删除。 2. 保存并赋予可执行权限:保存脚本文件,并使用chmod命令赋予可执行权限,例如: ``` chmod +x delete_files.sh ``` 3. 配置crontab定时任务:运行以下命令编辑crontab: ``` crontab -e ``` 4. 在打开的crontab文件中,添加一行来配置定时任务。例如,如果你想每天凌晨3点执行删除操作,可以添加以下内容: ``` 0 3 * * * /path/to/delete_files.sh ``` 5. 保存并关闭crontab文件。 现在,crontab将会每天凌晨3点自动执行delete_files.sh脚本,并删除指定路径下7天前的所有以".out"结尾的文件。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [linux crontab 定时清除日志](https://blog.csdn.net/weixin_43275578/article/details/127926876)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [crontab定时任务不执行的一些原因总结](https://download.csdn.net/download/weixin_38670186/14091181)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值