شل النصي ل telnet وتشغيل الأوامر

تم تصميم البرنامج النصي shell الذي يحتوي على ميزات telnet التلقائية وتنفيذ أوامر التشغيل للأجهزة الأخرى ، وبالتالي إنهاء جلسة telnet دون أي نوع من التفاعل من المستخدم. يحتاج المستخدم فقط لتشغيل البرنامج النصي shell أو استدعاء الدالة من برنامج نصي آخر. هذا قابل للتطبيق على نطاق واسع لنظام Linux ، ولكن بالنسبة لنظام UNIX ، يحتاج المرء إلى التثبيت المسبق لحزم TCL و INSTALL. يوجد دليل منفصل لتثبيت الأمر Expect. يتم استخدام أوامر محددة لإخفاء المحادثة بين الجهاز الآخر والبرنامج النصي shell في Linux. يتم تعيين العنوان واسم المستخدم وكلمة المرور أثناء الاتصال النصي. عنوان IP مطلوب للإعلان عن shell ، وبعد ذلك يتم إرسال الأمر run ليتم تنفيذه مع وضع علامة على نهاية جلسة telnet.

القضية

لقد قمت بإعداد برنامج نصي يمكنه تشغيل telnet تلقائيًا وتشغيل الأوامر على الجهاز الآخر وإنهاء جلسة telnet دون أي تدخل من المستخدم ؛ يقوم المستخدم فقط بتشغيل البرنامج النصي أو الاتصال به من برنامج نصي آخر.

ولكن عليك تثبيت حزم EXPECT و TCL على نظام Unix الخاص بك.

يحتوي البرنامج النصي على التعليمات التالية:

#! / usr / local / bin / expect -f #### / usr / local / bin / expect هو الدليل حيث تم تثبيت توقع

log_user 0 #### يستخدم هذا الأمر لإخفاء المحادثة بين البرنامج النصي والجهاز الآخر

set address [lindex $ argv 0] ### قم بتعيين المعلمة الأولى التي تم تمريرها أثناء استدعاء البرنامج النصي إلى عنوان $

قم بتعيين اسم المستخدم [lindex $ argv 1] ### قم بتعيين المعلمة الثانية التي تم تمريرها أثناء استدعاء البرنامج النصي إلى اسم المستخدم $

set password [lindex $ argv 2] ​​### قم بتعيين المعلمة الثالثة التي تم تمريرها أثناء استدعاء البرنامج النصي إلى $ password

spawn telnet $ {address} ### بدء جلسة telnet إلى الجهاز باستخدام عنوان IP = $

### بدء محادثة مع الجهاز:

نتوقع "تسجيل الدخول:"

إرسال - "$ {اسم المستخدم} \ r"

نتوقع "كلمة المرور:"

إرسال - "$ {password} \ r"

توقع "$"

send - "#! / bin / ksh \ r" ### تعلن عن استخدام القشرة (اختياري)

توقع "$"

إرسال - "### اكتب لها أي أمر تريد تنفيذه"

توقع "$"

send - "exit \ r" ### إنهاء جلسة telnet والخروج من البرنامج النصي

لتنفيذ هذا البرنامج النصي ، كتبت:

$ expect_script "address" "username" "password" ### اسم البرنامج النصي هو "expect_script"

ولكن قبل أن تقوم بالاتصال بالبرنامج النصي المتوقع ، يجب أن تجعل البرنامج النصي القابل للتنفيذ قابلاً للتنفيذ ، ويمكن القيام بذلك عن طريق الكتابة:

$ chmod + x expect_script

حل

جرب هذا:

 #! / usr / local / bin / تتوقع نتوء تيل نتوقع "تسجيل الدخول:" send "\ n" expect "كلمة المرور:" send "\ n" send "bash \ n" send "cd / opt \ n" send "ls - لتر \ n "؟ (إذا كنت لا تعطي \ n ، فسوف ينتظر ردك أو يجب عليك إدخال إدخال يدويًا). تفاعل 

كيفية تنفيذ الأمر "توقع" تتوقع -f

على سبيل المثال: نتوقع -F

ملحوظة

بفضل ZooZoo على هذه النصيحة في المنتدى.

المقال السابق المقالة القادمة

نصائح الأعلى