Ответ здесь (https://stackoverflow.com/a/2732991/4752883) отлично работает, если вы пытаетесь запустить сценарий на удаленной машине с Linux, используя plink
или ssh
. Это будет работать, если в сценарии есть несколько строк на linux
.
** Однако, если вы пытаетесь запустить пакетный сценарий, расположенный на локальном linux/windows
компьютере, а ваш удаленный компьютер - Windows
, и он состоит из нескольких строк с использованием **
plink root@MachineB -m local_script.bat
не будет работать.
Будет выполнена только первая строка скрипта. Вероятно, это ограничение plink
.
Решение 1:
Чтобы запустить многострочный пакетный скрипт (особенно если он относительно простой, состоящий из нескольких строк):
Если ваш исходный пакетный сценарий выглядит следующим образом
cd C:\Users\ipython_user\Desktop
python filename.py
вы можете объединить строки вместе с помощью разделителя «&&» в вашем local_script.bat
файле следующим образом: https://stackoverflow.com/a/8055390/4752883:
cd C:\Users\ipython_user\Desktop && python filename.py
После этого изменения вы можете запустить сценарий, как указано здесь @ JasonR.Coombs: https://stackoverflow.com/a/2732991/4752883 с:
`plink root@MachineB -m local_script.bat`
Решение 2:
Если ваш пакетный сценарий относительно сложен, может быть лучше использовать пакетный сценарий, который инкапсулирует команду plink, а также следующее, как указано здесь @Martin https://stackoverflow.com/a/32196999/4752883:
rem Open tunnel in the background
start plink.exe -ssh [username]@[hostname] -L 3307:127.0.0.1:3306 -i "[SSH
key]" -N
rem Wait a second to let Plink establish the tunnel
timeout /t 1
rem Run the task using the tunnel
"C:\Program Files\R\R-3.2.1\bin\x64\R.exe" CMD BATCH qidash.R
rem Kill the tunnel
taskkill /im plink.exe
person
alpha_989
schedule
21.04.2018