尽管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
最后修改:2023 年 08 月 02 日
如果觉得我的文章对你有用,请随意赞赏