Jeden z prostszych skryptów z zadeklarowaną nazwą pliku
System -> Scripts -> [+]
Name = "autobackup"
Source
: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)
/system backup save name=($sfname.".backup")
/export file=($sfname.".rsc")
Następnie należy dodać skrypt do Schedulera
System -> Scheduler -> [+]
Name = "autobackup" Interval ="1d 00:00:00" On Event /system script run autobackup
Jeśli robimy backup na dysku zewnętrznym (zalecane) to należy zmienić scieżkę do pliku
:local sfname ("/disk1/".$fname)
Poniżej znajduje się pełny skrypt ze zmianą formatu daty i wysyłką backupu na FTP. Na końcu jest też skrypt do usuwania plików po wysłaniu ale został zakomentowany.
# ftp server
:local ftphost "ftp.domena.pl"
:local ftpuser "user"
:local ftppassword "pass"
:local ftppath "/backup"
# months array
:local months ("jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec");
# get time
:local ts [/system clock get time]
:set ts ([:pick $ts 0 2].[:pick $ts 3 5].[:pick $ts 6 8])
# get Date
:local ds [/system clock get date]
# convert name of month to number
:local month [ :pick $ds 0 3 ];
:local mm ([ :find $months $month -1 ] + 1);
:if ($mm < 10) do={ :set mm ("0" . $mm); }
# set $ds to format YYYY-MM-DD
:set ds ([:pick $ds 7 11] . $mm . [:pick $ds 4 6])
# file name for system backup - file name will be BCKP-servername-date-time.backup
:local fname1 ([/system identity get name]."-".$ds."-".$ts.".backup")
:local sfname1 ("/disk1/".$fname1)
# file name for config export - file name will be BCKP-servername-date-time.rsc
:local fname2 ([/system identity get name]."-".$ds."-".$ts.".rsc")
:local sfname2 ("/disk1/".$fname2)
# backup the configuration
/system backup save name=$sfname1
:log info message="System backup finished (1/2).";
/export file=$sfname2
:log info message="Config export finished (2/2)."
# upload the system backup
:log info message="Uploading system backup (1/2)."
/tool fetch address="$ftphost" src-path=$sfname1 user="$ftpuser" mode=ftp password="$ftppassword" dst-path="$ftppath/$fname1" upload=yes
# upload the configuration export
:log info message="Uploading configuration export (2/2)."
/tool fetch address="$ftphost" src-path=$sfname2 user="$ftpuser" mode=ftp password="$ftppassword" dst-path="$ftppath/$fname2" upload=yes
# delay time to finish the upload - increase it if your backup file is big
#:delay 30s;
# find file name start with BCKP- then remove
#:foreach i in=[/file find] do={ :if ([:typeof [:find [/file get $i name] "BCKP-"]]!="nil") do={/file remove $i}; }
#:log info message="Configuration backup finished.";
:local mname ([/system identity get name]." - Backup - ".$ds)
:local mailTo "email@domena.pl"
:local emailbody ("Plik z backupem: ".$sfname1."\r\nPlik z exportem: ".$sfname2)
/tool e-mail send subject=$mname to=$mailTo body=$emailbody