मैं रिमोट मशीन पर अनुक्रम में कई कमांड निष्पादित करना चाहता हूं, और बाद के कुछ आदेश पहले के लोगों पर निर्भर करते हैं। , क्या मैं वास्तव में क्या करना चाहते हैं टुकड़ा एक साथ एक रास्ता है पृष्ठभूमि जानकारी का एक सा के लिएक्या दूरस्थ ssh कमांड में चर का उपयोग करना संभव है?
ssh my_server "echo this is my_server; abc=2;"
this is my_server
abc=2: Command not found.
ssh my_server "echo this is my_server; abc=2; echo abc is $abc"
abc: undefined variable
और एक जावा आवेदन शुरू: सरल संभव उदाहरण में मैं इस मिल
ssh my_server 'nohup sh -c "((echo this is my_server; jabref_exe=`which jabref`; jabref_dir=`dirname $jabref_exe`; java -jar $jabref_dir/../jabref.jar` $1 &/dev/null) &)"' &
jabref_dir: Undefined variable.
इस तरह, जब भी jabref सर्वर पर किसी नए संस्करण में अपडेट हो जाता है, तो मुझे जार फ़ाइल के पथ को मैन्युअल रूप से अपडेट नहीं करना पड़ेगा। Jabref निष्पादन योग्य तर्क नहीं लेता है, लेकिन इसे java -jar
के साथ लॉन्च करता है, यही कारण है कि मुझे पथ को थोड़ा सा जोड़ना है।
फिलहाल मैं एक अलग स्क्रिप्ट फ़ाइल में कमांड की सूची है और फोन
ssh my_server 'nohup sh -c "((my_script.sh &/dev/null) &)"' &
जो काम करता है, लेकिन सब कुछ एक साथ है करने के लिए के बाद से ssh कॉल एक स्क्रिप्ट फ़ाइल के अंदर पहले से ही है यह अच्छा होगा।
धन्यवाद, जो मुझे सही रास्ते पर रखता है। उलटा कॉमा या '\ $' द्वारा विस्तार को रोकना महत्वपूर्ण था। यह पता चला कि सर्वर पर डिफ़ॉल्ट खोल tcsh था, और यह एक और कारण था 'abc = 2' काम नहीं किया। – craq
ग्रेट उत्तर। मैं जेएसकिंस का उपयोग एसएसएच एजेंट प्लगइन के साथ कर रहा हूं और यह एक आकर्षण की तरह काम करता है। –