תוכן עניינים:
2025 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2025-01-13 06:57
עקוב אחר מאת המחבר:
בערך: אני אוהב להתעסק כמעט בכל דבר, לפעמים זה מסתדר בסופו של דבר. תיהנה להסתכל על הפרויקטים, נסה לקרוע משהו ולספר לי איך הולך. לחיים, -ג'ו עוד על ג'ו »
מדריך זה מציג סקריפט שניתן להשתמש בו לאוטומטי גיבויים של חומת אש של מסך רשת שמריץ את ScreenOS.
שלב 1: דרישות
סקריפט זה כתוב בציפיה והנחה שהפעלת SSH במסך הרשת ובסביבת לינוקס. אם מעולם לא עשית צ'ק -אאוט מצפה, לאורלי יש ספר נהדר "לחקור לצפות"
שלב 2: משתנים
נתחיל בהגדרת כמה משתנים. תרצה להגדיר את משתני היציאה/שם משתמש/סיסמה/רשת netscreen/הנחיה. #!/usr/bin/expect#צפה סקריפט לגיבוי תצורת חומות אש של מסך nets#ג'ו#הגדר פסק זמן של varsset 60set משתמש "שורש" הגדר סיסמה "סיסמה" סט יציאה "2022" הגדרת רשת "foo.bar.com" set basedir "/mnt/netapp/backups/foo.bar.com" log log" [חותמת -תבנית%Y-%m-%d] -config.txt "הגדרת mailto" [email protected] "הגדרת דואר משנה" שגיאה: netscreen הגיבוי נכשל [חותמת זמן -פורמט%Y-%m-%d] "הגדרת דואר נכשל" "הגדרת הודעה" foo->"
שלב 3: התחבר
לאחר מכן בסקריפט ננסה להתחבר.send_user "סקריפט גיבוי של NetScren / n" send_user "התחברות ל $ netscreen / n" הוליד ssh $ user@$ netscreen -p $ port לצפות {"סיסמא:" {שלח "$ סיסמה / r "לצפות {" $ הנחיה "{send_user" מחובר "}" הרשאה נדחתה "{send_user" סיסמה לא חוקית, יציאה מ- "set mailfail" סיסמה לא חוקית, יציאה מ- "close} timeout {send_user" לא הוחזרה הודעה "set mailail" לא הוחזרה הודעה "close}}}" אין דרך לארח "{send_user" לא מצליח להתחבר ל- $ netscreen / n "set mailfail" לא מצליח להתחבר ל- $ netscreen / n "}" שם או שירות לא ידוע "{send_user" לא ניתן להתחבר $ netscreen / n "set mailfail" לא ניתן להתחבר ל- $ netscreen / n "} פסק זמן {send_user" פסק הזמן מתחבר ל- $ netscreen "set mailfail" פסק זמן מתחבר ל- $ netscreen "close}} אם {$ mailfail! =" "} { exec /bin /mail -s $ mailsubject $ mailto << "$ mailfail" יציאה}
שלב 4: כבה את ההחלפה
עליך לכבות את ההחלפה - או את ההודעה הבאה במסך הרשת. #השבת את דף הקונסולה "הגדר עוד הודעה" של קונסולה 0 / r "צפה {" $ prompt "{send_user" / n דף מושבת / n "} ברירת מחדל {שלח" ScreenOS לא פרט לאפשרות הדפסה. / N "הגדרת דואר נשלח" ScreenOS עשה זאת לא למעט אפשרות הדפסה. " סגור} פסק זמן {send_user "ScreenOS לא פרט לאפשרות הדפסה / n" הגדרת כשל בדואר "ScreenOS לא פרט לאפשרות הדפסה." close}} אם {$ mailfail! = ""} {exec /bin /mail -s $ mailsubject $ mailto << "$ mailfail" יציאה}
שלב 5: קבל תצורה
כעת נקבל את התצורה. send_user "הורדת תצורה / n" log_file $ basedir/$ logsend "get config / r" expect {"$ prompt" {log_file send_user "\ n תצורה הורדה / n"} פסק זמן {send_user "\ n שגיאה במהלך הורדת התצורה." הגדר מייל כשל "שגיאה במהלך הורדת התצורה." }} closeif {$ mailfail! = ""} {exec /bin /mail -s $ mailsubject $ mailto << "$ mailfail" יציאה}
שלב 6: בדוק אם התצורה היא בגודל הנכון
נדע לבדוק אם התצורה היא בגודל קובץ אחד לפחות. [גודל קובץ $ basedir/$ log] אם {$ fileize <= 1024} {send_user "הגדרת Netscreen קטנה מדי, בדוק / n" הגדר דואר נשלח " הגדרת Netscreen קטנה מדי, אנא בדוק / n "exec /bin /mail -s $ mailsubject $ mailto <<" $ mailfail "יציאה}
שלב 7: ניקוי
בוא נפעיל קצת ניקוי כדי להסיר קונפיג 'מעל גיל שבועיים. #הסר את התצורה הישנה יותר משבועיים
שלב 8: הכל ביחד
חבר את הכל עכשיו. הוא מצורף כקובץ טקסט. הוא ישלח מיילים על כל כשלים. #!/usr/bin/expect#מצפה לתסריט לגיבוי תצורת חומות אש של מסך nets#ג'ו#הגדר פסק זמן של varsset 60set משתמש "שורש" הגדר סיסמה "סיסמא" סט יציאה "2022" הגדרת רשת "foo.bar.com" set basedir "/mnt/netapp/backups/foo.bar.com" log log" [חותמת -תבנית%Y-%m-%d] -config.txt "הגדרת mailto" [email protected] "הגדרת דואר משנה" שגיאה: netscreen הגיבוי נכשל. netscreen -p $ port expect {"password:" {send "$ password / r" expect {"$ prompt" {send_user "Connected"} "הרשאה נדחתה" {send_user "סיסמה לא חוקית, יוצאת מ" set mailfail "סיסמה לא חוקית, יוצאת "close} פסק זמן {send_user" לא הוחזרה הודעה "הגדר דואר נשלח" לא הוחזרה הודעה "close}}}" אין מסלול לארח "{send_user" לא מצליח להתחבר ל $ netscreen / n "set mailfail" לא מצליח להתחבר ל- $ netscreen / n "}" שם או שירות לא ידוע "{send_user" אין אפשרות להתחבר ל- $ netscreen / n "s et mailfail "לא ניתן להתחבר ל $ netscreen / n"} פסק זמן {send_user "פסק זמן מתחבר ל- $ netscreen" הגדר דואר נשלח "פסק זמן מתחבר ל- $ netscreen" close}} אם {$ mailfail! = ""} {exec /bin /mail -s $ mailsubject $ mailto << "$ mailfail" יציאה}#עכשיו כשזה נגמר, המשך#השבת את עמוד הקונסולה "הגדר עוד" הודעה "\ r" צפה {"$ prompt" {send_user "\ n דף מושבת / n "} ברירת המחדל {שלח" ScreenOS לא פרט לאפשרות הדפסה. / n "הגדר כשל בדואר" ScreenOS לא פרט לאפשרות הדפסה. " סגור} פסק זמן {send_user "ScreenOS לא פרט לאפשרות הדפסה / n" הגדרת כשל בדואר "ScreenOS לא פרט לאפשרות הדפסה." close}} אם {$ mailfail! = ""} {exec/bin/mail -s $ mailsubject $ mailto << "$ mailfail" exit} send_user "הורדת תצורה / n" log_file $ basedir/$ logsend "קבל config / r "צפה {" $ prompt "{log_file send_user" / n תצורה שהורדה / n "} פסק זמן {send_user" / n שגיאה במהלך הורדת התצורה. " הגדר מייל כשל "שגיאה במהלך הורדת התצורה." }} closeif {$ mailfail! = ""} {exec/bin/mail -s $ mailsubject $ mailto << "$ mailfail" יציאה} הגדר את גודל הקובץ [גודל קובץ $ basedir/$ log] אם {$ fileize <= 1024} {send_user "הגדרת Netscreen קטנה מדי, אנא בדוק / n" הגדר דואר נשלח "הגדרת Netscreen קטנה מדי, אנא בדוק / n" exec /bin /mail -s $ mailsubject $ mailto << "$ mailfail" יציאה}#הסר תצורה מבוגר משבועיים seks למצוא $ basedir -name '*config.txt*' -mtime +14