Linux ile Cisco Cihazlarda Otomatik Yedek Alma
  1. Anasayfa
  2. Network

Linux ile Cisco Cihazlarda Otomatik Yedek Alma

0

Merhaba, bugün Cisco cihazlarının kaydedilmiş ayarlarının bulunduğu Startup-config dosyasının otomatik olarak nasıl yedeğinin alınacağına değineceğiz. Ben Cisco cihaz üzerine kodları yazdım ama siz istediğiniz cihaza göre ayarlayabilirsiniz. Başlamadan önce bir TFTP Server ihtiyacımız olacaktır. Ben TFTP Server anlatmayacağım ama ufak bir aramayla Linux ve Windows ortamlarında çokça kaynak bulabilirsiniz.

Cisco cihazlarda Startup-Config yedeğini almak için “copy startup-config tftp:” komutunu çalıştırdığımızda bizden TFTP Serverın Ip adresini ve hangi isimde kaydetmek istediğimizi sorar ve kopyalamaya başlar.

Resim-1

Bu işi otomatikleştirmeyi Cisco cihazlar üzerinden de planlayabiliriz.


Resim-2

Elimizde 100 lerce cihazın olduğunu düşürsek ve her gün yedek almak istersek tek tek bu işlemi yapmak hayli zaman alacaktır. Bu işi yapan ücretli daha gelişmiş uygulamalar bulunmaktadır ama bu basit ve ücretsiz bir yoldur.

Cihazların yedek alırken kullanıcıdan etkileşim halinde olup soruduğu sorulara cevap beklemesini otomatik hala getirmek için “expect” komutundan yararlanacağız. Kurmak için;

  • apt install expect

veya

  • dnf install expect

komutu ile kurulumu gerçekleştirebiliriz.

Kurulum bittik den sonra https://github.com/4opensource/Cisco-Device-Config-Backup adresinden dosyaları indirelim. Forklamak isteyen olursa da çok memnun olurum

3 adet dosyamız var.

Resim-3

  1. Device.list – Cihazlarımızın IP adreslerini yazacağımız dosya.
  2. Configuration.sh – Expect komutunun çalıştığı cihazlara bağlanıp cihazla etkileşime giren dosyamız.
  3. Run.sh – Device.list deki Ip adreslerini tek tek Expect komutuna gönderen ve daha sonra tüm dosyaları sıkıştıran dosyamız.

Resim-4

Topolojimizde 3 adet cihazımız var. Bu 3 cihazın Ip Adreslerini device.list adlı dosyamızın içinde yazanları silip cihazlarımın IP Adreslerini yazıyorum.

Resim-5

Resim-6

configuration.sh dosyası ve run.sh doyası çalıştırılabilir bir dosya olmalıdır.

Resim-7

Chmod u+x configration.sh run.sh

Komutu ile gerekli yetkileri veriyoruz.

Configuration.sh dosyasında

Resim-8

Username = ssh ile cihazlarımıza bağlandığımız kullanıcı adı.

Password = ssh ile cihazlarımıza bağlandığımız şifre.

mybackup = Loglarımızın alınacağı dosya yolu.

172.16.16.129 = TFTP Server Ip adresi.

Yapılan işlemi açıklayacak olursak, İlk cihaza bağlandığımızda bağlanılan cihazın Ip Adresini ve Tarihi log dosyasına yazıyor.

ssh ile ilgili cihazımıza bağlanıyoruz.

Expect “*assword” cihaz bizden parolamızı yazmamızı soyluyor bizde send “$password\r” ile parolamızı gönderiyoruz.

Expect ile yazılan satırlar cihazlarımızın bize sorduğu sorular send ise bizim cihazlarımıza verdiğimiz cevaplardır. Ben burada yedek aldım siz farklı cihazlara farklı işler yaptıra bilirisiniz. Mantık expect ile cihazlarımızın sorduğu sorular send ise bizim cevaplarımız olduğudur.

Run.sh dosyası


Resim-9

mybackup= Loğlarımızın alınacağı dosya yolu

backupSrc= Startup-config dosyalarımızın kopyalandığı yoldur.

backupDst= Cihazlardan aldığımız Startup-config dosyalarının nereye sıkıştırılıp arşivleneceği dosya yoludur.

Komutları açıklayacak olursak,

İlk fonksiyonumuz device.list dosyasını tek tek okuyup $device adlı değişkene atıyor ve configrasyon.sh dosyasına argüman olarak atıyor.

İkinci fonksiyonumuzda aldığımız konfigürasyon dosyalarını sıkıştırıp yedekliyor.

Resim-10

Run.sh çalıştırdığımızda tek tek cihazlara bağlanıp Startup-config dosyalarını kopyalıyor.

Resim-11

Yedeklerimizi aldığımız dosya yoluna baktığımızda tar.gz ile sıkıştırılmış bir dosyamız vardır. İçeriğine baktığımızda Startup-config dosyalarının ismi cihaz IP Adresleriyle değiştirilmiş.

Resim-12

Mybackup.log adlı dosyamıza baktığımızda cihazlara bağlanılan zaman aralığı yedeğin başladığı ve bittiği tarih aralığı görülmektedir.

Yedek planınıza göre run.sh Crontaba ekleyerek günlük haftalık aylık yedek alabilirsiniz.

Bu konuyla ilgili sorularınızı  alt kısımda bulunan yorumlar alanını kullanarak sorabilirsiniz.

Referanslar:
www.mshowto.org

TAGs: expect, Cisco Startup-Config yedek, bash, Linux, Open Source, Cisco Kron policy

Bu İçeriğe Tepkin Ne Oldu?
  • 7
    harika_
    Harika!!
  • 2
    be_enmedim
    Beğenmedim
  • 0
    _ok_iyi
    Çok iyi
  • 0
    sevdim_
    Sevdim!
  • 0
    bilemedim_
    Bilemedim!
  • 0
    olmad_
    Olmadı!
  • 0
    k_zd_m_
    Kızdım!

Aykut Demirci, 13 yıldan beri profesyonel olarak çalışmaktadır. Öğrencilik yıllarında teknik serviste çalışmaya baslamış olup okul bitiminden sonra Netron Akademide Bilgi İşlem Uzmanı olarak göreve başlamıştır. Bir çok firmada Windows Sunucular üzerinde çalışmış olsada Open Source gönül vermiştir. Şu anda özel bir firmada Sistem ve Network takım lideri olarak çalışma hayatını sürdürmektedir.

Yazarın Profili

Bültenimize Katılın

Tıklayın, üyemiz olun ve yeni güncellemelerden haberdar olan ilk kişi siz olun.

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir