今天登录服务器,发现之前所有的计划任务都不见了
然后尝试添加
[root@localhost ~]# crontab -l
[root@localhost ~]# crontab -e
crontab: installing new crontab
crontab: error renaming /var/spool/cron/#tmp.localhost.localdomain.XXXXErmAqI to /var/spool/cron/root
rename: Is a directory
crontab: edits left in /tmp/crontab.EBVhq2
[root@localhost ~]# crontab -l
[root@localhost ~]# service crond restart
Redirecting to /bin/systemctl restart crond.service
[root@localhost ~]# crontab -l
发现没有添加进去
[root@localhost ~]# cd /var/spool/cron
[root@localhost cron]# ls
root
发现root是一个目录,继续查看发现他是空的
删除root目录,重新添加计划任务
[root@localhost ~]# crontab -e
crontab: installing new crontab
[root@localhost ~]# service crond restart
Redirecting to /bin/systemctl restart crond.service
[root@localhost ~]# crontab -l
* 2 * * * /home/crontask/mysqlBackup.sh
添加成功
另附网卡关于计划任务被清空的一个解释
先简单描述一下事情经过,有业务部门反映今日数据没有更新,查看日志发现使用crontab调度的每小时执行任务最后执行时间是昨天12点,查看crontab -l发现所有任务都没了。
排查过程:
1.通过此任务日志可以定位到清空操作在12点到13点之间。
2.通过history发现11点有个异常命令crontab - l(正常是crontab -l),我试了一下卡住了什么都不显示,也没有清空任务。
3.通过搜索引擎得知,使用远程连接工具使用crontab时,如果遇到网络波动等情况意外中止,就会清空所有任务。
4.执行crontab - l(正常是crontab -l),然后关闭Xshell,再查看发现确实被清空了。
真相只有一个:
某位同事首先使用了错误的命令导致卡住,而他没有管,去吃饭或者午休了,12点到13点之间电脑自动休眠或关机导致Xshell意外中止,进而导致Crontab所有计划任务被清空。
今天最小化安装完centos7.2后,发现在退出crontable 时无法保存,提示出下:
[root@localhost ~]# crontab -e
no crontab for root - using an empty one
crontab: installing new crontab
“/tmp/crontab.5wI27z”:1: bad minute
errors in crontab file, can’t install.
Do you want to retry the same edit?
Enter Y or N
解决方案:
echo export EDITOR=/usr/bin/vi >> ~/.bashrc
即可解决。