Бэкап на FTP срабатывает через раз
Добавлено: 29 ноя 2018, 03:42
Здравствуйте,
Нашел в сети скрипт бекапа на ФТП - работает, но почему-то через раз. Задержку для аплоада увеличивал несколько раз, но не помогает. Как сделать, чтобы бэкап выполнялся обязательно? К примеру у меня 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.\";"
Нашел в сети скрипт бекапа на ФТП - работает, но почему-то через раз. Задержку для аплоада увеличивал несколько раз, но не помогает. Как сделать, чтобы бэкап выполнялся обязательно? К примеру у меня 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.\";"