及时备份很重要。即使在Fedora杂志中,备份软件也是一个常见的讨论话题。本文演示了如何仅使用systemd和restic进行自动备份。
有关restic的介绍,请查看我们关于在Fedora上使用Fedora进行加密备份的文章。然后继续阅读以了解更多详情。
为了自动创建快照和清理数据,您需要运行两个systemd服务。运行备份命令的第一个服务需要以常规频率运行。第二项服务负责数据清理。
如果您根本不熟悉systemd,那么这是一个很好的学习机会。查看杂志中systemd的系列文章,从单元文件的介绍开始:
系统单元文件库
如果您尚未安装restic,请注意它位于官方Fedora存储库中。要安装它,请运行sudo以运行此命令:
$ sudo dnf install restic
备用
首先,创建〜/.config/systemd/user/restic-backup.service。将下面的文本复制并粘贴到文件中以获得最佳效果。
[单元]
描述=Restic备份服务
[服务]
TYPE=单稳
ExecStart=restic backup --verbose --one-file-system --tag systemd.timer $ BACKUP_EXCLUDES $ BACKUP_PATHS
ExecStartPost=restic忘记--verbose --tag systemd.timer --group-by'path,tags' - keep-daily $ RETENTION_DAYS --keep-weekly $ RETENTION_WEEKS --keke-monthly $ RETENTION_MONTHS --ke-annual $ RETENTION_YEARSEnvironmentFile=%H /的.config/restic-backup.conf
此服务引用环境文件来加载密钥(例如,RESTIC_PASSWORD)。创建〜/.config/restic-backup.conf。复制并粘贴以下内容以获得最佳效果。此示例使用BackBlaze B2存储。请相应调整ID,密钥,仓库和密码值。
BACKUP_PATHS='/家庭/鲁珀特
BACKUP_EXCLUDES=' - exclude-file /home/rupert/.restic_excludes --exclude-if-present .exclude_from_backup'
RETENTION_DAYS=7
RETENTION_WEEKS=4
RETENTION_MONTHS=6
RETENTION_YEARS=3
B2_ACCOUNT_ID=XXXXXXXXXXXXXXXXXXXXXXXXX
B2_ACCOUNT_KEY=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
RESTIC_REPOSITORY=b2: XXXXXXXXXXXXXXXXXX: /
RESTIC_PASSWORD=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
该服务现已安装,请重新加载systemd:systemctl -user daemon-reload。尝试手动运行该服务以创建备份:systemctl -user start restic-backup。
因为服务类型是一次性的,所以它将运行一次并退出。验证服务运行并根据需要创建快照后,设置计时器以定期运行此服务。例如,要每天运行restic-backup.service,请创建〜/.config/systemd/user/restic-backup.timer,如下所示。再次复制并粘贴此文本:
[单元]
描述=每天用restic备份
[定时器]
OnCalendar=每天
永久=真
[安装]
WantedBy=timers.target运行以下命令以启用:
$ systemctl --user enable --now restic-backup.timer
清理
虽然主服务运行忘记命令仅保留保留策略中的快照,但它实际上并不从restic存储库中删除数据。 prune命令检查仓库和当前快照,并删除与快照无关的所有数据。由于剪枝可能是一个耗时的过程,因此无需在每次运行备份时运行它。这是第二个服务和计时器方案。首先,通过复制和粘贴此文本创建一个文件〜/.config/systemd/user/restic-prune.service:
[单元]
描述=Restic备份服务(数据修剪)
[服务]
TYPE=单稳
ExecStart=restic修剪
EnvironmentFile=%H /的.config/restic-backup.conf
与主restic-backup.service服务类似,restic-prune也是一次性服务,可以手动运行。设置服务后,创建〜/.config/systemd/user/restic-prune.timer并启用相应的计时器:
[单元]
描述=每月从restic责任中修剪数据
[定时器]
OnCalendar=月
永久=真
[安装]
WantedBy=timers.target
而已! Restic将每天运行并按月清理数据。