Как обычно бывает, думаешь что у тебя есть резервная копия конфигурации, ведь совсем недавно доработал свой материал по осуществлению бекапирования конфигурации Mikrotik с уведомление о завершении на E-mail. Да, отчеты о завершении приходят, бекапы конфигов при заходе по адресу месторасположения присутствует, вроде как все хорошо. Но вот в чем загвоздка, у меня в напарниках новый человек и как я уже понял, что он даже на минимальном уровне не разбирается в них, коллега которого я попросил выйти ему помочь в свой выходной столкнулся с тем, что под Windows 7 при обращении к файловому ресурсу на котором лежат бекапы не читаемы в привычном исполнении. В виде файлов в имени которых почему-то смесь букв (т. е. Абракадабра), т.е нечитаемы, лишь по расширению и дате изменения видно, что бекапы все же успешно создаются.
При более внимательном осмотре (пока помощь Google не нужна, лучше попытаться собрать самим всю имеющуюся информацию) файла под рабочем системой (Ubuntu 12.04.5 Desktop amd64 Gnome Classic) имя файла в правильном виде и из него понятно откуда он и на какую дату и время, а также присылаемый файл вложением такой же.
Пример файла из вложения: Router_Balashiha_jul-20-2016_11:12:35.backup 180КБ
А если подключиться к файловому хранилищу, у меня оно построено (контора денег не дает на что-то более серьезное) на Synology DS414 по SSH, то:
aollo@system:~$ ssh -l admin 10.9.9.162
admin@10.9.9.162’s password:
BusyBox v1.16.1 (2015-11-12 17:57:27 CST) built-in shell (ash)
а вот через Bash имена файлов видно в нормальном формате:
fileserverbal> ls /volume1/MikrotikBackup/*_jul*.backup -t | head -n 10
/volume1/MikrotikBackup/Router_Balashiha_jul-20-2016_11:12:36.backup
/volume1/MikrotikBackup/SXT-Priemka_jul-20-2016_06:55:24.backup
/volume1/MikrotikBackup/Spartak-POE_jul-20-2016_01:00:00.backup
/volume1/MikrotikBackup/Router_Balashiha_jul-19-2016_18:44:20.backup
/volume1/MikrotikBackup/Router_Balashiha_jul-19-2016_1w.backup
/volume1/MikrotikBackup/switchsparta3_jul-19-2016_1w.backup
/volume1/MikrotikBackup/switchsparta4_jul-19-2016_1w.backup
/volume1/MikrotikBackup/switchsparta2_jul-19-2016_1w.backup
/volume1/MikrotikBackup/Switchsparta1_jul-19-2016_1w.backup
/volume1/MikrotikBackup/switchbal4_jul-19-2016_12:43:01.backup
Такое ощущение, что Windows не понимает в имени файла символ двоеточия, в общем по этой заметке: где я добавил возможность сохранять бекап и на почту хорошо отрабатывает только второе, а первое складирование на FTP работает только под Ubuntu корректно при чтении имен файлов.
Странно если обратиться из Windows к FTP ресурсу, то все имена файлов корректны:
- ftp://10.9.9.162
- Login: ekzorchik
- Pass: 712mbddr@
, а вот через SMB: \\10.9.9.162\MikrotikBackup в именовании файлов кракозяблы.
Значит нужно переработать создание резервных копий с Mikrotik, еще раз поручать им это дело я уже не могу ручаться, а потому я беру станцию на которой у меня крутится DokuWiki (в Вашем случае это может быть любая Ubuntu система) и вот с нее уже буду запускать скрипт который пробежится по каждому Mikrotik‘у, сделает бекап и положит его на файловое хранилище Synology DS414:
aollo@srv-dokuwiki:~$ sudo apt-get install cifs tree -y
aollo@srv-dokuwiki:~$ sudo mkdir /media/file
aollo@srv-dokuwiki:~$ sudo nano /etc/fstab
//10.9.9.162/MikrotikBackup /media/file cifs iocharset=utf8,uid=1000,gid=1000,username=aollo,domain=polygon.local,password=712mbddr@ 0 0
, где
uid=1000
gid=1000 — это из текущей системы srv-dokuwiki полученные путем ввода команды:
aollo@srv-dokuwiki:~$ id
uid=1000(aollo) gid=1000(aollo) groups=1000(aollo),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),110(lpadmin),111(sambashare)
aollo@srv-dokuwiki:~$ sudo mount -a
aollo@srv-dokuwiki:~$ df -h | grep file
//10.9.9.162/MikrotikBackup 11T 4.6T 6.4T 42% /media/file
Теперь нужно для каждого микротика настроить авторизацию по публичному ключу с данного сервера (Ubuntu 14.04.4 Server amd64), чтобы этот пункт сделать следует вооружиться вот этой вот заметкой.
После того, как шаги авторизации с данной Ubuntu системы проделаны и проверены, уже можно переходить к составлению вот такого вот скрипта.
Вношу в файл IP адреса всех Микротиков бекап которых мне нужно делать:
aollo@srv-dokuwiki:~$ nano mlist
10.9.9.104
10.9.9.72
10.9.9.63
и т.д
aollo@srv-dokuwiki:~$ mkdir /media/file/BALASHIHA
aollo@srv-dokuwiki:~$ mkdir /media/file/SPARTA
aollo@srv-dokuwiki:~$ sudo nano /etc/script/bbackup
#!/bin/bash
mtlist=/home/aollo/blist
MTBACKUPDIR=/media/file
MTBACKUPUSER=admin
MTPATH=BALASHIHA
for device in `cat $mtlist`
do
# Create subdirectory for device if needed
if [ ! -d "$MTBACKUPDIR/$MTPATH/$device" ]; then
# Create the directory first
mkdir $MTBACKUPDIR/$MTPATH/$device
fi
# Execute backup via SSH
rscbackupfile=$device.`date +%d%m%y_%H_%M_%S`
ssh $MTBACKUPUSER@$device export file=$rscbackupfile
# Fetch the backup file
sleep 5
scp $MTBACKUPUSER@$device:/$rscbackupfile.rsc $MTBACKUPDIR/$MTPATH/$device/
# Delete the backup file from the MT
sleep 5
ssh $MTBACKUPUSER@$device rm $rscbackupfile.rsc
sleep 5
#backup mikrotik full
backupfile=$device.`date +%d%m%y_%H_%M_%S`
ssh $MTBACKUPUSER@$device system backup save name=$backupfile
# Fetch the backup file
sleep 5
scp $MTBACKUPUSER@$device:/$backupfile.backup $MTBACKUPDIR/$MTPATH/$device/
# Delete the backup file from the MT
sleep 5
ssh $MTBACKUPUSER@$device rm $backupfile.backup
done
aollo@srv-dokuwiki:~$ sudo chown aollo:aollo /etc/script/bbackup
aollo@srv-dokuwiki:~$ sudo chmod +x /etc/script/bbackup
Запускаю полученный скрипт:
aollo@srv-dokuwiki:~$ /etc/script/bbackup
10.9.9.1.200716_15_55_44.rsc 100% 45KB 45.3KB/s 00:00
Configuration backup saved
10.9.9.1.200716_15_56_01.backup 100% 187KB 187.2KB/s 00:00
10.9.9.249.200716_15_56_12.rsc 100% 7920 7.7KB/s 00:00
Configuration backup saved
10.9.9.249.200716_15_56_39.backup 100% 60KB 59.7KB/s 00:00
10.9.9.79.200716_15_56_55.rsc 100% 6539 6.4KB/s 00:00
Configuration backup saved
10.9.9.79.200716_15_57_23.backup 100% 52KB 51.7KB/s 00:00
10.9.9.99.200716_15_57_37.rsc 100% 6460 6.3KB/s 00:00
и т. д.
А вот как выглядит структура каталога:
aollo@srv-dokuwiki:~$ tree /media/file/BALASHIHA/
/media/file/BALASHIHA/
├── 10.9.9.1
│ ├── 10.9.9.1.200716_15_55_44.rsc
│ └── 10.9.9.1.200716_15_56_01.backup
├── 10.9.9.249
│ ├── 10.9.9.249.200716_15_56_12.rsc
│ └── 10.9.9.249.200716_15_56_39.backup
├── 10.9.9.251
│ ├── 10.9.9.251.200716_15_58_18.rsc
│ └── 10.9.9.251.200716_15_58_40.backup
├── 10.9.9.41
│ ├── 10.9.9.41.200716_15_58_53.rsc
│ └── 10.9.9.41.200716_15_59_18.backup
├── 10.9.9.63
│ ├── 10.9.9.63.200716_16_00_08.rsc
│ └── 10.9.9.63.200716_16_00_27.backup
├── 10.9.9.64
│ ├── 10.9.9.64.200716_15_59_31.rsc
│ └── 10.9.9.64.200716_15_59_55.backup
├── 10.9.9.72
│ ├── 10.9.9.72.200716_16_00_39.rsc
│ └── 10.9.9.72.200716_16_00_58.backup
├── 10.9.9.79
│ ├── 10.9.9.79.200716_15_56_55.rsc
│ └── 10.9.9.79.200716_15_57_23.backup
└── 10.9.9.99
├── 10.9.9.99.200716_15_57_37.rsc
└── 10.9.9.99.200716_15_58_04.backup
9 directories, 18 files
Отлично теперь данный скрипт помещаю в планировщик и назначаю время в которое мне бы хотелось видеть бекапы, допустим как было ранее это 23.30 каждого дня:
aollo@srv-dokuwiki:~$ crontab -e
30 23 * * * /etc/script/bbackup > /dev/null
по аналогии настраиваю и для второй площадке, то не забываю подредактировать переменную в скрипте MTPATH=BALASHIHA на MTPATH=SPARTA и mtlist.
Что еще могу сказать, теперь уже по прошествии недели вижу практический результат по созданию резервных копий со всех устройств Mikrotik которые у меня есть в пользовании, а не то что было ранее, может этот Mikrotik завис и скрипт не отработает (у меня такое уже было и не раз). Короче, хоть полностью весь скрипт от и до не моя работа, а некая его часть найдена в интернете, а моя лишь некоторые дополнения ориентированные на мой удел. Главное что данной заметкой я смог объединить несколько систем к единому знаменателю в виде центровой системы Ubuntu как мне и удобно. Цель заметки и практический потенциал виден мне на 100%, даже если у Вас уже есть система и сервис, то если уверены в накладываемых дополнительных действиях то ничего страшного не случиться. Я люблю все настраивать от и до и только сам, так я уверен. А пока я прощаюсь, с уважением автор блога — ekzorchik.