- save the script and adjust ScriptName to the name you gave it
- set script policies
- tweak SystemIdentity, BackupName, BackupInterval, MailDestination, MailSubject and MailBody
- set MailBackupRunFromScheduler = false if you just want a one-time run
Code: Select all
# makes a config backup and sends it by mail
#
# If MailBackupRunFromScheduler isn't defined
# 1) programs a scheduled run
# 2) when the scheduled run ocurs it does a backup and sends it by mail
#
# Si MailBackupRunFromScheduler = false it does a backup and sends it by mail
# policy: read,write,test,policy,sensitive
# GLOBALS ---------------------------------------------------------------------
:global MailBackupRunFromScheduler;
# LOCALS ----------------------------------------------------------------------
:local ScriptName "mail-backup";
:local SystemIdentity [/system identity get name];
:local BackupName "$SystemIdentity";
:local BackupInterval [:totime "1d"];
:local MailDestination "my@mail.destinacion";
:local MailSubject "Backup $SystemIdentity $[/system clock get date] $[/system clock get time]";
:local MailBody "Backup attached";
# START ---------------------------------------------------------------------
:if ( $MailBackupRunFromScheduler = "scheduled" ) do={
:put "DEBUG: $ScriptName: programmed execution";
:log debug "$ScriptName: programmed execution";
:set MailBackupRunFromScheduler false;
};
:if ( $MailBackupRunFromScheduler != false ) do={
:put "DEBUG: $ScriptName: programming execution in $BackupInterval";
:log debug "$ScriptName: programming execution in $BackupInterval";
/system scheduler remove [find name=$ScriptName];
/system scheduler add \
name=$ScriptName \
on-event=":global MailBackupRunFromScheduler \"scheduled\"; /system script run $ScriptName;" \
interval=$BackupInterval \
start-date=[/system clock get date] \
start-time=[/system clock get time] \
policy=[:tostr [/system script get [find name=$ScriptName] policy ]] \
comment="backup mailer";
} else={
:put "DEBUG: $ScriptName: generating new backup in $SystemIdentity...";
:log debug "$ScriptName: generating new backup in $SystemIdentity...";
/file remove [find name="$BackupName.backup"];
:delay 5;
/system backup save name="$BackupName";
:delay 10;
:put "DEBUG: $ScriptName: emailing backup to $MailDestination...";
:log debug "$ScriptName: emailing backup to $MailDestination...";
/tool e-mail send file="$BackupName.backup" to="$MailDestination" subject="$MailSubject" body="$MailBody";
:set MailBackupRunFromScheduler true;
};