经常会遇到这样情况,一个shell或者python脚本在命令行执行起来没有问题,但是在crontab里面配置一个job时有时会遇到不能执行的问题; 特别是在使用到非系统默认组件、命令, 如hadoop命令
造成这种情况的原因是crontab执行的context与bash shell不一样,所以shell里设置的环境变量并不能被crontab继承;解决的方法是自己单独写一个sh文件,以下面开始:
#!/bin/bash
里面导入相关的环境变量, 如PATH PYTHONPATH 等等
简单的比较方式是在crontab里面打印处环境变量比较一下,如:
00 12 * * * set >> p.log