编写博客原因:碰到任务手动执行成功,crontab调度执行失败,详细排查发现手动的执行环境和crontab不一样。
在调度脚本上source当前账户的bash_profile配置,问题解决。
crontab执行环境在/etc/crontab,具体配置如下:
配置解释:前四行是用来配置crond任务运行的环境变量,第一行SHELL变量指定了系统要使用哪个shell,这里是bash,第二行PATH变量指定了系统执行命令的路径,第三行MAILTO变量指定了crond的任务执行信息将通过电子邮件发送给root用户,如果MAILTO变量的值为空,则表示不发送任务执行信息给用户,第四行的HOME变量指定了在执行命令或者脚本时使用的主目录。
手动执行的执行环境是当前账户的配置文件~/.bash_profile