2010-11-24 1 views
0

Просьба помочь мне в этом сразу ...Как запустить команду java -jar из сценария Shell с удаленного сервера?

Проблема с командой JAVA в shellscript ..

У меня есть сценарий Cachereload.sh в одном сервере, который имеет следующую команду:

java -jar SingMgmnt.jar $4 $2 $3 sixdee sixdee $5 

Это работает очень хорошо, когда я запускаю его с того же сервера.

Но я хочу, чтобы запустить этот скрипт с другого сервера, и я сделал это, как

ssh [email protected] 'sh -c "./Cachereload.sh"' 

который будет запрашивать пароль, и после этого он выполняет сценарий. Но тогда я получаю сообщение об ошибке,

./CacheReload.sh: line 4: java: command not found 

Но только команда Java не работает я думаю .. bcoz PWD, LS и даже тузда команды работает отлично от самого удаленного сервера ..

Пожалуйста, помогите меня ..

Поблагодарив вас все Akhil

+1

Вы пытались выполнить поиск в googling «linux java: command not found» и посмотрели тысячи ответов на ошибку, которую вы видите? – 2010-11-24 15:43:58

+1

Может быть, вопрос serverfault? – marcosbeirigo 2010-11-24 15:44:57

ответ

2

Это будет связано с вашей SSH среде, отличной от среды интерактивной оболочки. Например, если вы используете bash, ваш файл .bashrc будет доступен только для интерактивных оболочек. Поэтому, если вы задаете переменную PATH в вашем файле .bashrc, она будет действовать только для интерактивных оболочек.

Простым обходным путем является ссылка на абсолютный путь двоичного кода java в вашем сценарии Cachereload.sh.

+0

Спасибо, очень много Адамски ... Но может ли ты мне позвонить, как обратиться к абсолютному пути двоичного файла java в файле sh? На самом деле я новичок в сценариях оболочки. А также есть ли другой способ установить переменную PATH, чтобы даже среда ssh могла видеть путь JAVA? Если я могу быть успешным в этой команде java для вызова с удаленного сервера, то, что я получаю через dat wil b, отлично, пожалуйста, помогите мне .. Спасибо в Advance .. – AKHIL 2010-11-24 19:50:22

0

Что происходит, когда пользователь oracle запускает эту команду на сервере, а не через одну строку ssh.

Его вполне вероятно, что java не находится в PATH для этого пользователя (возможно, вообще не устанавливается).