ssh

2009-06-25 9 views
38

का उपयोग कर दूरस्थ रूप से एक स्क्रिप्ट फ़ाइल को चलाने के लिए कैसे मैं एक स्क्रिप्ट दूरस्थ रूप से चलाने के लिए चाहता हूँ। लेकिन प्रणाली पथ को पहचान नहीं पाती है। यह शिकायत करता है कि "ऐसी कोई फ़ाइल या निर्देशिका नहीं है" क्या मैं इसका उपयोग कर रहा हूं?ssh

ssh [email protected] `./test/foo.sh` 

उत्तर

40

बैकिक्स स्थानीय शेल पर कमांड चलाएंगे और परिणाम कमांड लाइन पर रखेंगे। आप जो कह रहे हैं वह 'execute ./test/foo.sh है और फिर आउटपुट को पास करें जैसे कि मैं इसे कमांडलाइन पर टाइप करता हूं'।

निम्न आदेश आज़माएं, और सुनिश्चित करें कि दूरस्थ कंप्यूटर पर आपके होम निर्देशिका से पथ आपकी स्क्रिप्ट पर है।

ssh [email protected] './test/foo.sh' 

इसके अलावा, स्क्रिप्ट दूरस्थ कंप्यूटर पर होना चाहिए। यह क्या करता है अनिवार्य रूप से आपके कंप्यूटर के रूप में सूचीबद्ध कमांड के साथ रिमोट कंप्यूटर में लॉग इन करता है। आप इस तरह के रिमोट कंप्यूटर पर स्थानीय स्क्रिप्ट नहीं चला सकते हैं (जब तक कि कुछ मजेदार चाल जो मुझे नहीं पता)।

+12

यहां मजेदार चाल है, http://wpkg.org/Executing_local_programs_and_scripts_remotely से ली गई: बिल्ली/usr/bin/program | एसएसएच उपयोगकर्ता @ सर्वर "बिल्ली>/टीएमपी/प्रोग्राम; chmod 755/tmp/प्रोग्राम;/tmp/program --arguments" –

+1

हाँ, मुझे लगता है कि ऐसा कुछ संभव था, लेकिन आप वास्तव में स्थानीय प्रोग्राम निष्पादित नहीं कर रहे हैं, आप बस इसे एक अनावश्यक जटिल तरीके से कॉपी कर रहे हैं। यदि आप ऐसा करने जा रहे हैं, तो आप केवल scp /path/to/script.sh उपयोगकर्ता @ सर्वर कर सकते हैं: && ssh user @ server ./script.sh मुझे लगता है कि आपको इस तरह से दो बार पासवर्ड टाइप करना होगा , तो आह। – psanf

+0

@MarkRushakoff, इसके लिए धन्यवाद। वास्तव में मुझे क्या चाहिए! – Dan

1

मुझे नहीं पता कि यह इसे चलाने के लिए संभव है या नहीं।

मैं आमतौर पर इसे पहले एसपीपी के साथ कॉपी करता हूं और फिर इसे चलाने के लिए लॉग इन करता हूं।

scp foo.sh [email protected]:~ 
ssh [email protected] 
./foo.sh 
121

आप क्या कर सकते हैं।

ssh [email protected] 'bash -s' < /path/script.sh 
+1

धन्यवाद - MediaTemple पर मेरे लिए, इस तरह की स्ट्रिंग को अलग करना 'bash -s' तर्क सहित मुझे आवश्यक था। धन्यवाद! – itsricky

+2

संदर्भ के लिए पर्ल में यह कैसे करना है: http://stackoverflow.com/questions/18236988/execute-perl-script-on-remote-server-from-local-machine – arun

+2

ग्रेट सॉल्यूशन! नोड के लिए 'ssh2' मॉड्यूल के माध्यम से यह वही समाधान देखें: https: //gist.github।com/mscdex/7c9f8358b8331ea567b7 – knownasilya

0

"कीव" उपयोगकर्ता द्वारा स्क्रिप्ट निष्पादन करें और फिर हटाने यह आदेश के माध्यम से चलाने की कोशिश sh [email protected] /test/foo.sh

0

मैं इस आदेश का उपयोग कर एक खोल स्क्रिप्ट आह्वान करने में सक्षम था:

ssh ${serverhost} "./sh/checkScript.ksh" 

पाठ्यक्रम checkScript.ksh$HOME/sh निर्देशिका में मौजूद होना चाहिए।

0

आपको लगता है कि स्क्रिप्ट सहेजने के बिना दूर से स्थानीय स्क्रिप्ट को निष्पादित करना चाहते हैं दूर से आप इस तरह यह कर सकते हैं:

मेरे लिए एक आकर्षण की तरह
cat local_script.sh | ssh [email protected] 'bash -' 

काम करता है।

मैं विंडोज़ से लिनक्स तक भी करता हूं क्योंकि आपने अपने विंडोज कंप्यूटर पर MSys इंस्टॉल किया है।