جدول المحتويات:
2025 مؤلف: John Day | [email protected]. آخر تعديل: 2025-01-13 06:56
بواسطة joe
حول: أحب العبث بأي شيء تقريبًا ، وأحيانًا ينجح الأمر في النهاية. استمتع بمشاهدة المشاريع ، وحاول تمزيق شيء مفتوح وأخبرني كيف ستسير الأمور. في صحتك ، - جو المزيد عن جو »
يُظهر هذا التوجيه برنامجًا نصيًا يمكن استخدامه لأتمتة النسخ الاحتياطية لجدار حماية netscreen يعمل على ScreenOS.
الخطوة 1: المتطلبات
تمت كتابة هذا البرنامج النصي في توقع ويفترض أنك قمت بتشغيل SSH على شاشة netscreen وبيئة Linux. إذا لم تكن قد قمت بتسجيل المغادرة ، فتوقع أن يكون لدى Oreilly كتاب رائع بعنوان "Exploring Expect"
الخطوة 2: المتغيرات
سنبدأ بتعيين بعض المتغيرات ، سترغب في تعيين متغيرات المنفذ / اسم المستخدم / كلمة المرور / netscreen / موجه لتتناسب مع بيئتك. #! / usr / bin / توقع # توقع أن يقوم البرنامج النصي بعمل نسخة احتياطية من تكوين جدران الحماية netscreen # Joe # تعيين بعض مهلة varsset 60 set تعيين كلمة مرور المستخدم "root" set password "password" المنفذ "2022" تعيين netscreen "foo.bar.com" set basedir "/mnt/netapp/backups/foo.bar.com" set log" [timestamp -format٪ Y-٪ m-٪ d] -config.txt "تعيين mailto" [email protected] "تعيين mailsubject" خطأ: netscreen فشل النسخ الاحتياطي [الطابع الزمني - تنسيق٪ Y-٪ m-٪ d] "تعيين فشل البريد" "تعيين موجه" foo->"
الخطوة الثالثة: التوصيل
بعد ذلك في البرنامج النصي سنحاول connect.send_user "NetScren Backup Script / n" send_user "الاتصال بـ $ netscreen / n" spawn ssh $ user @ $ netscreen -p $ port نتوقع {"password:" {send "$ password / r "توقع {" $ موجه "{send_user" Connected "}" تم رفض الإذن "{send_user" كلمة مرور غير صالحة ، الخروج من "تعيين بريد إلكتروني" كلمة مرور غير صالحة ، الخروج من "إغلاق} مهلة {send_user" لم يتم إرجاع رسالة "تعيين فشل البريد" لم يتم إرجاع أي مطالبة "close}}}" لا يوجد مسار للمضيف "{send_user" غير قادر على الاتصال بـ $ netscreen / n "set mailfail" غير قادر على الاتصال بـ $ netscreen / n "}" الاسم أو الخدمة غير معروفين "{send_user" غير قادر على الاتصال بـ $ netscreen / n "set mailfail" غير قادر على الاتصال بـ $ netscreen / n "} timeout {send_user" Timeout connecting to $ netscreen "set mailfail" مهلة الاتصال بـ $ netscreen "close}} إذا {$ mailfail! =" "} { exec / bin / mail -s $ mailsubject $ mailto << "$ mailfail" exit}
الخطوة 4: قم بإيقاف تشغيل المناداة
تحتاج إلى إيقاف تشغيل الترحيل - أو المزيد من المطالبة على شاشة netscreen. # تعطيل صفحة وحدة التحكم المحددة "إرسال المزيد" 0 / r "توقع {" $ موجه "{send_user" / n تم تعطيل الترحيل / n "} الافتراضي {إرسال" لم يقم ScreenOS باستثناء خيار الترحيل. / n "تعيين فشل البريد" ScreenOS لا باستثناء خيار الترحيل ". close} timeout {send_user "لم يستثني ScreenOS خيار الترحيل / n" تعيين فشل البريد "لم يقم ScreenOS باستثناء خيار الترحيل." close}} إذا {$ mailfail! = ""} {exec / bin / mail -s $ mailsubject $ mailto << "$ mailfail" exit}
الخطوة 5: الحصول على Config.sys
سوف نحصل الآن على config. send_user "تنزيل التكوين / n" log_file $ Basedir / $ logsend "الحصول على التكوين / r" توقع {"$ موجه" {log_file send_user "\ n تم تنزيل التكوين / n"} انتهت المهلة {send_user "\ n حدث خطأ أثناء تنزيل التكوين." تعيين mailfail "خطأ أثناء تنزيل التكوين." }} closeif {$ mailfail! = ""} {exec / bin / mail -s $ mailsubject $ mailto << "$ mailfail" exit}
الخطوة 6: تحقق لمعرفة ما إذا كان التكوين هو الحجم الصحيح
سنعرف ما إذا كان التكوين هو 1k.set حجم الملف على الأقل [حجم الملف $ Basedir / $ log] إذا كان {$ ملف <= 1024} {send_user "تهيئة Netscreen صغيرة جدًا ، يرجى التحقيق / n" تعيين فشل البريد " تهيئة Netscreen صغيرة جدًا ، يرجى التحقق من / n "exec / bin / mail -s $ mailsubject $ mailto <<" $ mailfail "exit}
الخطوة 7: التنظيف
لنقم بإجراء تنظيف بسيط لإزالة التكوينات التي مضى عليها أكثر من أسبوعين. #Remove config أقدم من أسبوعين ، ابحث عن $ Basedir -name '* config.txt *' -mtime +14
الخطوة 8: الكل معًا
ضع كل ذلك معا الآن. يتم إرفاقه كملف نصي. سوف ترسل رسائل البريد الإلكتروني بشأن أي فشل. #! / usr / bin / توقع # توقع أن يقوم البرنامج النصي بإجراء نسخ احتياطي لتكوين جدران الحماية netscreen # Joe # تعيين بعض مهلة varsset 60 set المستخدم "root" set password "password" set port "2022" تعيين netscreen "foo.bar.com" set basedir "/mnt/netapp/backups/foo.bar.com" set log" [timestamp -format٪ Y-٪ m-٪ d] -config.txt "تعيين mailto" [email protected] "تعيين mailsubject" خطأ: netscreen فشل النسخ الاحتياطي [الطابع الزمني - تنسيق٪ Y-٪ m-٪ d] "تعيين فشل البريد" "تعيين موجه" foo-> "send_user" NetScren Backup Script / n "send_user" الاتصال بـ $ netscreen / n "spawn ssh $ user @ $ توقع netscreen -p $ port {"password:" {أرسل "$ password / r" توقع {"$ موجه" {send_user "Connected"} "تم رفض الإذن" {send_user "كلمة مرور غير صالحة ، الخروج من" تعيين mailfail "كلمة مرور غير صالحة ، الخروج "close} timeout {send_user" لم يتم إرجاع أي مطالبة "تعيين mailfail" لم يتم إرجاع أي مطالبة "close}}}" لا يوجد مسار للمضيف "{send_user" غير قادر على الاتصال بـ $ netscreen / n "set mailfail" تعذر الاتصال بـ $ netscreen / n "}" الاسم أو الخدمة غير معروفين "{send_user" غير قادر على الاتصال بـ $ netscreen / n "s et mailfail "تعذر الاتصال بـ $ netscreen / n"} انتهت المهلة {send_user "مهلة الاتصال بـ $ netscreen" تعيين mailfail "مهلة الاتصال بـ $ netscreen" close}} إذا {$ mailfail! = ""} {exec / bin / mail -s $ mailsubject $ mailto << "$ mailfail" exit} # الآن بعد انتهاء ذلك ، تابع # قم بتعطيل صفحة وحدة التحكم المحددة "المزيد" للإرسال 0 / r "توقع {" $ موجه "{send_user" / n تم تعطيل الترحيل / n "} الافتراضي {إرسال" لم يقم ScreenOS باستثناء خيار الترحيل. / n "تعيين فشل البريد" لم يستثني ScreenOS خيار الترحيل. " close} timeout {send_user "لم يستثني ScreenOS خيار الترحيل / n" تعيين فشل البريد "لم يقم ScreenOS باستثناء خيار الترحيل." close}} إذا {$ mailfail! = ""} {exec / bin / mail -s $ mailsubject $ mailto << "$ mailfail" exit} send_user "جارٍ تنزيل التهيئة / n" log_file $ basedir / $ logsend "احصل على التهيئة / r "توقع {" $ موجه "{log_file send_user" / n تم تنزيل التكوين / n "} انتهت المهلة {send_user" / n حدث خطأ أثناء تنزيل التكوين. " تعيين mailfail "خطأ أثناء تنزيل التكوين." }} closeif {$ mailfail! = ""} {exec / bin / mail -s $ mailsubject $ mailto << "$ mailfail" exit} عيّن حجم الملف [حجم الملف $ Basedir / $ log] إذا كان {$ ملف <= 1024} {send_user "تكوين Netscreen صغير جدًا ، يرجى التحقق من / n" set mailfail "تكوين Netscreen صغير جدًا ، يرجى التحقق من / n" exec / bin / mail -s $ mailsubject $ mailto << "$ mailfail" exit} #Remove config أقدم من أسبوعين ، ابحث عن $ Basedir -name '* config.txt *' -mtime +14