Mikrotik backup на FTP
16.09.2021
Mikrotik backup на FTP
Создайте скрипт в /system script
назовем его ftpbackup и выставим нужные права — по умолчанию права — policy=read,write,policy,test,password,sensitive
поменяйте переменные на свои — ftpuse , ftppass и ftpserver в скрипте и поставьте в планировщик:
СКРИПТ:
2. Далее выполните (создадите планировщик) параметр interval выставлен в одну неделю (1w), можно поменять на 1d или еще меньше:
/system scheduler add disabled=no interval=1w name=scheduledbackup1w on-event=ftpbackup
назовем его ftpbackup и выставим нужные права — по умолчанию права — policy=read,write,policy,test,password,sensitive
поменяйте переменные на свои — ftpuse , ftppass и ftpserver в скрипте и поставьте в планировщик:
СКРИПТ:
:local saveSysBackup true | |
:local encryptSysBackup true | |
:local saveRawExport true | |
:local FTPServer "ftpserver.tld" | |
:local FTPPort 21 | |
:local FTPUser "my-mikrotik" | |
:local FTPPass "SecurePassword" | |
:local ts [/system clock get time] | |
:set ts ([:pick $ts 0 2].[:pick $ts 3 5].[:pick $ts 6 8]) | |
:local ds [/system clock get date] | |
:set ds ([:pick $ds 7 11].[:pick $ds 0 3].[:pick $ds 4 6]) | |
:local fname ("BACKUP-".[/system identity get name]."-".$ds."-".$ts) | |
:local sfname ("/".$fname) | |
|
|
:if ($saveSysBackup) do={ | |
:if ($encryptSysBackup = true) do={ /system backup save name=($sfname.".backup") } | |
:if ($encryptSysBackup = false) do={ /system backup save dont-encrypt=yes name=($sfname.".backup") } | |
:log info message="System Backup Finished" | |
} | |
if ($saveRawExport) do={ | |
/export file=($sfname.".rsc") | |
:log info message="Raw configuration script export Finished" | |
} | |
:local backupFileName "" | |
:foreach backupFile in=[/file find] do={ | |
:set backupFileName ("/".[/file get $backupFile name]) | |
:if ([:typeof [:find $backupFileName $sfname]] != "nil") do={ | |
/tool fetch address=$FTPServer port=$FTPPort src-path=$backupFileName user=$FTPUser mode=ftp password=$FTPPass dst-path=$backupFileName upload=yes | |
} | |
} | |
:delay 5s | |
:foreach backupFile in=[/file find] do={ | |
:if ([:typeof [:find [/file get $backupFile name] "BACKUP-"]]!="nil") do={ | |
/file remove $backupFile | |
} | |
} | |
:log info message="Successfully removed Temporary Backup Files" | |
:log info message="Automatic Backup Completed Successfully" |
2. Далее выполните (создадите планировщик) параметр interval выставлен в одну неделю (1w), можно поменять на 1d или еще меньше:
/system scheduler add disabled=no interval=1w name=scheduledbackup1w on-event=ftpbackup
3. можете проверить работу скрипта, выполнив:
/system script run ftpbackup
На FTP должно появиться два файла с текущей датой.