Linux下shell脚本手动可以执行,放入定时器执行不了,linux定时器里的某一条命令执行不了
我的问题
fname=`date
+%Y-
%m-
%d`
.txt
echo $fname
hdfs dfs
-put
/root
/CharacterLogin
/$fname /user
/hive
/warehouse
/characterlogin
解决方法: shell 脚本 加入
source
/etc
/profile
原因 因为shell默认的环境是linux自带环境,不含有hdfs,hive,java等环境。
在crontab文件中定义多个调度任务时,需要特别注意的一个问题就是环境变量的设置,因为我们手动执行某个脚本时,是在当前shell环境下进行的,程序能找到环境变量;而系统自动执行任务调度时,除了默认的环境,是不会加载任何其他环境变量的。因此就需要在crontab文件中指定任务运行所需的所有环境变量。