crontab 解决环境变量不一致问题及注意事项
问题描述
今天写了一个hive cli合并小文件的shell,每天定时执行 但是确发现我手动执行可以,crontab执行就会报错127 所以应该果断的怀疑是环境变量的问题
问题解决
在脚本的第一行加入 source /etc/profile
其他
crontab 使用需要注意的事项
-
一定要注意环境变量,因为crontab 不知道你所执行的命令所在的位置,最好在脚本的第一行加上source /etc/profile ,自己写的shell脚本要写绝对路径 手动执行可以,但是自动执行报错,一定是环境变量的问题 新创建的crontab 任务最好等2分钟再执行 crontab 的日志最好做一个定向的输出,否则会造成大量的日志堆积 crontab 通常配置 >/dev/null 2>$1 来清除输出 > 表示重定向到哪里也就是输出到哪里 /dev/null linux的无底洞,输出到这里就相当于清空了,不占空间 1 表示标准输出 2 表示标准错误输出 & 表示等同于 >/dev/null 表示标准输出到空设备文件 2>$1 表示标准错误输出和前面一样,也输出到空设备文件