我无法从crontab执行hadoop/hive命令。基本上,我已经在crontab中安排了一个perl脚本,其中包含在操作之前设置路径的系统命令。
我知道,从cron运行的env可能与常规shell不同。这就是我设置如下路径的原因。有没有别的办法让它发挥作用?
系统(“/home/ciber/.bash_profile“);
系统(“export java_home=/usr/lib/jvm/java-6-openjdk-amd64”);
系统(“export hadoop_install=~/poc/install/hadoop-1.0.3”);
系统(“export path=$path:$hadoop\u install/bin”);
系统(“export hadoop_home=$hadoop_install”);
系统(“export hive_install=~/poc/install/hive-0.9.0”);
系统(“导出路径=$path:$hive\u install/bin”);
@姚景国:你对此有什么想法吗?
2条答案
按热度按时间n3h0vuf21#
如果它是从终端而不是在crontab中正确执行的,那么在脚本中加载用户bash profile应该可以完成以下工作
或
通常
#!/bin/bash
包含在bash_profile
它也会有用户特定的配置。cngwdvgl2#
您可以在crontab中查看命令的绝对路径。另外,您可以简单地在crontab中声明env变量。例如foo=bar