İçindekiler:
2025 Yazar: John Day | [email protected]. Son düzenleme: 2025-01-13 06:58
Yazar tarafından daha fazlası:
Hakkında: Hemen hemen her şeyle uğraşmayı severim, bazen sonunda işe yarar. Projelere bakarken iyi eğlenceler, bir şeyleri yırtıp açmayı deneyin ve nasıl gittiğini bana bildirin. şerefe, -Joe joe hakkında daha fazla bilgi »
Bu talimat, ScreenOS çalıştıran bir netscreen güvenlik duvarının yedeklerini otomatikleştirmek için kullanılabilecek bir komut dosyasını gösterir.
Adım 1: Gereksinimler
Bu komut dosyası, beklendiği gibi yazılmıştır ve net ekranınızda ve bir linux ortamında SSH'nin açık olduğunu varsayar. Beklentileri hiç kontrol etmediyseniz, Oreilly'nin harika bir kitabı "Beklemeyi Keşfetmek" var
Adım 2: Değişkenler
Bazı değişkenleri ayarlayarak başlayacağız. Bağlantı noktası/kullanıcı adı/parola/netscreen/istem değişkenlerini ortamınıza uyacak şekilde ayarlamak isteyeceksiniz. #!/usr/bin/expect#Netscreen güvenlik duvarlarının yapılandırmasını yedeklemek için komut dosyası bekle#Joe #Biraz varsset zaman aşımı ayarla 60set kullanıcı "kök"şifre ayarla "parola"bağlantı noktası ayarla "2022"netscreen'i ayarla "foo.bar.com" basedir ayarla "/mnt/netapp/backups/foo.bar.com" günlüğü ayarla "[zaman damgası -format %Y-%m-%d]-config.txt"mailto'yu ayarla "[email protected]"mailsubject'i ayarla "Hata: netscreen yedekleme başarısız [timestamp -format %Y-%m-%d] "mailfail'i ayarla "" komut istemini ayarla "foo->"
3. Adım: Bağlanın
Komut dosyasının bir sonraki adımında, connect.send_user "NetScren Yedekleme Komut Dosyası\n"send_user "$netscreen'e bağlanmayı deneyeceğiz\n"spawn ssh $user@$netscreen -p$port bekle { "password:" { send "$password\" r" bekle { "$prompt" { send_user "Bağlandı" } "İzin reddedildi" { send_user "Geçersiz şifre, çıkılıyor" set mailfail "Geçersiz şifre, çıkılıyor" kapat } zaman aşımı { send_user "İstem döndürülmedi" mailfail ayarla "İstem döndürülmedi" " kapat } } } "Barındırılacak yol yok" { send_user "$netscreen'e bağlanılamıyor\n" mailfail ayarla "$netscreen'e bağlanılamıyor\n" } "Ad veya hizmet bilinmiyor" { send_user "Bağlanılamadı $netscreen\n" mailfail ayarla "$netscreen'e bağlanılamıyor\n" } zaman aşımı{ send_user "$netscreen ile bağlantı zaman aşımı" mailfail "$netscreen ile bağlantı zaman aşımı" ayarla kapat } }if { $mailfail != "" } { exec /bin/mail -s$mailsubject $mailto << "$mailfail" çıkış}
Adım 4: Çağrıyı Kapatın
Çağrıyı kapatmanız gerekir - veya net ekranda daha fazla bilgi istemi. #"Daha fazla" komut istemini devre dışı bırak "konsol sayfasını ayarla 0\r"bekle { "$prompt" { send_user "\nPaging Disabled\n" } varsayılan { gönder "ScreenOS sayfalama seçeneği dışında değildi.\n" mailfail ayarla "ScreenOS yaptı sayfalama seçeneği dışında değil." kapat } zaman aşımı { send_user "ScreenOS, sayfalama seçeneği dışında değildi\n" mailfail'i ayarla "ScreenOS, sayfalama seçeneği dışında değildi." kapat }}if { $mailfail != "" } { exec /bin/mail -s$mailsubject $mailto << "$mailfail" çıkış}
Adım 5: Yapılandırmayı Alın
Şimdi yapılandırmayı alacağız. send_user "Yapılandırmayı İndiriyor\n"log_file $basedir/$logsend "get config\r"bekle { "$prompt" { log_file send_user "\nYapılandırma İndirildi\n" } zaman aşımı { send_user "\nYapılandırma indirme sırasında hata." mailfail "Yapılandırma indirme sırasında hata." }}closeif { $mailfail != "" } { exec /bin/mail -s$mailsubject $mailto << "$mailfail" çıkış}
Adım 6: Yapılandırmanın Doğru Boyutta Olup Olmadığını Kontrol Edin
Yapılandırmanın en az 1k.set dosya boyutu [dosya boyutu $basedir/$log]if { $filesize <= 1024 } { send_user "Netscreen yapılandırması çok küçük, lütfen inceleyin\n" mailfail ayarla " olup olmadığını kontrol edeceğiz Netscreen yapılandırması çok küçük, lütfen araştırın\n" exec /bin/mail -s$mailsubject $mailto << "$mailfail" exit}
7. Adım: Temizleme
İki haftadan eski yapılandırmaları kaldırmak için biraz temizlik yapalım. #2 haftadan eski yapılandırmayı kaldırexec find $basedir -name '*config.txt*' -mtime +14
Adım 8: Hep Birlikte
Şimdi hepsini bir araya getirin. Metin dosyası olarak eklenir. Herhangi bir arıza durumunda e-posta gönderecektir. #!/usr/bin/expect#Netscreen güvenlik duvarlarının yapılandırmasını yedeklemek için komut dosyası bekle#Joe#Biraz varsset zaman aşımı ayarla 60set kullanıcı "kök"şifre ayarla "parola"bağlantı noktası ayarla "2022"netscreen'i ayarla "foo.bar.com" basedir ayarla "/mnt/netapp/backups/foo.bar.com" günlüğü ayarla "[zaman damgası -format %Y-%m-%d]-config.txt"mailto'yu ayarla "[email protected]"mailsubject'i ayarla "Hata: netscreen yedekleme başarısız [timestamp -format %Y-%m-%d] "mailfail'i ayarla "" komut istemini ayarla "foo-> "send_user "NetScren Yedekleme Komut Dosyası\n"send_user "$netscreen'e bağlanılıyor\n"spawn ssh $user@$ netscreen -p$port bekle { "şifre:" { gönder "$şifre\r" bekle { "$ istemi" { send_user "Bağlandı" } "İzin reddedildi" { send_user "Geçersiz şifre, çıkılıyor" mail hatası ayarla "Geçersiz şifre, çıkılıyor " kapat } zaman aşımı { send_user "İstem döndürülmedi" mailfail ayarla "İstem döndürülmedi" kapat } } } "Barındırılacak yol yok" { send_user "$netscreen'e bağlanılamıyor\n" mailfail ayarla "$netscreen'e bağlanılamıyor\ n" } "Ad veya hizmet bilinmiyor" { send_user "$netscreen'e bağlanılamıyor\n" s et mailfail "$netscreen'e bağlanılamıyor\n" } zaman aşımı{ send_user "$netscreen'e bağlanma zaman aşımı" mailfail'i ayarla "$netscreen'e bağlanma zaman aşımı" kapat } }if { $mailfail != "" } { exec /bin/mail -s$mailsubject $mailto << "$mailfail" çıkış}#Artık bu bitti, devam#"Daha fazla" komut istemini devre dışı bırakıngönder "konsol sayfasını ayarla 0\r"bekleyin { "$prompt" { send_user "\nPaging Disabled\ n" } varsayılan { gönder "ScreenOS, sayfalama seçeneği dışında değildi.\n" mailfail'i ayarla "ScreenOS, sayfalama seçeneği dışında değildi." kapat } zaman aşımı { send_user "ScreenOS, sayfalama seçeneği dışında değildi\n" mailfail'i ayarla "ScreenOS, sayfalama seçeneği dışında değildi." kapat }}if { $mailfail != "" } { exec /bin/mail -s$mailsubject $mailto << "$mailfail" çıkış}send_user "Yapılandırmayı İndiriyor\n"log_file $basedir/$logsend "get config\r "expect { "$prompt" { log_file send_user "\nYapılandırma İndirildi\n" } zaman aşımı { send_user "\nYapılandırma indirme sırasında hata oluştu." mailfail "Yapılandırma indirme sırasında hata." }}closeif { $mailfail != "" } { exec /bin/mail -s$mailsubject $mailto << "$mailfail" çıkış}dosya boyutunu ayarla [dosya boyutu $basedir/$log]if { $filesize <= 1024 } { send_user "Netscreen yapılandırması çok küçük, lütfen araştırın\n" mailfail ayarla "Netscreen yapılandırması çok küçük, lütfen araştırın\n" exec /bin/mail -s$mailsubject $mailto << "$mailfail" exit}#Yapılandırmayı Kaldır 2 haftadan eskiexec $basedir -name '*config.txt*' -mtime +14 bul