[Cisco] Hướng dẫn auto backup cấu hình Router bằng script Python

Trên HTV7 dự báo thời tiết hôm qua, bão cấp 9 đang vào TPHCM tất cả học sinh, sinh viên được nghỉ học để tránh bão. Hôm nay, mưa cả ngày ngập đường, kẹt xe rất nhiều. Nằm ở nhà trùm mền không đi đâu được. Thì thầy Bảo có cho bài tập về Back up cấu hình Router  bằng script python. Mình sẽ demo cách mà mình đã làm.


Sơ đồ 


A. Chuẩn bị


- PC Linux( ở đây mình dùng Ubuntu), 2 con Router như hình.
- Đặt IP theo sơ đồ.
- Phải đảm bảo trên 2 con Router  cấu hình telnet (hoặc SSH), nhưng ở đây mà sẽ dùng script để telnet kết nối từ PC đến 2 Router và lưu cấu hình về Tftp  server trên PC

  • PC mình đã cài đặt Tftp server và  Python 2.7, phải đảm bảo PC telnet thành công đến 2 Router
  • Các bạn có thể tham khảo bài viết trước mình đã cài đặt Tftp Server trên Ubuntu và back up cấu hình bằng cách thủ công   https://haocao95.blogspot.com/2018/11/cisco-huong-dan-backup-cau-hinh-router.html  
----> Ở đây mình chỉ hướng dẫn các bạn thao tác trên PC (Ubuntu)

B. Thực hiện 


Trên PC mình đã chuẩn bị một đoạn script python và lưu ở Desktop




#File name: script.py
#!/usr/bin/python
#Script starts here
import getpass
import sys
import telnetlib
import time

pwd1 = "vnpro"  
pwd2 = "vnpro"
config = "running-config"

#Create a list of router IP address, folder location and router hostname  

hostlist= [ ("192.168.1.254","R1","R1"),
            ("172.100.100.1","R2","R2"),
        ]

#Use for loop to telnet into each routers and execute commands
for host in hostlist:
    
    cmd1 = "en"
    cmd2 = "copy "+config+" tftp://192.168.1.100/"+host[1]
#copy startup-config  tftp://192.168.1.100/R

    tn = telnetlib.Telnet(host[0])
    tn.set_debuglevel(5)

    time.sleep(2)
    tn.write(pwd1.encode('ascii') + b"\n")
    time.sleep(2)
    tn.write(cmd1.encode('ascii') + b"\n")
    time.sleep(2)
    tn.write(pwd2.encode('ascii') + b"\n")
    time.sleep(2)
    tn.write(cmd2.encode('ascii') + b"\n")
    time.sleep(2)
    tn.write(b"\n")
    time.sleep(2)
    tn.write(b"\n")
    time.sleep(2)
    tn.close()

sys.exit("operation completed")
#script ends here

-->> Các bạn nhớ chỉnh sửa sao cho phù hợp với những thông số trên sơ đồ mạng

Mở terminal trên PC lên

Di chuyển đến Desktop (vì script mình lưu ở desktop) và dùng python để chạy script

cd Desktop/
python script.py


Sau khi chạy thành công, vào thư mục /tftp để kiểm tra  file back up đã tải về



Dùng lệnh gedit để mở và kiểm tra nội dung tập tin cấu hình của Router 1 và Router 2

sudo gedit /tftp/R1

sudo gedit /tftp/R2



Chúc các bạn thành công!


















Nhận xét

Bài đăng phổ biến từ blog này

[EVE-NG] Hướng dẫn import cisco IOL vào EVE server

[EVE-NG] Hướng dẫn kết nối thiết bị ảo với Internet thông qua cổng vật lý máy thât.

[EVE-NG] Hướng dẫn thêm máy ảo có sẵn (Window/Ubuntu) vào EVE-NG