我无法在其他用户下运行crontab作业(例如sudo-u someuser crontab-e)
它在我的用户配置文件下运行得非常好。
我知道是什么问题,但找不到解决的办法。
问题是,当我为其他用户配置这个crontab作业时,crontab无法找到java,因此即使是简单的java版本也无法工作。
下面是我的剧本。

#!/bin/bash

export JAVA_HOME=/usr/jdk/jdk1.6.0_31
export PATH=/usr/local/bin:/bin:/usr/bin:/opt/dell/srvadmin/bin:/home/VishalS/bin

echo "JAVA_HOME is: " $JAVA_HOME >>  log.out
echo "PATH is: " $PATH >>  log.out

which java >> log.out

/usr/bin/java -version >> log.out
/usr/jdk/jdk1.6.0_31/bin/java -version >> log.out

以上脚本输出:
JAVA_HOME is:  /usr/jdk/jdk1.6.0_31
PATH is:  /usr/local/bin:/bin:/usr/bin:/opt/dell/srvadmin/bin:/home/VishalS/bin
/usr/bin/java

很明显,下面这几行行不通。
/usr/bin/java -version >> log.out
/usr/jdk/jdk1.6.0_31/bin/java -version >> log.out

有人能帮我一下吗?我不明白为什么即使在设置了jdk路径之后crontab也不执行java-version?

最佳答案

尝试直接在其他用户crontab中设置路径。请参阅“man 5 crontab”。

09-04 03:39
查看更多