शेल स्क्रिप्ट का उपयोग करके SSH के माध्यम से दूरस्थ मशीन पर फ़ाइल कैसे हटाएं?


32

मैं एक शेल स्क्रिप्ट लिख रहा हूं जहां मुझे शेल स्क्रिप्ट के माध्यम से एक रिमोट मशीन पर एक फ़ाइल को हटाना है।

मैन्युअल रूप से प्रवाहित करें:

ssh username@domain.com

.. फिर डोमेन पर:

cd ./some/where
rm some_file.war

उस कार्य को कैसे पूरा करें?

जवाबों:


49

आप sshक्लाइंट को ssh कमांड में जोड़कर एक शेल शुरू करने के स्थान पर निष्पादित करने के लिए एक कमांड पारित कर सकते हैं ।

ssh username@domain.com 'rm /some/where/some_file.war'

cdजब तक आप पूर्ण पथ निर्दिष्ट करते हैं, तब तक आपको कुछ निकालने के लिए स्थान पर नहीं होना पड़ेगा , इसलिए एक और चरण जो आप छोड़ सकते हैं।

अगला सवाल प्रमाणीकरण का है। यदि आप बस चलाते हैं, तो आपको पासवर्ड के लिए संकेत मिलेगा। यदि आप इसे अंतःक्रियात्मक रूप से दर्ज नहीं करना चाहते हैं तो आपको publickey प्रमाणीकरण सेट करना चाहिए।


3
मैंने सोचा था कि -c cipher_spec था - नहीं? मुझे नहीं लगता था कि कमांड पास करने के लिए -सी आवश्यक थी।
स्कॉट सी विल्सन

त्वरित उत्तर के लिए आप सभी लोगों का धन्यवाद। यह उत्तर समाधान के अधिकांश हिस्सों से युक्त था, इसलिए @ कालेब को इस बार टिक मिला।
माइक्रो जूल 27'11

हम जोड़ने चाहिए -fकरने के लिए rmदूरदराज के कॉल को क्रियान्वित?
फेडिर RYKHTIK

1
@Fedir NO! यह सवाल विशेष रूप से फाइलों के बारे में नहीं निर्देशिकाओं के बारे में पूछता है और अगर उनके द्वारा फेंकी गई कोई चेतावनी या त्रुटियां हैं, rmतो उन्हें निश्चित रूप से कॉलर पर पारित किया जाना चाहिए जब तक कि उपयोगकर्ता नहीं जानता कि क्या उम्मीद की जाए और वे क्यों कुछ ओवरराइड कर रहे हैं। गलतियों और निराशाजनक डिबगिंग के बाद बाद में केवल उन विकल्पों का उपयोग करके बचा जा सकता है जो आपको दिए गए सेनेरिया में आवश्यक हैं।
कालेब

1
@Fedir -fविकल्प के लिए rmकम है --forceऔर एक प्रभाव है कि क्या त्रुटियों को गैर-मौजूदा फ़ाइलों या फर्जी तर्क के लिए फेंक दिया जाता है। आमतौर पर कमांड्स वैसे भी कम इंटरएक्टिव होने के लिए नॉन इंटरेक्टिव गोले डिफ़ॉल्ट रूप से चलते हैं, लेकिन यह आप नहीं है या आप एक इंटरेक्टिव प्रॉम्प्ट प्राप्त कर रहे हैं जो सीधे उस से संबंधित सेटिंग्स को ठीक करने के लिए होगा। आप इस स्क्रिप्ट रहे हैं, तो आपको लगता है कि इस मुद्दे को वैसे भी नहीं होना चाहिए, और आप का उपयोग करना चाहिए अगर आप एक इंटरैक्टिव खोल (जहां आपत्तिजनक लिखने की त्रुटियों की संभावना है) में हैं -Iपर --interactive=neverअपने वांछित व्यवहार सेट करने के लिए।
कालेब


2

Ssh कमांड में कमांड कमांड (कमांड में अंतिम पैरामीटर) होता है जिसे आप रिमोट कमांड चलाने के लिए उपयोग कर सकते हैं।


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.