linux定时器里的某一条命令执行不了,Linux下shell脚本手动可以执行,放入定时器执行不了

Linux下shell脚本手动可以执行,放入定时器执行不了,linux定时器里的某一条命令执行不了

我的问题

#!/bin/bash
fname=`date +%Y-%m-%d`.txt
echo $fname
#下面两条命令执行不了!!!
#hive -e "load data local inpath '/root/CharacterLogin/$fname' into table default.characterLogin;"
hdfs dfs -put /root/CharacterLogin/$fname /user/hive/warehouse/characterlogin

解决方法:
shell 脚本 加入

source /etc/profile

原因
因为shell默认的环境是linux自带环境,不含有hdfs,hive,java等环境。

在crontab文件中定义多个调度任务时,需要特别注意的一个问题就是环境变量的设置,因为我们手动执行某个脚本时,是在当前shell环境下进行的,程序能找到环境变量;而系统自动执行任务调度时,除了默认的环境,是不会加载任何其他环境变量的。因此就需要在crontab文件中指定任务运行所需的所有环境变量。

你可能感兴趣的:(linux,#shell)