MikroTik automatische Backups per Email senden


dieses Script:

  • erstellt ein Backup der Konfiguration (textfile, .rsc)
  • erstellt ein Backup des Systems (binärdatei, .backup)
  • verschickt die beiden Backup-Dateien per Email
  • wird automatisch im gewünschten Intervall über den internen Scheduler ausgeführt

In der WinBox → System → Scripts, erstellen wir ein neues backup2email Script.

# Mikrotik Backup Script, getestet mit 6.39.x, 6.40.x
# LAST MODIFIED: 08.08.2017
 
# Logeintrag erstellen
:log warning "backup2email: started ..."

# Variablen setzen
:local configbackup CONFIG_backup.rsc
:local systembackup SYSTEM_backup.backup
:local backupfiles
:set backupfiles "CONFIG_backup.rsc,SYSTEM_backup.backup"
:local identity ([/system identity get name])
:local rosver ([/system resource get version])
:local time ([/system clock get time])
:local date ([/system clock get date])
:local adminemail emailempfänger@domain.tld
 
# SMTP Serverkonfiguration des Providers über den wir versenden
:local mailuser emailabsender@domain.tld
:local mailfrom emailabsender@domain.tld
:local mailpass passwort für mailuser
:local mailport mailserverport
:local mailserver
:set mailserver [:resolve "mailserver.provider.tld"];
 
# Emaileinstellungen setzen (oder manuell in WinBox -> Tools -> Email)
/tool e-mail set address=$mailserver port=$mailport start-tls=yes from=$mailfrom user=$mailuser password=$mailpass

# Logeintrag erstellen
:log warning "backup2email: creating new up to date backup files ..."

# Backups erstellen
/system backup save name=$systembackup dont-encrypt=yes
/export file=$configbackup

# Logeintrag erstellen
:log warning "backup2email: pausing for 10s so it can complete creating backup. (for slower systems)"
:delay 10s

:log warning "backup2email: sending backup files via email ..."
 
# Die Backup-Dateien per email senden (** bis RouterOS 6.39.x **)
#/tool e-mail send to=$adminemail subject="$date $time $identity backup2email config" body="$identity, RouterOS $rosver - $configbackup" file=$configbackup start-tls=yes
#/tool e-mail send to=$adminemail subject="$date $time $identity backup2email system" body="$identity, RouterOS $rosver - $systembackup" file=$systembackup start-tls=yes

# Die Backup-Dateien per email senden (** ab RouterOS 6.40.x, multiple attachments supported **)
/tool e-mail send to=$adminemail subject="$date $time $identity backup2email" body="$identity, RouterOS $rosver - $backupfiles" file=$backupfiles start-tls=yes

# Logeintrag erstellen
:log warning "backup2email: sleeping for 10 seconds so email can be delivered ..."
:delay 10s
 
# Die erstellten Backup-Dateien wieder löschen
/file remove $configbackup
/file remove $systembackup
 
# Logeintrag erstellen
:log warning "backup2email: finished and backup files removed, check your inbox!"

# END

Das Script manuell testen ob auch alles wie gewünscht und fehlerfrei funktioniert!!

/system script run backup2email

Alle 14 Tage soll das backup2email Script automatisch ausgeführt werden, das erledigt ein neuer Scheduler Eintrag.

/system scheduler add interval=14d name=backup2email on-event="/system script run backup2email" policy=ftp,reboot,read,write,policy,test,winbox,password,sniff,sensitive,api start-date=aug/01/2017 start-time=04:00:00

Bei Fehlern, wie z.B. invalid TO address, aktivieren wir verbose logging für email. Damit sieht man im log eher wo es klemmt.

/system logging add topics=e-mail,debug action=memory

Danke an Syed für die Vorlage.

2 Gedanken zu “MikroTik automatische Backups per Email senden”

Schreibe einen Kommentar