Hướng dẫn tạo lịch tự động backup cấu hình cho switch, router nhanh chóng, đơn giản 

03:27 29-12-2021BKAP Media

Tạo lịch tự động backup cấu hình cho switch, router là công việc cần biết của một Network Administrator. Bài viết này sẽ hướng dẫn bạn cách tạo nhanh chóng, đơn giản đạt hiệu quả cao. 

1. Backup and Restore Router cisco

Đối với vị trí Network Administrator thì việc backup/restore và update firmware của Switch/Router gần như là một việc được thực hiện khá thường xuyên. Khi làm tốt công tác này thì chúng ta sẽ giảm thiểu được thời gian downtime của hệ thống trong trường hợp có sự cố liên quan đến cấu hình và thay đổi cài đặt không như mong đợi.

2. Cách thực hiện

Thủ công, các bước thực hiện:

  • Kết nối máy tính vào hệ thống mạng
  • Chuẩn bị TFTP server (hoặc FTP, SCP server)
  • Copy dữ liệu của từng Router, Switch lên TFTP server

Với phương thức này, ta thấy mức độ phức tạp cũng như khối lượng công việc cần thực hiện của người quản trị mạng sẽ tăng theo số lượng thiết bị, do phải thực hiện lặp đi lặp lại trên từng Router và Switch.

Đặt lịch tự động chạy script backup
Mô hình:

Cách 1: viết script backup cấu hình Router, Switch và tạo lịch tự động thực thi script

Các bước thực hiện:

  • Cấu hình SSH (telnet) trên các Router, Switch
  • Tạo script backup cấu hình lên FTP server
  • Tạo lịch thực thi script

Triển khai:

Bước 1: cấu hình ssh và telnet:

ip domain-name bkap.edu.vn

username admin password bkap

username admin priv 15

line vty 0 4

transport input all

login local

privilege level 15

crypto key generate rsa modulus 1024

Bước 2:  Viết script backup cấu hình lên FTP server

Script 1: kết nối ssh đến các Router và Switch rồi thực hiện copy file cấu hình lên FTP server

from netmiko import ConnectHandler

from datetime import datetime

Router1= {

                     'device_type': 'cisco_ios',

                     'ip': '192.168.122.118',

                     'username': 'admin',

                     'password': 'bkap',

                     'verbose': False,

                     }

Switch1={

                     'device_type': 'cisco_ios',

                     'ip': '192.168.122.190',

                     'username': 'admin',

                     'password': 'bkap',

                     'verbose': False,

                     }

all_devices=[Router1,Switch1]

current_time=datetime.now()

current_date=current_time.strftime("%d")

current_month=current_time.strftime("%m")

current_year=current_time.strftime("%Y")

for devices in all_devices:

 net_connect=ConnectHandler(**devices)

 net_connect.enable()

 command="copy running-config ftp://192.168.137.133/cfg_device_bk/"

 send_bk_command = net_connect.send_command_timing(command)

 if ("Address or name of remote host" in send_bk_command):

  send_Enter= net_connect.send_command_timing("\n")

 if ("Destination filename" in send_Enter):

  index1=send_Enter.find("[")+1

  index2=send_Enter.find("]")

  device_hostname=send_Enter[index1:index2]

  send_Filename= net_connect.send_command_timing(device_hostname+"_"+current_date+"_"+current_month+"_"+current_year)

  if ("Error" in send_Filename):

   print (send_Filename)

 print("Success "+device_hostname)

Chạy thử script:

 

Script 2: Telnet đến Router, Switch rồi show file cấu hình và lưu trữ trên máy admin

Chuẩn bị file chứa danh sách các thiết bị:

Viết script:

import getpass

import telnetlib

user = input('Enter your telnet username: ')

password = getpass.getpass()

f = open('mydevice')

for IP in f:

IP=IP.strip()

print ('Get running config from ' + (IP))

HOST = IP

tn = telnetlib.Telnet(HOST)

tn.read_until(b'Username: ')

tn.write(user.encode('ascii') + b'\n')

if password:

     tn.read_until(b'Password: ')

     tn.write(password.encode('ascii') + b'\n') 

tn.write(b"terminal length 0\n")

tn.write(b"show run\n")

tn.write(b'exit\n')

readoutput = tn.read_all()

saveoutput =  open("Device: " + HOST, "w")

   saveoutput.write(readoutput.decode('ascii'))

saveoutput.write("\n")

saveoutput.close

Chạy script và kiểm tra kết quả:

Bước 3: Tạo lịch tự động chạy script

Sử dụng công cụ crontab trên linux (hoặc task scheduler trên windows):

Thực thi vào 1AM từ Thứ Hai đến Thứ Bảy:

0 1 * * 1-6 /usr/bin/env python3 /root/script-backup.py

Cách 2: sử dụng công cụ kron và archive

Kron script: kron là công cụ lên kế hoạch và thực thi các câu lệnh của hệ điều hành cisco IOS
Bước 1: Tạo kron policy chứa danh sách các lệnh mà thiết bị sẽ thực hiện vào thời gian chỉ định

(config)#kron policy-list backupconfig

(config-kron-policy)#cli show running-config | redirect ftp://192.168.137.133/cfg_device_bk/r1.cfg

Bước 2: Đặt lịch thực thi script

Đặt lịch backup mỗi 30 phút hằng ngày và Backup vào 23h chủ nhật hằng tuần:

(config)#kron occurrence Backuptime in 30 recurring

(config-kron-occurrence)#policy-list backupconfig

(config)#kron occurrence backupweekly at 23:00 Sun recurring

(config-kron-occurrence)#policy-list backupconfig

Verify:

show kron schedule

debug kron all

Archive script: archive là công cụ lưu trữ, quản lý các file cấu hình trong cisco IOS
Bước 1: Bật mode archive

(config)# archive

Bước 2: Chỉ định file backup, đường dẫn lưu backup và đặt thời gian tự động backup (30 phút / 1 lần)

(config)#archive

(config-archive)#log config

(config-archive-log-cfg)#logging enable

R1(config-archive-log-cfg)#hidekeys

R1(config-archive-log-cfg)#exit

R1(config-archive)#path ftp://192.168.137.133/$h-

R1(config-archive)#write-memory

R1(config-archive)#time-period 30

Verify:

Show archive

Mặc định số bản backup mà archive lưu trữ sẽ là 10, ta có thể thay đổi giá trị này:

(config-archive)# maximum 15

Với phương thức lên lịch thực hiện backup, mọi thứ diễn ra tự động và nằm trong kế hoạch của người quản trị, từ đó giúp cho việc quản lý cấu hình các thiết bị trở nên đơn giản và nhẹ nhàng, không phụ thuộc vào số lượng Router và Switch cần quản trị trong hệ thống.

Phần kiến thức về tạo lịch tự động backup cấu hình cho switch, router đã được chia sẻ chi tiết ở trên. Phần học này hỗ trợ tốt cho các bạn đang học tập và làm việc trong ngành quản trị mạng, đặc biệt là những bạn chuẩn bị đi làm hay đang đi thực tập ở các công ty công nghệ. 

Việc ứng dụng được thực tiễn trong quá trình học tập rất quan trọng với vị trí của một Network Administrator. Tuy nhiên, nhân lực của ngành quản trị mạng hay quản trị hệ thống nói chung ra trường vẫn khó tìm được việc hoặc nhận việc với mức lương thấp. Mặc dù ngành nghề hot với mức lương cao. Lý giải cho điều này nằm ở việc sinh viên ra trường thiếu kiến thức thực chiến, khả năng thực hành kém, phải đào tạo lại thậm chí là phải học lại từ đầu. Do đó, mức lương của các bạn chỉ được trả như một thợ học việc. 

Đã đến lúc cách học truyền thống phải thay đổi. Thay vì chỉ chăm chú vào phần lý thuyết, các bạn phải thực hành nhiều hơn, ứng dụng kiến thức đã học vào thực tiễn ngay khi còn đang đi học. Nếu có cơ hội hãy đi thực tập doanh nghiệp ngay khi có thể. Đó cũng là cách Bachkhoa-Aptech định hướng cho các bạn học viên chuyên ngành Quản trị mạng và Bảo mật Quốc tế. Thay vì chỉ học lý thuyết suông, nhà trường đầu tư một phòng Net để các bạn có thể tự mày mò, ứng dụng và trải nghiệm kiến thức. Với khả năng làm việc thực tế nhiều học viên được doanh nghiệp đặt hàng và săn đón ngay khi còn đang đi học. Nhiều bạn vừa ra trường đã giữ chức vụ cao như team leader, trưởng phòng của các công ty,... 

Bên cạnh những khóa học chuyên sâu 2,5 năm, Bachkhoa-Aptech cũng có những khóa học ngắn hạn kéo dài từ 3-6 tháng dành cho sinh viên công nghệ, người đang làm trong ngành quản trị mạng, quản trị hệ thống và người muốn chuyển đổi ngành nghề. 

Tham khảo thêm tại: 

Khóa học Python Developer For Network Engineer: https://bit.ly/3rnyYHg

Khóa học Python Developer For System Engineer: https://bit.ly/3odHvuj

Khóa học MCSA Plus: https://bit.ly/2ZLw8QR

Khóa học CEH+ PRO: https://bit.ly/3EfC043

Khóa học Linux - DevOps Engineer: https://bit.ly/3I8UvJE

HỆ THỐNG ĐÀO TẠO CNTT QUỐC TẾ BACHKHOA-APTECH

📌 Địa chỉ: Tòa nhà HTC, 236B & 250 Hoàng Quốc Việt, Bắc Từ Liêm, Hà Nội

📌 Hotline: 0968 27 6996

   0968276996
< wire:id="aGEq6Lyt0TlsnkxzbxKQ" wire:initial-data="{"fingerprint":{"id":"aGEq6Lyt0TlsnkxzbxKQ","name":"embedded.footer","locale":"vn"},"effects":{"listeners":[]},"serverMemo":{"children":[],"errors":[],"htmlHash":"26380eb1","data":[],"dataMeta":[],"checksum":"012f7fb1a646d94a1bcbc3518bf8f2d4f19cb3e122ddb2c34096dec15e51bbac"}}"!-- Messenger Plugin chat Code -->