fbpx
Anasayfa » Forum

Cisco Router/Switch...
 

Cisco Router/Switch Konfigürasyon Yedekleyici - PHP  

  RSS
Hüseyin Baduk
(@huseyinbaduk)
Üye

Merhabalar Çözümpark Ailesi,

Kurumum için yazdığım(biraraya getirdiğim) sistemi sizlerle paylaşmak isterim.

İhtiyaçlar;

Şöyle bir arayüzü olacak;

 

Hazır Kütüphane Dosyasına Ekleyeceğiniz fonksiyon;

    public function cihaz_yedegi_al($tftp_server_ip, $dosya_ismi){
        $this->_send('copy running-config tftp:');
        $this->_readTo('?');
        $this->_send($tftp_server_ip);
        $this->_readTo('?');
        $this->_send($dosya_ismi);
        $this->_readTo($this->_prompt);
        return $this->_data;
    }


Kütüphaneyi çağıracağımız php dosyası (index.php)
<?php
require ('Cisco.php');

if($_POST){
    $port = 22;
    $timeout = 10;
    $router_ip = $_POST['router_address'];
    $username = "DEGER1";
    $password = "DEGER2";
    $tftp_server_ip = $_POST['tftp_address'];
    $dosya_ismi = $_POST['dosya_ismi'];
    $cisco = new Cisco($router_ip, $password, $username);
    try{
        $data1 = $cisco->connect();
        echo "print1: ". $data1 . '<br>';
    }catch (Exception $exception){
        echo $exception;
    }
    try{
        $data2 = $cisco->enable($password);
        echo "print2: ". $data2. '<br>';
    }catch (Exception $exception){
        echo $exception;
    }
    try{
        $data = $cisco -> cihaz_yedegi_al($tftp_server_ip, $dosya_ismi);
        var_dump($data);
    }catch (Exception $exception){
    }
}else {
?>
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Cisco Yedekleme Page</title>
    </head>
    <body>
    <div class="container">
        <div class="row">
            <div class="Absolute-Center is-Responsive">
                <div id="logo-container"></div>
                <div class="col-sm-12 col-md-10 col-md-offset-1">
                    <form action="" method="post" id="loginForm">
                        <div class="form-group input-group">
                            <span class="input-group-addon"><i class="glyphicon glyphicon-user"></i></span>
                            <input class="form-control" type="text" name='router_address' placeholder="cisco router"/>
                        </div>
                        <div class="form-group input-group">
                            <span class="input-group-addon"><i class="glyphicon glyphicon-user"></i></span>
                            <input class="form-control" type="text" name='tftp_address' placeholder="tftp address"/>
                        </div>
                        <div class="form-group input-group">
                            <span class="input-group-addon"><i class="glyphicon glyphicon-lock"></i></span>
                            <input class="form-control" type="text" name='dosya_ismi' placeholder="dosya ismi"/>
                        </div>

                        <div class="form-group">
                            <input type="submit" name="submit" value="YEDEKLE!" class="btn btn-def btn-block">
                        </div>
                        <div class="form-group text-center">
                            <a href="http://huseyinbaduk.blogspot.com/">hbaduk</a>&nbsp;|&nbsp;<a href="#">MAU BIDB</a>
                        </div>
                    </form>
                </div>
            </div>
        </div>
    </div>
    </body>
    </html>

    <style>
        body{
            background: #00589F;
            filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00589F', endColorstr='#0073CF', GradientType=0);
            background: -webkit-linear-gradient(to bottom, #00589F 50%, #0073CF) !important;
            background: -moz-linear-gradient(to bottom, #00589F 50%, #0073CF) !important;
            background: -ms-linear-gradient(to bottom, #00589F 50%, #0073CF) !important;
            background: -o-linear-gradient(to bottom, #00589F 50%, #0073CF) !important;
            background: linear-gradient(to bottom, #00589F 50%, #0073CF) !important;
            color: white;
        }

        div.well{
            height: 250px;
        }

        .Absolute-Center {
            margin: auto;
            position: absolute;
            top: 0; left: 0; bottom: 0; right: 0;
        }

        .Absolute-Center.is-Responsive {
            width: 50%;
            height: 50%;
            min-width: 200px;
            max-width: 400px;
            padding: 40px;
        }

        #logo-container{
            margin: auto;
            width:250px;
            height:250px;
            background-image: url("logo3.png");
        }
    </style>
    <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">
<?php
}
?>



DEGER1 yazan yere cisco username, DEGER2 yazan yere cisco password yazın.. Not: önceden ssh bağlantısı kurulmuş olmalı (key alışverişi için)
Alıntı
Gönderildi : 16/12/2018 04:46
Vasvi UYSAL
(@vasviuysal)
Üye Forum Yöneticisi

elinize sağlık

CevapAlıntı
Gönderildi : 17/12/2018 14:05
Zafer SEN
(@ZaferSEN)
Üye

Merhaba

emeğinize sağlık, güzel bir çalışma olmuş.

aslında php ile falan uğraşmadan da her cihazın kendi config yedeğini almasını sağlayabilirsiniz.

 

Cisco switchlerde "archive" özelliği var zaten.

bir pc veya server üzerinde tftp servisini çalıştırmanız yeterli,

configure terminal;

archive
 path tftp://ip_address/File/$h
 time-period 10080

 

tftp ip adresini, belki klasörü seçebilirsiniz, $h hostname ekliyor,

time-period olarak da ne sıklıkta yedeklenmesini istiyorsanız girebilirsiniz, isterseniz 1 saat, isterseniz 1 ay

 

ben haftalık almak istediğim için 10080 yaptım.

CevapAlıntı
Gönderildi : 17/12/2018 19:10
Hüseyin Baduk
(@huseyinbaduk)
Üye

Bunu bilmiyordum, çok teşekkür ederim zafer hocam, yarın denemem lazım 🙂 Peki aruba/hp switchleriniz için nasıl bir yol izliyorsunuz?

CevapAlıntı
Gönderildi : 18/12/2018 01:45
Paylaş:

Lütfen Giriş yap yada Kayıt ol