Skip to content

Instantly share code, notes, and snippets.

What would you like to do?
Automatic FTP backup script for Mikrotik RouterOS
:local saveUserDB true
:local saveSysBackup true
:local encryptSysBackup false
: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 ($saveUserDB) do={
/tool user-manager database save name=($sfname.".umb")
:log info message="User Manager DB Backup Finished"
: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"
Copy link

hamslicejumbomice commented Jun 28, 2018

How does this script work exactly?

Copy link

pcgame1366 commented Dec 14, 2018

The recovery method does not work with this command

terminal ===== tool user-manager database save name = namebackup
Please tell us the best way to recover my user information because the above code does not answer
با سلام اسکریپت بالا جواب میدهد ولی موقع ریکاوری با دستور در ترمینال به مشکل بر خوردم

Copy link

emsebi commented Oct 21, 2019

ریکاوری ارتباطی به اسکریپت نداره / نسخه میکروتیک زمان گرفتن خروجی و موقع ریکاوری باید یکی باشه

Copy link

beeyev commented Apr 26, 2020

This script provides an ability to create Mikrotik's daily backups to email. You can also enable automatic RouterOS upgrade or leave only notifications about new firmware versions.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment