Не можете запустить замазку с удаленной командой? - PullRequest
0 голосов
/ 10 мая 2018

Я пытаюсь запустить putty через командную строку таким образом, чтобы она запускала команду на сервере (я хочу создать ярлык Windows, чтобы привязать файл журнала)

Пока что яесть пакетный файл, содержащий это

"C:\Program Files (x86)\PuTTY\putty.exe" -ssh -t -pw -m tail_catalina_out -load "myprofile"

И на моем сервере у меня есть файл в корневом каталоге с именем tail_catalina_out со следующим содержимым.

tail -f /opt/tomcat/logs/catalina.out

Запускается замазка и мой сеанс запускается успешно, но никакая команда не выполняется, несмотря на это?Я неправильно понимаю, как это работает?

1 Ответ

0 голосов
/ 10 мая 2018
  1. Вам не нужно -ssh с -load profile (и если вы используете нестандартный порт, такой как мой тест, он вообще не работает);на самом деле вам не нужно это с [user@]host, потому что это значение по умолчанию

  2. -pw -m tail_catalina_out использует -m в качестве вашего пароля (который, я надеюсь, неверен, поэтому вы должны быть перепровереныесли не установлен publickey auth) и игнорирует tail_catalina_out

  3. файл для -m должен быть local , т.е. на компьютере PuTTY, а не на сервере (хотя команды в нем будут отправлены и должны быть действительными на сервере)

Таким образом: "\path\to\putty" -t -m localcmdfile -load profile

Вы также можете использовать plink, которыйзапускается в консоли и принимает либо -m localfile , либо фактическую удаленную команду в командной строке после последней опции (например, клиент OpenSSH ssh):

 "\path\to\plink" -t -load profile tail -f remotefile

Как обычно, вы можете опустить кавычки вокруг пути, если он не содержит пробелов.Лично я использую \progra~2 вместо того, чтобы беспокоиться о "\program files (x86)", но это только я, и это может зависеть от чистой установки (вместо обновления).

...