尽管ROS足够稳定,但我们仍然需要未雨绸缪。
编写获取时间的函数
备份文件名称中带有时间会更容易管理,ROS自带的获取时间函数返回的格式不适合用于备份文件名。因此需要对时间进行一些处理。
datetime_str
:local month {"jan"="01"; "feb"="02"; "mar"="03"; "apr"="04"; "may"="05"; "jun"="06"; "jul"="07"; "aug"="08"; "sep"="09"; "oct"="10"; "nov"="11"; "dec"="12"}
:local cdate ([/system clock get date])
:local ctime ([/system clock get time])
:local mkey [:pick $cdate 0 3]
:local datetime ([:pick $cdate 7 11] . ($month->$mkey) . [:pick $cdate 4 6] . [:pick $ctime 0 2] . [:pick $ctime 3 5] . [:pick $ctime 6 8])
:return $datetime
编写备份脚本
在备份脚本中,将上述脚本作为函数导入并调用。
system-backup
# Prepare filename with current date and time
:local datetimeFunc [:parse [/system/script/get datetime_str source]]
:local platform [/system/resource/get platform]
:local hostname [/system/identity/get name]
:local datetime [$datetimeFunc]
:local filename ($platform . "_" . $hostname . "_" . $datetime)
# Backup to file
/system/backup/save name=$filename
# Export to file
/export file=$filename
# Send to mail
/tool/e-mail/send to="simaek@gamil.com" subject=("[$hostname]: auto backup") \
body="backup at $datetime" \
file=($filename . ".backup,$filename" . ".rsc")
在计划任务中添加定时任务
设定为每隔七天执行一次备份,执行时间为凌晨2点。
add comment="Auto backup configuration and send to mail" \
interval=1w name=auto-backup on-event=system-backup \
start-time=02:00:00