Linux系统中提供了cron这个好东东来帮助系统或用户定时执行一些任务,十分方便,但是有时候明明单独执行脚本十分ok,加入到crontab里面却不运行了(可以通过crontab -e来添加,但是重启后貌似crontab里面又恢复成原来的了,或者直接修改/etc/crontabs/root,重启下cron或者crontab -e再q使其生效),网上的网友也是罗列出了各种原因,主要有以下几种:
1.执行脚本的权限问题
解决方法:chmod 777 xxx.sh ,注意777是赋予该脚本所有的权限,有风险
2.执行脚本或crontab里面写的路径最好要写成绝对路径,不然会导致bash找不到脚本
3.几乎同上,马大哈,执行脚本的名字和crontab里面写的不一致,好好反省一下 --
4.引用第三方库的问题,如果你脚本中用了第三方库,得好好看看是不是用的系统默认的,不是的话得设置一下(具体度娘或谷歌)
5.环境变量问题
解决方法:在crontab/root文件上面添加如下内容:
SHELL=/bin/bash
PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
MAILTO=root
HOME=/
附:https://crontab.guru/#*/20_*_*_*_*