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

起因

想看一眼定时任务的时候,手误打成了-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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/633341.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

IPA酒精清洁笔:打印机打印头、相机镜头等光学设备清洁的好帮手!

打印机打印头、相机镜头等光学设备在长期使用的过程中,会产生油脂、污渍和灰尘等污染物杂质,从而影响到打印质量、镜头清晰度等。通过IPA酒精清洁笔可以简便快捷、安全有效的清除这些污染物杂质,保持设备表面的清洁度,从而确保设备…

列举几个淘宝商品详情API接口测试示例

API名:item_get 名称类型必须描述keyString是调用key(必须以GET方式拼接在URL中)secretString是调用密钥api_nameString是API接口名称(包括在请求地址中)[item_search,item_get,item_search_shop等]cacheString否[yes…

MyBatis入门——MyBatis XML配置文件(3)

目录 一、配置连接字符串和MyBatis 二、写持久层代码 1、添加 mapper 接口 2、添加 USerInfoXmlMapper.xml 3、测试类代码 三、增删改查操作 1、增(Insert) 返回自增 id 2、删(Delete) 3、改(update&#xf…

Java中Spring MVC 来如何接收表单数据

目录 一、Java语言介绍 二、Spring MVC 框架介绍 三、什么是表单 四、Spring MVC 来如何接收表单数据 一、Java语言介绍 Java是一种广泛使用的面向对象的编程语言,由Sun Microsystems公司的James Gosling等人开发。它最初于1995年发布,被设计为具有…

Android Studio 与 Gradle 及插件版本兼容性

Android Studio 开始新项目时,会自动创建其中部分文件,并为其填充合理的默认值。 项目文件结构布局: 一、Android Gradle 及插件作用: Android Studio 构建系统以 Gradle 为基础,并且 Android Gradle 插件 (AGP) 添加…

利用远控工具横向

一.横向移动介绍和方式 1.介绍 内网渗透的横向移动是指攻击者在成功进入内网后,通过利用内部系统的漏洞或者获取的合法访问权限,从一个受感染的系统向其他系统扩散或移动。这种横向移动的目的通常是为了获取更多的敏感信息、提升权限、扩大攻击面或者更…

记录踩坑事件 分页查询order by出现重复数据bug

MySQL排序小坑_mysql order by name相同导致排序混乱-CSDN博客 1、问题描述 列表页分页查询出现重复数据。 2、问题排查 排查最终执行sql日志。 select * from tableA where (start_time>2024-04-17 00:00:00) AND (start_time<2024-05-18 00:00:00) ORDER BY sta…

rocketmq 学习二 基本概念

教程&#xff1a;基本概念 | RocketMQ 视频教程 https://www.bilibili.com/video/BV1d5411y7UW?vd_sourcef1bd3b5218c30adf0a002c8c937e0a27 版本&#xff1a;5.0 一 基本概念 1.1 生产者/Producer 1.1.1 定义 消息发布者。是构建并传输消息到服务端的运行实体。…

mac远程桌面连接工具:Microsoft Remote Desktop正式版

Microsoft Remote Desktop 是一款由微软开发的远程桌面控制软件。它允许用户通过互联网连接到远程计算机&#xff0c;从而可以在本地计算机上访问和控制远程计算机的桌面、文件和应用程序。 下载地址&#xff1a;https://www.macz.com/mac/1004.html?idOTI2NjQ5Jl8mMjcuMTg2Lj…

ACM实训

【碎碎念】继续搞习题学习&#xff0c;今天完成第四套的ABCD&#xff0c;为下一周挤出时间复习&#xff0c;加油 Digit Counting 问题 法希姆喜欢解决数学问题。但有时解决所有的数学问题对他来说是一个挑战。所以有时候他会为了解决数学难题而生气。他拿起一支粉笔&#xff…

通过管理系统完成商品属性维护

文章目录 1.数据库表设计1.商品属性表 2.renren-generator生成CRUD1.基本配置检查1.generator.properties2.application.yml 2.启动RenrenGeneratorApplication.java生成CRUD1.启动后访问localhost:812.生成商品属性表的crud 3.将crud代码集成到项目中1.解压&#xff0c;找到ma…

Java日志冲突问题

在今天的 Maven 构建过程中&#xff0c;我遇到了 SLF4J 和 Logback 之间的依赖冲突问题。以下是对这些问题的总结以及相应的解决方案。 问题描述: Maven 构建中 SLF4J 和 Logback 依赖冲突问题总结 日志警告&#xff1a; SLF4J: Class path contains multiple SLF4J binding…

flannel详细介绍

一、前言 Flannel 是一个简单、高效的容器网络解决方案&#xff0c;适用于需要在多个主机上运行容器的场景。它通过虚拟网络技术和 IP 地址管理来实现容器之间的通信和跨主机连接&#xff0c;为容器平台提供了可靠的网络基础设施&#xff0c;flannel有三种模式&#xff0c;分别…

sudo pip3 install rpi_ws281x error: externally-managed-environment

报错 error: externally-managed-environment piraspberrypi:~ $ sudo pip3 install rpi_ws281x error: externally-managed-environment This environment is externally managed ╰─> To install Python packages system-wide, try apt installpython3-xyz, where xyz i…

如何自建谷歌站点?

自建谷歌站点其实是一个相对简单的过程&#xff0c;主要是指创建一个能够被谷歌搜索引擎索引和搜索的网站 首先要做的自然就是选择一个域名&#xff0c;域名基本就相当于你的门牌号了&#xff0c;你得想一个既好记又能代表你网站内容的名字&#xff0c;注册域名可以去很多网站…

【Qt】之【Bug】C2001 常量中有换行符

分析 参考&#xff1a;Qt记录&#xff1a;Qt编程遇C2001错误&#xff0c;提示“常量中有换行符”_qt 常量中有换行符-CSDN博客 原因 字符串中有中文字符 &#xff1a;使用了中文标点符号&#xff01; 解决 中文感叹号改为英文的

基于transformers框架实践Bert系列4-文本相似度

本系列用于Bert模型实践实际场景&#xff0c;分别包括分类器、命名实体识别、选择题、文本摘要等等。&#xff08;关于Bert的结构和详细这里就不做讲解&#xff0c;但了解Bert的基本结构是做实践的基础&#xff0c;因此看本系列之前&#xff0c;最好了解一下transformers和Bert…

RisingWave 用户定义函数 (一) :概览

&#xff5c;作者&#xff1a;王润基 RisingWave Labs 内核开发工程师 用户定义函数&#xff08;User Defined Function&#xff0c;以下简称 UDF&#xff09;是数据系统中的常见功能。它允许用户使用各种语言定义自己的函数&#xff0c;作为内置函数的补充&#xff0c;以实现…

【前端】使用 Canvas 实现贪吃蛇小游戏

使用 Canvas 实现贪吃蛇小游戏 在这篇博客中&#xff0c;我们将介绍如何使用 HTML5 Canvas 和 JavaScript 实现一个简单的贪吃蛇&#xff08;Snake&#xff09;小游戏。这个项目是一个基础的游戏开发练习&#xff0c;它可以帮助你理解如何在 Canvas 上绘图、如何处理用户输入以…

【九十三】【算法分析与设计】719. 找出第 K 小的数对距离,N 台电脑的最长时间,二分答案法

719. 找出第 K 小的数对距离 - 力扣&#xff08;LeetCode&#xff09; 数对 (a,b) 由整数 a 和 b 组成&#xff0c;其数对距离定义为 a 和 b 的绝对差值。 给你一个整数数组 nums 和一个整数 k &#xff0c;数对由 nums[i] 和 nums[j] 组成且满足 0 < i < j < nums.le…