今天在排查监crontab任务未生效问题时总结收获如下
不同的账户有不同的crontab系统如果在编辑crontab的时候遇到以下报错
[operadmin@bd-opsbi01 ~]$ crontab -e
/bin/sh: /usr/bin/vi: Permission denied
crontab: "/usr/bin/vi" exited with status 126
那么你可以通过root用户到/var/spool/cron/目录下
[root@bd-opsbi01 cron]# ll total 16 -rw------- 1 admin grpcaocao 196 2019-07-30 16:53:21 admin -rw------- 1 log grpcaocao 72 2018-11-21 14:33:12 log -rw------- 1 operadmin operadmin 535 2020-05-08 10:54:11 operadmin -rw------- 1 root root 293 2020-05-08 10:14:54 root
这个目录下的不同用户名字对应着不同的crontab任务,要修改可以在这里边修改
这个目录/var/log/下可以找到cron的日志
排查crob任务未运行的原因步骤总结
sudo service crond status ##查看cron的运行状态(我今天就是这个问题)
如果是failed的状态的话,启动一下
sudo service crond start
如果是running的状态的话 ,那就重新加载一下文件
service crond reload
如果还是不运行,那应该就是自己的脚本的问题
首先要看自己的脚本路径是否是全路径(这个是必须的),其次是命令路径是否补全(如果不补全,可以source ~/.bash_profile;如下截图)
最后自己的脚本都检查完了没有问题了,那么最后一招,万能大法重启cron吧
service crond restart
如果这里没有你需要的,可以看一下这篇博客