环境ubuntu18
crontab 是运维过程中常用的定时任务执行工具,不过这次是通过ansible脚本写入的/var/spool/cron/crontabs/root,在本地测试的时候是没有问题的。其他环境发现这个脚本没有执行
cron是运行的,但是我发现在ansible没有写入定时任务的时候,/var/spool/cron/crontabs/root这个文件是不存在的,crontab -e编辑的时候是需要选择编辑器的。所以初步判断是权限问题。
chmod +777 /var/spool/cron/crontabs/root
加权限,重启,发现还是没有执行。
参考:https://www.cnblogs.com/andy0816/p/13810770.html
修改脚本中sh指向问题依旧没有解决。
偶然发现使用crontab -e 编辑完成的/var/spool/cron/crontabs/root会执行,所以想到是通过echo方式写入定时任务的文件没有被cron识别。
参考这篇博客解决问题:
https://blog.csdn.net/jamex/article/details/103995436
通过crontab重新加载文件,最后定时任务成功执行。
crontab /var/spool/cron/crontabs/root