Сбор конфигов скриптом. Проблема на версиях 5.2+

Обсуждение оборудования и его настройки
Ответить
zvaol
Сообщения: 25
Зарегистрирован: 09 апр 2012, 17:58

Имеется несколько разных моделей Микротиков с разными версиями ПО.
Конфиги собираются с linux-сервера скриптом вида:
ssh $USER@$IP "/export compact" > $NAME.rsc
Если этот скрипт запустить вручную - то все в порядке, конфиги собираются со всех Микротиков.
Если из-под крона - то начиная с версии ПО 5.21 конфиги не собираются - файл получается пустой.
С версиями 5.13,5.14 - все в порядке.
Может, кто сталкивался? Есть мнения?
П.С. иногда, впрочем, файл получается не пустой, а только первые несколько строчек конфига...


Аватара пользователя
simpl3x
Модератор
Сообщения: 1532
Зарегистрирован: 19 апр 2012, 14:03

предлагаю вам запихнуть в шедулер микротика необходимые команды типо export file=blabla, а потом wget'ом тащить их себе на сервер через ftp.


iSupport
Сообщения: 2359
Зарегистрирован: 06 фев 2011, 20:44

я делал так

микротик в 4-00 утра собирает себе конфиг и сам его запихивает на фтп

Скрипт не мой, где-то нарыл и немного переписал, автора не помню

Код: Выделить всё

:global ts [/system clock get time]
:set ts ([:pick $ts 0 2].[:pick $ts 3 5].[:pick $ts 6 8])
# Get Date
:global ds [/system clock get date]
:set ds ([:pick $ds 7 11].[:pick $ds 0 3].[:pick $ds 4 6])
# This line to generate the file name for user manager backup - file name will be UMDB- ServerName? - Date? - Time?
:global fname ("/OKS-".[/system identity get name]."-".$ds."-".$ts.".umb")
:global fpath ("/Volume_1/mtbackup/" .$fname)
log info $fpath
# This line to generate the file name for System backup - file name will be UMDB- ServerName? - Date? - Time?
:global fname1 ("/OKS-".[/system identity get name]."-".$ds."-".$ts.".backup")
:global fpath1 ("/Volume_1/mtbackup/".$fname1)
# all above is workaround to get unique $filename=UserManagerDB  - $filename1=System
/tool user-manager database save name=$fname
:log info message=UserManagerBackupFinished;
/system backup save name=$fname1
:log info message=SystemBackupFinished;
# Upload the UserManagerDB Backup to External FTP - change address to your ftp server + user + pass
/tool fetch address=10.x.x.x src-path=$fname user=mtxxxxxx mode=ftp password=paxxxxxx dst-path=$fpath upload=yes
# Upload the System Backup to External FTP - change address to your ftp server + user + pass
:delay 5s;
/tool fetch address=xxxxxx src-path=$fname1 user=xxxxxx mode=ftp password=xxxxxxxxxxxxx dst-path=$fpath1 upload=yes
# Delay time to finish the upload - increase it if your backup file is big
:delay 5s;
# Find file name start with UMDB- then remove
#:foreach i in=[/file find] do={:if ([:typeof [:find [/file get $i name] "UMDB-"]]!="nil") do={/file remove $i}}
:log info message=UserMangerBackup-SystemBackup-TempRemoved;
:log info message=UserManger-SystemBackup2CentOS-Finished;



Граждане, сколько раз просил =) чем понятнее и точнее сформулирован вопрос - тем понятнее и точнее будет на него ответ.
Я просматриваю ВСЕ темы форума и стараюсь помочь в каждой из них
Поэтому, НА ЛС отвечаю в последнюю очередь
zvaol
Сообщения: 25
Зарегистрирован: 09 апр 2012, 17:58

Спасибо за Ваши ответы!
Пока принял версию simpl3x`a с тем отличием, что все команды - с сервера, т.к. изначально хотелось уйти от настройки бекапа на каждом микротике.
Скрипт пришел к виду:

Код: Выделить всё

ssh $USER@$IP "/export compact file=$DATE-$NAME.rsc"
sleep 10
wget --ftp-user=$USER --ftp-password=$PASSWORD ftp://$IP/$DATE-$NAME.rsc
ssh $USER@$IP "/file remove [find name~\"$DATE\"]"

"спим" 10 сек, т.к. конфиг собирается в файл не мнгновенно
тесты прошел нормально, посмотрим как будет дальше


Ответить