Forum

Cisco Router/Switch...
 
Bildirimler
Hepsini Temizle

Cisco Router/Switch Konfigürasyon Yedekleyici - PHP

4 Yazılar
3 Üyeler
0 Reactions
1,201 Görüntüleme
(@huseyinbaduk)
Gönderiler: 116
Estimable Member
Konu başlatıcı
 

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)
 
Gönderildi : 16/12/2018 04:46

(@vasviuysal)
Gönderiler: 7889
Üye
 

elinize sağlık

 
Gönderildi : 17/12/2018 14:05

(@ZaferSEN)
Gönderiler: 213
Estimable Member
 

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.

 
Gönderildi : 17/12/2018 19:10

(@huseyinbaduk)
Gönderiler: 116
Estimable Member
Konu başlatıcı
 

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?

 
Gönderildi : 18/12/2018 01:45

Paylaş: