यहाँ उत्तर ( https://stackoverflow.com/a/2732991/4752883 ) बहुत अच्छा काम करता है अगर आप एक रिमोट लाइनक्स मशीन का उपयोग करके 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
इस परिवर्तन के बाद, आप @ जेसन.चूम द्वारा यहाँ बताई गई स्क्रिप्ट चला सकते हैं: https://stackoverflow.com/a/2732991/4752883
समाधान 2:
यदि आपकी बैच स्क्रिप्ट अपेक्षाकृत जटिल है, तो बैच स्क्रिप्ट का उपयोग करना बेहतर हो सकता है, जो पलक कमांड को इनकैप्सुलेट करता है और साथ ही साथ यहां बताया गया है @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