Odpowiedź tutaj ( https://stackoverflow.com/a/2732991/4752883 ) działa świetnie, jeśli próbujesz uruchomić skrypt na zdalnym komputerze z systemem Linux za pomocą plink
lub ssh
. Będzie działać, jeśli skrypt ma wiele wierszy linux
.
** Jednak jeśli próbujesz uruchomić skrypt wsadowy znajdujący się na linux/windows
komputerze lokalnym , a Twój komputer zdalny jest w stanie Windows
, i składa się z wielu wierszy przy użyciu **
plink root@MachineB -m local_script.bat
to nie zadziała.
Zostanie wykonana tylko pierwsza linia skryptu. Jest to prawdopodobnie ograniczenie plink
.
Rozwiązanie 1:
Aby uruchomić wielowierszowy skrypt wsadowy (zwłaszcza jeśli jest stosunkowo prosty i składa się z kilku wierszy):
Jeśli oryginalny skrypt partii jest następujący
cd C:\Users\ipython_user\Desktop
python filename.py
możesz łączyć linie razem za pomocą separatora „&&” w następujący sposób w swoim
local_script.bat
pliku w następujący sposób
https://stackoverflow.com/a/8055390/4752883 :
cd C:\Users\ipython_user\Desktop && python filename.py
Po tej zmianie możesz uruchomić skrypt, jak wskazano tutaj przez @ JasonR.Coombs: https://stackoverflow.com/a/2732991/4752883
Rozwiązanie 2:
Jeśli skrypt wsadowy jest stosunkowo skomplikowany, może być lepiej użyć skryptu wsadowego, który zawiera polecenie plink, a także następujące czynności, jak wskazano tutaj @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