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

mac2024-08-13  59

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文件中指定任务运行所需的所有环境变量。

最新回复(0)