टेलनेट और रन कमांड के लिए शेल स्क्रिप्ट
मुद्दा
मैंने एक शेल स्क्रिप्ट बनाई है जो स्वचालित रूप से टेलनेट कर सकती है और दूसरी मशीन पर कमांड चला सकती है और उपयोगकर्ता से किसी भी बातचीत के बिना टेलनेट सत्र समाप्त कर सकती है; उपयोगकर्ता केवल स्क्रिप्ट चलाता है या इसे किसी अन्य स्क्रिप्ट से कहता है।
लेकिन आपको अपने यूनिक्स सिस्टम पर EXPECT और TCL पैकेज इंस्टॉल करने की आवश्यकता है।
स्क्रिप्ट में निम्नलिखित निर्देश हैं:
#! / usr / स्थानीय / बिन / उम्मीद -f #### / usr / स्थानीय / बिन / उम्मीद है कि निर्देशिका स्थापित की गई थी
log_user 0 #### इस कमांड का उपयोग स्क्रिप्ट और अन्य मशीन के बीच बातचीत को छिपाने के लिए किया जाता है
सेट पता [लिंडेक्स $ argv 0] ### स्क्रिप्ट को $ पते पर कॉल करते समय पहले पारित पैरामीटर असाइन करें
सेट उपयोगकर्ता नाम [lindex $ argv 1] ### स्क्रिप्ट को $ उपयोगकर्ता नाम पर कॉल करते समय 2 के पारित पैरामीटर असाइन करें
सेट पासवर्ड [lindex $ argv 2] ### स्क्रिप्ट को $ पासवर्ड पर कॉल करते हुए 3 पास किए गए पैरामीटर को असाइन करें
स्पॉन टेलनेट $ {एड्रेस} ### आईपी = $ एड्रेस के साथ टेलनेट सेशन को मशीन से शुरू करें
### मशीन से बातचीत शुरू करें:
उम्मीद है कि "लॉगिन:"
भेजें - "$ {उपयोगकर्ता नाम} \ r"
उम्मीद है कि "पासवर्ड:"
भेजें - "$ {पासवर्ड} \ r"
"$" की उम्मीद करें
भेजें - "#! / bin / ksh \ r" ### शेल का उपयोग करने की घोषणा करते हैं (वैकल्पिक)
"$" की उम्मीद करें
भेजें - "### उसे निष्पादित करने के लिए अपनी कोई भी कमांड टाइप करें"
"$" की उम्मीद करें
भेजें - "exit \ r" ### टेलनेट सत्र समाप्त करें और स्क्रिप्ट से बाहर निकलें
इस स्क्रिप्ट को निष्पादित करने के लिए, मैंने टाइप किया:
$ उम्मीद_स्क्रिप्ट "पता" "उपयोगकर्ता नाम" "पासवर्ड" ### स्क्रिप्ट का नाम "उम्मीद_स्क्रिप्ट" है
लेकिन इससे पहले कि आप अपेक्षित स्क्रिप्ट को कॉल करें, आपको उम्मीद की गई स्क्रिप्ट को निष्पादन योग्य बनाना चाहिए, और यह टाइप करके किया जा सकता है:
$ chmod + x expect_script
उपाय
इसे इस्तेमाल करे:
#। ltr \ n "? (यदि आप \ n नहीं दे रहे हैं तो यह आपकी प्रतिक्रिया की प्रतीक्षा करेगा या आपको मैन्युअल रूप से दर्ज करना होगा)। बातचीत
"उम्मीद" कमांड को कैसे निष्पादित करें -f
पूर्व: उम्मीद -f
ध्यान दें
मंच पर इस टिप के लिए ज़ूजू का धन्यवाद।