Бэкап на FTP срабатывает через раз

Здесь выкладываем скрипты
Правила форума
Уважаемые Пользователи форума, обратите внимание!
Ни при каких обстоятельствах, Администрация форума, не несёт ответственности за какой-либо, прямой или косвенный, ущерб причиненный в результате использования материалов, взятых на этом Сайте или на любом другом сайте, на который имеется гиперссылка с данного Сайта. Возникновение неисправностей, потерю программ или данных в Ваших устройствах, даже если Администрация будет явно поставлена в известность о возможности такого ущерба.
Просим Вас быть предельно осторожными и внимательными, в использовании материалов раздела. Учитывать не только Ваши пожелания, но и границы возможностей вашего оборудования.
Ответить
Stas788
Сообщения: 66
Зарегистрирован: 18 окт 2017, 01:43

Здравствуйте,
Нашел в сети скрипт бекапа на ФТП - работает, но почему-то через раз. Задержку для аплоада увеличивал несколько раз, но не помогает. Как сделать, чтобы бэкап выполнялся обязательно? К примеру у меня 50 точек и все пятьдесят должны бэкапиться, а не только часть из них. Причем нужен бэкап как в этом скрипте и конфиг и бинарник.

/system scheduler
add interval=1w name=time_to_backup on-event="/system script run backup_on_ftp" \
policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \
start-date=sep/12/2018 start-time=10:00:00
/system script
add name=backup_on_ftp owner=syadmin policy=\
ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\
\_automated backup export ftp\r\
\n# ftp configuration\r\
\n:local ftphost \"ftp.ru\"\r\
\n:local ftpuser \"ftp_Users\"\r\
\n:local ftppassword \"pwd\"\r\
\n:local ftppath \"/FTP/backup_conf_mikrotik/\"\r\
\n# months array\r\
\n:local months (\"jan\",\"feb\",\"mar\",\"apr\",\"may\",\"jun\",\"jul\",\
\"aug\",\"sep\",\"oct\",\"nov\",\"dec\");\r\
\n# get time\r\
\n:local ts [/system clock get time]\r\
\n:set ts ([:pick \$ts 0 2].[:pick \$ts 3 5].[:pick \$ts 6 8])\r\
\n# get Date\r\
\n:local ds [/system clock get date]\r\
\n# convert name of month to number\r\
\n:local month [ :pick \$ds 0 3 ];\r\
\n:local mm ([ :find \$months \$month -1 ] + 1);\r\
\n:if (\$mm < 10) do={ :set mm (\"0\" . \$mm); }\r\
\n# set \$ds to format YYYY-MM-DD\r\
\n:set ds ([:pick \$ds 7 11] . \$mm . [:pick \$ds 4 6])\r\
\n# file name for system backup - file name will be Mikrotik-servername-da\
te-time.backup\r\
\n:local fname1 (\"/Mikrotik-\".[/system identity get name].\"-\".\$ds.\"-\
\".\$ts.\".backup\")\r\
\n# file name for config export - file name will be Mikrotik-servername-da\
te-time.rsc\r\
\n:local fname2 (\"/Mikrotik-\".[/system identity get name].\"-\".\$ds.\"-\
\".\$ts.\".rsc\")\r\
\n# backup the data\r\
\n/system backup save name=\$fname1 password=123\r\
\n:log info message=\"System backup finished (1/2).\";\r\
\n/export compact file=\$fname2\r\
\n:log info message=\"Config export finished (2/2).\"\r\
\n# upload the user manager backup\r\
\n:log info message=\"Uploading system backup (1/2).\"\r\
\n/tool fetch address=\"\$ftphost\" src-path=\$fname1 user=\"\$ftpuser\" m\
ode=ftp password=\"\$ftppassword\" dst-path=\"\$ftppath/\$fname1\" upload=\
yes\r\
\n# upload the config export\r\
\n:log info message=\"Uploading config export (2/2).\"\r\
\n/tool fetch address=\"\$ftphost\" src-path=\$fname2 user=\"\$ftpuser\" m\
ode=ftp password=\"\$ftppassword\" dst-path=\"\$ftppath/\$fname2\" upload=\
yes\r\
\n# delay time to finish the upload - increase it if your backup file is b\
ig\r\
\n:delay 120s;\r\
\n# find file name start with Mikrotik- then remove\r\
\n:foreach i in=[/file find] do={ :if ([:typeof [:find [/file get \$i name\
] \"Mikrotik-\"]]!=\"nil\") do={/file remove \$i}; }\r\
\n:log info message=\"Configuration backup finished.\";"


Stas788
Сообщения: 66
Зарегистрирован: 18 окт 2017, 01:43

еще:
почему-то при восстановлении из бэкапа интерфейс wifi вываливается из бриджа и становится неактивным со сброшенными настройками. Приходится включить в бридж и активировать интерфейс и настраивать заново.


Stas788
Сообщения: 66
Зарегистрирован: 18 окт 2017, 01:43

и еще проблема:
не могу отправить через putty скрипт. Текст скрипта почему-то деформируется и не принимается - якобы из-за ошибок. А если сделать аплоад файла и импортировать вручную, то все работает...


Stas788
Сообщения: 66
Зарегистрирован: 18 окт 2017, 01:43

попробвал другой скрипт - тоже самое, некоторые микротики не могут отправить бэкап - не могу понять в чем причина, при этом если повторить комманду отдельно на микротике, то скрипт отрабатывается нормально. Возможно это из-за одновременного обращения 50-ти микротиков к ftp серверу.... Помогите разобраться....

/system scheduler
add interval=1w name=time_to_backup_anders on-event="/system script run backup_on_ftp_anders" \
policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \
start-date=sep/12/2018 start-time=10:15:00
/system script
add dont-require-permissions=no name=backup_on_ftp_anders owner=syadmin policy=\
ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\
\_Backup to FTP-server\r\
\n# Version 2017-04-02_17-55-50\r\
\n# RouterOS v6\r\
\n# https://vikilpet.wordpress.com/\r\
\n \r\
\n#+++++++++++++++ SETTINGS +++++++++++++++\r\
\n# device folder on FTP server:\r\
\nlocal BackupFolder \"/backup_conf_mikrotik/\"\r\
\nlocal BackupServer \"ftp.ru\"\r\
\nlocal BackupServerPort \"21\"\r\
\nlocal BackupFTPUser \"Users\"\r\
\nlocal BackupFTPPass \"we!\"\r\
\n#----------------------------- SETTINGS -----------------------------\r\
\n \r\
\n# Backup and export:\r\
\n/system backup save name=backup\r\
\n/export file=export\r\
\n \r\
\n# Get formatted time:\r\
\nlocal TS [/system clock get time]\r\
\nset TS ([pick \$TS 0 2].\"-\".[pick \$TS 3 5].\"-\".[pick \$TS 6 8])\r\
\n \r\
\n# Get formatted date:\r\
\nlocal MonthArray (\"vikilpet\", \"jan\", \"feb\", \"mar\", \"apr\", \"ma\
y\", \"jun\", \"jul\", \"aug\", \"sep\", \"oct\", \"nov\", \"dec\")\r\
\nlocal DS [/system clock get date]\r\
\nlocal DM [find \$MonthArray [pick \$DS 0 3]]\r\
\n \r\
\n# Add a leading zero to single digit month:\r\
\nif ([len \$DM] = 1) do {set DM (\"0\".\$DM)}\r\
\nset DS ([pick \$DS 7 11].\"-\".\$DM.\"-\".[pick \$DS 4 6])\r\
\n \r\
\n# Generate filename for backup:\r\
\nlocal BackupFileName (\$BackupFolder.[/system identity get name].\"_\".\
\$DS.\"_\".\$TS.\".backup\")\r\
\n \r\
\n# Send backup to FTP:\r\
\n/tool fetch address=\$BackupServer port=\$BackupServerPort src-path=back\
up.backup \\\r\
\nuser=\$BackupFTPUser mode=ftp password=\$BackupFTPPass dst-path=\$Backup\
FileName upload=yes\r\
\n \r\
\n# Generate filename for export:\r\
\nset BackupFileName (\$BackupFolder.[/system identity get name].\"_\".\$D\
S.\"_\".\$TS.\".rsc\")\r\
\n \r\
\n# Send export to FTP:\r\
\n/tool fetch address=\$BackupServer port=\$BackupServerPort src-path=expo\
rt.rsc \\\r\
\nuser=\$BackupFTPUser mode=ftp password=\$BackupFTPPass dst-path=\$Backup\
FileName upload=yes"


Sertik
Сообщения: 1598
Зарегистрирован: 15 сен 2017, 09:03

задержка для upload то а Вас есть, а вот где у Вас задержки для создания Бэкап-файлов ? Вы думаете они создаются мгновенно ?
Вы пытаетесь уже отправить файлы бэкапов по почте когда они еще не созданы.

В скрипте нужно вставить задержки после создания бинарной версии Бэкапа и особенно после создания скриптовой версии (она делается намного дольше).
Сначала посмотрите сколько времени требуется на их создание из терминала скажем - на разных Микротиках это будут разные времена, тем более их у Вас 50 !

думаю в этом проблема.


фрагменты скриптов, готовые работы, статьи, полезные приемы, ссылки
viewtopic.php?f=14&t=13947
Stas788
Сообщения: 66
Зарегистрирован: 18 окт 2017, 01:43

Sertik писал(а): 30 ноя 2018, 10:01 задержка для upload то а Вас есть, а вот где у Вас задержки для создания Бэкап-файлов ? Вы думаете они создаются мгновенно ?
Вы пытаетесь уже отправить файлы бэкапов по почте когда они еще не созданы.

В скрипте нужно вставить задержки после создания бинарной версии Бэкапа и особенно после создания скриптовой версии (она делается намного дольше).
Сначала посмотрите сколько времени требуется на их создание из терминала скажем - на разных Микротиках это будут разные времена, тем более их у Вас 50 !

думаю в этом проблема.
Спасибо, буду проверять с задержкой


Ответить