实际在大数据工作中,有的时候对于平台调度不熟的朋友,可能会选择使用crontab来调度
那么在crontab的调度中我们经常会碰到这样的一个问题:有的时候手动执行shell脚本任务时能成功,但是crontab调度执行时失败,详细排查发现手动的执行环境和crontab不一样。
在调度脚本上source当前账户的bash_profile配置,问题解决。
crontab执行环境在/etc/crontab,具体配置如下:
配置解释:前四行是用来配置crond任务运行的环境变量,第一行SHELL变量指定了系统要使用哪个shell,这里是bash,第二行PATH变量指定了系统执行命令的路径,第三行MAILTO变量指定了crond的任务执行信息将通过电子邮件发送给root用户,如果MAILTO变量的值为空,则表示不发送任务执行信息给用户,第四行的HOME变量指定了在执行命令或者脚本时使用的主目录。
手动执行的执行环境是当前账户的配置文件~/.bash_profile