Меню
Контакты
109147, Москва, ул.Воронцовская, 35Б, корп.2 офис.11, 4 этаж
Пн-Пт: с 9-00 до 17-00   Сб-вс: выходной
Интернет-магазин
сетевого оборудования
Москва +7 (495) 103-41-03 +7 (915) 420-28-94
109147, Москва, ул.Воронцовская, 35Б, корп.2 офис.11, 4 этаж
Пн-Пт: с 9-00 до 17-00   Сб-вс: выходной
Заказать звонок

Резервная копия конфигурации Mikrotik Routerboard (3/3)

 27 Июл 2011    MikroTik, Практика и программирование MikroTik

 

Воспользовавшись опытом предыдущих статей о том, как выполнить резервное копирование в Mikrotik Routerboard с последующим получением файла резервной копии с Mikrotik Routerboard по FTP-протоколу, добавим возможности языка программирования Python и напишем скрипт, который будет создавать, получать и удалять файл резервной копии Mikrotik Routerboard.

 

Готовый скрипт:

#!/usr/bin/python

# -*- coding: utf-8 -*-

import time

import datetime

from paramiko import SSHClient

from paramiko import AutoAddPolicy

import subprocess

mip = "192.168.4.253"

mlogin = "ubnt"

mpassword = "ubnt"

now_date = datetime.date.today()

ssh = SSHClient()

ssh.set_missing_host_key_policy(AutoAddPolicy())

ssh.connect(mip, port=22, username=mlogin, password=mpassword)

cmd = "/system backup save name=%s" % (now_date)

ssh.exec_command(cmd)

ssh.close()

ftp_query = "ftp://%s:%s@%s/%s.backup" % (mlogin, mpassword, mip, now_date)

ftp_get = subprocess.call(["wget", ftp_query])

time.sleep(2)

ssh = SSHClient()

ssh.set_missing_host_key_policy(AutoAddPolicy())

ssh.connect(mip, port=22, username=mlogin, password=mpassword)

cmd = "/file remove [find name=%s.backup]" % (now_date)

ssh.exec_command(cmd)

ssh.close()

Пояснения к скрипту:

Подключение необходимых модулей:

import time 

import datetime

from paramiko import SSHClient

from paramiko import AutoAddPolicy

import subprocess

Данные для подключения к оборудованию:

mip = "192.168.4.253" 

mlogin = "ubnt"

mpassword = "ubnt"

Определяем текущую дату. Значение заносим в переменную now_date:

now_date = datetime.date.today()

Работа с Mikrotik Routerboard по SSH протоколу:

ssh = SSHClient() 

ssh.set_missing_host_key_policy(AutoAddPolicy())

ssh.connect(mip, port=22, username=mlogin, password=mpassword) - подставляем значения для соединения с Mikrotik Routerboard;

cmd = "/system backup save name=%s" % (now_date) - создаем запрос для создания файла резервной копии (именем файла будет текущая дата).

ssh.exec_command(cmd) - выполняем запрос;

ssh.close()

Создаем переменную, в которой будет храниться запрос к FTP-серверу  Mikrotik Routerboard:

ftp_query = "ftp://%s:%s@%s/%s.backup" % (mlogin, mpassword, mip, now_date)

Получаем файл резервной копии Mikrotik Routerboard:

ftp_get = subprocess.call(["wget", ftp_query])

Выполняем задержку, чтобы скрипт успел создать и скопировать файл перед его удалением с Mikrotik Routerboard:

time.sleep(2)

Удаляем файл резервной копии с Mikrotik Routerboard:

ssh = SSHClient() 

ssh.set_missing_host_key_policy(AutoAddPolicy())

ssh.connect(mip, port=22, username=mlogin, password=mpassword)

cmd = "/file remove [find name=%s.backup]" % (now_date)

ssh.exec_command(cmd)

ssh.close()

 

 Директория, в которой находится скрипт

Рис.1. Директория, в которой находится скрипт.

 

Как мы видим, директория, в которой находится скрипт, пуста. Запустим его, чтобы убедиться в его работоспособности.

 

 Напишем скрипт, который будет создавать, получать и удалять файл резервной копии Mikrotik Routerboard

Рис.2. Работа скрипта.

 

 Напишем скрипт, который будет создавать, получать и удалять файл резервной копии Mikrotik Routerboard

Рис.3. Результат работы скрипта.

 

В директории появился еще один файл.

 

 Mikrotik Routerboard раздел Files

Рис.4. Mikrotik Routerboard раздел Files.

 

На устройстве Mikrotik Routerboard этого файла нет. Следовательно, скрипт выполнил свою работу правильно: создал файл, скопировал его и удалил, чтобы не занимать память в роутере.

 

Евгений Рудченко специально для ASP24.