Как запустить командный файл с помощью команды plink, которая должна запускать файл сценария - PullRequest
0 голосов
/ 26 января 2019

Я пытаюсь создать файл .bat, который создаст файл журнала, содержащий список файлов на удаленном сервере Unix.Он работает нормально, когда я запускаю его вручную через командную строку.Но он не работает, если я запускаю его через «Task Scheduler».

Файл log_maker.bat содержит следующие строки кода:

PATH=%PATH%;C:\Program Files
(plink.exe -ssh username@IP -pw password -m shell_script_to_list_files.sh)>log_file.txt

Дополнительная информация:

C:\Program Files содержит файл plink.exe

D:\path1 содержит файл log_maker.bat и файл shell_script_to_list_files.sh.

1 Ответ

0 голосов
/ 26 января 2019
  1. Чтобы увидеть любое сообщение об ошибке, которое выдает Plink, перенаправьте также вывод ошибки:

    (plink.exe -ssh username@IP -pw password -m shell_script_to_list_files.sh) > log_file.txt 2>&1
    
  2. Хотя у вас, скорее всего, проблема с хостомключ.Первое подключение SSH к серверу требует проверки ключа хоста.Если вы запускаете задачу планировщика с использованием служебной учетной записи, он не знает ключ хоста вашего сервера (который вы, вероятно, ранее проверяли в своей интерактивной учетной записи, поэтому сценарий запускается, когда вы запускаете его вручную под своей интерактивной учетной записью).Вы должны добавить отпечаток ключа хоста сервера в ваш скрипт, используя -hostkey switch :

    plink.exe -ssh username@IP -pw password -hostkey aa:bb:cc... ...
    

См. Также ответ @Mofiна
Что необходимо учитывать при выполнении командного файла как запланированного задания?

...