云网牛站
所在位置:首页 > Linux教程 > 在Fedora下安装restic并使用它进行自动备份(仅systemd单元文件)

在Fedora下安装restic并使用它进行自动备份(仅systemd单元文件)

2019-04-25 21:23:05作者:戴进稿源:云网牛站

本文介绍在Fedora系统下安装restic并使用它进行备份,仅使用systemd单元文件的restic自动备份。需要运行两个系统服务才能自动快照并保持数据被精简,第一个服务运行备份命令需要定期运行,第二个服务负责数据精简。如果你不熟悉systemd,请参考Systemd入门教程一文。

在Fedora下安装restic并使用它进行自动备份(仅systemd单元文件)

 

Fedora下安装restic的方法

在Fedora下安装restic非常容易,它已经在官方的Fedora存储库中了,运行以下命令:

$ sudo dnf install restic

参考:在Linux系统上安装及使用Restic的方法

 

备份

首先,创建~/.config/systemd/user/restic-backup.service文件,将下面的文本复制并粘贴到文件中以获得最佳效果:

[Unit]

Description=Restic backup service

[Service]

Type=oneshot

ExecStartPre=restic unlock

ExecStart=restic backup --verbose --one-file-system --tag systemd.timer $BACKUP_EXCLUDES $BACKUP_PATHS

ExecStartPost=restic forget --verbose --tag systemd.timer --group-by "paths,tags" --keep-daily $RETENTION_DAYS --keep-weekly $RETENTION_WEEKS --keep-monthly $RETENTION_MONTHS --keep-yearly $RETENTION_YEARS

EnvironmentFile=%h/.config/restic-backup.conf

此服务引用环境文件以加载机密(例如RESTIC_PASSWORD),创建~/.config/restic-backup.conf文件,复制并粘贴以下内容以获得最佳效果,此示例使用BackBlaze B2 buckets,相应地调整ID、密钥、存储库和密码值:

BACKUP_PATHS="/home/rupert"

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。

因为该服务是onehot,它将运行一次并退出,验证服务运行并根据需要创建快照后,设置计时器以定期运行此服务,例如,要每天运行restic-backup.service,请按如下所示创建~/.config/systemd/user/restic-backup.timer,再次,复制并粘贴此文本:

[Unit]

Description=Backup with restic daily

[Timer]

OnCalendar=daily

Persistent=true

[Install]

WantedBy=timers.target

通过运行此命令启用它:

$ systemctl --user start restic-backup.timer

 

精简

虽然主服务运行forget命令仅保留保持策略中的快照,但实际上并未从restic存储库中删除数据,prune命令检查存储库和当前快照,并删除与快照无关的任何数据,由于精简可能是一个耗时的过程,因此无需在每次运行备份时运行,这是第二个服务和计时器的完美场景,首先,通过复制和粘贴此文本来创建文件~/.config/systemd/user/restic-prune.service:

[Unit]

Description=Restic backup service (data pruning)

[Service]

Type=oneshot

ExecStart=restic prune

EnvironmentFile=%h/.config/restic-backup.conf

与主restic-backup.service类似,restic-prune是onehot服务,可以手动运行,设置完服务后,在~/.config/systemd/user/restic-prune.timer中创建并启用相应的计时器:

[Unit]

Description=Prune data from the restic repository monthly

[Timer]

OnCalendar=monthly

Persistent=true

[Install]

WantedBy=timers.target

至此,Restic现在每天运行并每月精简数据。

 

相关主题

使用Timeshift备份和还原Ubuntu/Debian/Linux Mint系统中的数据

精选文章
热门文章