linux中crontab计划任务自动清空解决办法

背景描述:

某次,同事告知有台服务器上的crontab里面的任务全部都没有了,要我帮忙查一下,幸好crontab内容有备份。于是就先恢复了crontab的任务。 再具体查一下是由人为操作导致的还是其他情况

问题排查:

检查一下所有的history记录,发现没有crontab -r之类的操作(已知的是只有crontab -r可以直接清空定时任务),当然执行crontab -e编辑也可以清空,但这种情况还是排除啦

但是发现有crontab之类的操作,大家都知道执行crontab不加任何参数,命令行会卡在那里,但一般不会对crontab里面的内容有影响。

通过询问操作过该服务器的同事及相关日志,大胆做出以下测试:
场景重现:

1. 先查看一下机器上的crontab内容

$ crontab -l
  * * * * * pwd

2. 在命令行模式下,不带任何参数执行一下crontab命令

$ crontab

3. 直接关闭会话(Close或Discount都行)(模拟网络质量差,或程序异常中止等情况)
4. 再次查看crontab内容,发现内容被清空

$ crontab -l
$

预防方案:
     crontab定时备份
     修改crontab前,先对当前crontab进行备份
     添加crontab和crontab -r的alias
Crontab没有备份时如何处理:
     只能通过分析/var/log/cron日志,提取执行的内容,并找到时间规律。欢迎提出更好的办法呀

时间: 2024-07-29 05:19:51

linux中crontab计划任务自动清空解决办法的相关文章

linux中crontab 计划任务

1.作用 使用crontab命令可以修改crontab配置文件,然后该配置由cron公用程序在适当的时 间执行,该命令使用权限是所有用户. 2.格式  代码如下 复制代码 crontab [ -u user ] 文件 crontab [ -u user ] { -l | -r | -e } 3.主要参数 -e:执行文字编辑器来设定时程表,内定的文字编辑器是vi. -r:删除目前的时程表. -l:列出目前的时程表. crontab文件的格式为"M H D m d cmd".其中,M代表分

Linux -bash: crontab: command not found错误解决办法

操作步骤 1. 确认crontab是否安装: 执行 crontab 命令如果报 command not found,就表明没有安装 2. 安装 crontab 执行 yum install -y vixie-cron 3. 确认是否安装成功: 执行 crontab -l 4. 看是否设置了开机自动启动 chkconfig --list crond 5. 启动crontab service crond start 如果安装了还不能支持可能是权限问题 脚本写的是否正确,shell脚本是否拥有执行权限

linux中装载动态库出错的解决办法

运行安装程序时经常看到如下错误: error while loading shared libraries:... error while loading shared libraries: libiustl.so.1: cannot open shared object file: No such file or directory How to do :      if libiustl.so.1 is located in /usr/local/lib,add /usr/local/lib

linux中crontab定时任务未执行错误总结

没有按照规范写以下的shell脚本导致执行失败通过CentOS中的定时任务执行shell脚本失败,进行排查: 1)手动执行shell脚本(sh backup.sh)成功执行,排除sh脚本的语法错误. 2)通过nano /etc/crontab命令查看定时任务,发现除过执行sh的定时任务外,其他任务都能正常执行.检查其代码, 发现对SHELL.PATH.MAILTO.HOME还没有好好了解过,以往都是注意下面的时间规则,所以查了一下定义: 1)SHELL,变量的值指定shell 环境(此处默认为

探索Linux之—CRONTAB计划任务

探索Linux之-CRONTAB计划任务   作者:吴伟龙Prudence Woo QQ:286507175 Mail:happy-wuweilong@hotmail.com   cron是一个linux下的定时执行工具,可以在无需人工干预的情况下运行作业.由于Crond 是Linux系统内置服务,默认情况下会随系统自动启动,当然也可以通过如下方式管理和维护contab计划任务服务. /sbin/service crond start //启动服务 /sbin/service crond sto

虚拟机linux端mysql数据库无法远程访问的解决办法_Mysql

对于解决虚拟机linux端mysql数据库无法远程访问的办法一种,以下内容我给大家整理了两种解决方案,具体内容如下: 解决方法一: 1. 在控制台执行 mysql -u root -p mysql,CentOS系统提示输入数据库root用户的密码,输入完成后即进入mysql控制台 2. 在mysql控制台执行 GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'MyPassword' WITH GRANT OPTION; FLUSH

ubuntu中laravel提示缺少mcrypt扩展解决办法

mcrypt是一个加密的扩展了,在php中如果要使用此加密就必须安装mcrypt扩展了,下面我们来看看在ubuntu中laravel提示缺少mcrypt扩展解决办法,希望下文对你有帮助. 解决办法. sudo apt-get install php5-mcrypt sudo mv -i /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available sudo php5enmod mcrypt service apache2 restart 上面的方法不知

在ASP.net中的UpdatePanel,弹窗失败解决办法

原文:在ASP.net中的UpdatePanel,弹窗失败解决办法 最开始我用: Response.Write("<script>alert('和哈呵呵呵呵呵呵!')</script>"); 在没有UpdatePanel时,这个有效,能够正确弹出提示窗口. 后面,页面改进,加上局部刷新后,该方式失效了.探索出新的方式:   ScriptManager.RegisterStartupScript(this.UpdatePanel1, this.GetType(),

AndroidGUI27中findViewById返回null的快速解决办法_Android

 在用Eclipse进行Android的界面开发,通过findViewById试图获取界面元素对象时,该方法有时候返回null,造成这种情况主要有以下两种情形. 第一种情形是最普通的. 比如main.xml如下,其中有一个ListView,其id为lv_contactbook <?xml version="1.0"encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.