配置完/var/spool/cron/其他非roo用户的定时任务没有运行
因为是在gbase用户下运行的脚本,所以先su - gbase
,再crontab -e
查看编辑当前用户的定时任务,也可以在/var/spool/cron/gbase
文件中查看编辑gbase用户的定时任务。
一开始使用8 * * * * /bin/bash /tmp/gcheck_running_sql.sh
,查不到脚本执行结果;
后续改为1 * * * * cd /tmp && ./gcheck_running_sql.sh >> /tmp/test.log 2>&1
想看下是否是执行有报错,/tmp/test.log
中也没有报错内容;
排查了:
- 路径是对的
- 可单独执行该脚本(gbase用户下)
- 无需配置其他环境变量
再后来找到,可在/var/log/cron
找到cron定时任务的执行日志,tail -f /var/log/cron
追踪看了下,
只执行了root用户下的定时任务;
ll /var/spool/cron/
看了下root和gbase两个文件的权限,gbase文件只能gbase用户读写,果然权限不够;
chmod -R 777 /var/log/cron/gbase
修改文件权限后,再日志中出现了执行结果:BAD FILE MODE
;
即文件格式有错误,修改为*/1 * * * * cd /tmp && ./gcheck_running_sql.sh >> /tmp/test.log 2>&1
后成功运行。