Ssh से बाहर निकलने के बाद स्वचालित रूप से कमांड कैसे चलाएं


10

मैं sshकनेक्शन से बाहर निकलने के बाद स्थानीय टर्मिनल पर स्वचालित रूप से एक कमांड कैसे चला सकता हूं ? क्या कोई हुक या घटना है जिसे इसके लिए नियंत्रित किया जा सकता है?

जवाबों:


13

उत्तोलन aliasया बेहतर कार्य।

उदाहरण के लिए:

ssh () { command ssh "$@"; echo foobar; }

अब, आप चला सकते हैं:

ssh mysite

आपके sshसत्र से बाहर निकलने के बाद , echo foobarचलाया जाएगा।

echo foobarवास्तविक कमांड के साथ बदलें जिसे आपको चलाने की आवश्यकता है, और निश्चित रूप से आप चाहें तो कई कमांडों का सामना कर सकते हैं।

फ़ंक्शन की परिभाषा को स्थायी बनाने के लिए, इसे अपने में रखें ~/.bashrc


यह भी ध्यान दें कि, sshजब आप स्पष्ट रूप से बाहरी का उपयोग करना चाहते हैं, तो इस फ़ंक्शन का नाम हमेशा वांछित नहीं हो सकता है ssh। उस स्थिति में, आप sshबाह्य sshबाइनरी प्राप्त करने के लिए फ़ंक्शन को छोड़ने के लिए निम्न में से किसी एक का उपयोग कर सकते हैं :

command ssh mysite

या फ़ंक्शन को किसी अन्य चीज़ के लिए नाम बदलें sshfunc:

sshfunc () { ssh "$@"; echo foobar; }

4
नोट: मैं फ़ंक्शन को "ssh" के अलावा किसी अन्य चीज़ में नाम बदलने की सलाह देता हूं, इसलिए आप ssh रखना इसका मूल अर्थ है ... शायद: ssh2? या sshcmd (अन्यथा आप चीजों को करते समय इसके दुष्प्रभाव को भूल सकते हैं ssh user@host 'cd /somewhere/ && tar cf - | gzip -c -' > local_backup_of_somewhere.tgz: यह गलत होगा क्योंकि इसमें अंत में "फोब्बर" होगा ...)
ओलिवियर ड्यूलैक

@OlivierDulac अच्छा बिंदु, संपादित।
heemayl

\ ssh 'ssh' और "ssh" केवल एक उपनाम से बच जाता है, कमांड ssh कमांड चलाएगा (दोनों उपनाम और फ़ंक्शन से बचकर)।
ओलिवियर दुलक

@OlivierDulac पता नहीं था, निश्चित है।
heemayl

यह बैश में ऐसा है, शायद अन्य गोले के साथ भिन्न हो सकता है ... लेकिन अब, मुझे आपका जवाब उन परिवर्धन के साथ पसंद है, आपको मेरा +1 ^ ^
ओलिवियर ड्यूलैक
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.