问题原因:
定时任务执行xxx.sh脚本文件不能正常执行 - * * * * * /home/test/test.sh
复制代码
问题排查: 1、确认crond是否有问题,systemctl status crond查看一下crond服务的运行情况是否正常(服务正常) 2、确认crond是否能正常运行,测试一个任务,一分钟后查看/home/test目录下是否生成test.log(生成文件) - crontab -e
- * * * * * echo test >/home/test/test.log
复制代码3、文件生成了,说明crond能正常执行定时任务,本地执行tesh.sh是能正常运行的,文件权限也是正常的,那就可能是语句有问题了。
ps:百度了一波,在脚本内增加 source /etc/profile , 试了试,毛用没得。。。
4、查找crontab -e的配置文件路径,查看/var/spool/crond/test文件配置,内容与crontab -l查看一致。这时候就发现问题了,普通用户test无访问/var/spool/crond目录的权限,命令执行肯定得有一个位置,是否因为执行目录无权限导致失败的。。修改一下语句,定位到脚本目录下执行脚本。 - crond -e
- * * * * * cd /home/test/ && /bin/sh /home/test/test.sh
复制代码
一分钟后。。。执行成功了。。。 |