设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 手机 数据 公司
当前位置: 首页 > 服务器 > 搭建环境 > Windows > 正文

使用restic和systemd自动备份

发布时间:2019-05-20 23:32 所属栏目:117 来源:Link Dupont
导读:及时备份很重要。即使在 Fedora Magazine 中,备份软件 也是一个常见的讨论话题。本文演示了如何仅使用 systemd 以及 restic 来自动备份。 有关 restic 的介绍,请查看我们的文章在 Fedora 上使用 restic 进行加密备份。然后继续阅读以了解更多详情。 为了

使用restic和systemd自动备份

及时备份很重要。即使在 Fedora Magazine 中,备份软件 也是一个常见的讨论话题。本文演示了如何仅使用 systemd 以及 restic 来自动备份。

有关 restic 的介绍,请查看我们的文章在 Fedora 上使用 restic 进行加密备份。然后继续阅读以了解更多详情。

为了自动创建快照以及清理数据,需要运行两个 systemd 服务。第一个运行备份命令的服务需要以常规频率运行。第二个服务负责数据清理。

如果你根本不熟悉 systemd,那么这是个很好的学习机会。查看 Magazine 上关于 systemd 的系列文章,从单元文件的这个入门开始:

  • systemd 单元文件基础

如果你还没有安装 restic,请注意它在官方的 Fedora 仓库中。要安装它,请带上 sudo 运行此命令:

  1. $ sudo dnf install restic

备份

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

  1. [Unit]
  2. Description=Restic backup service
  3. [Service]
  4. Type=oneshot
  5. ExecStart=restic backup --verbose --one-file-system --tag systemd.timer $BACKUP_EXCLUDES $BACKUP_PATHS
  6. 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
  7. EnvironmentFile=%h/.config/restic-backup.conf

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

  1. BACKUP_PATHS="/home/rupert"
  2. BACKUP_EXCLUDES="--exclude-file /home/rupert/.restic_excludes --exclude-if-present .exclude_from_backup"
  3. RETENTION_DAYS=7
  4. RETENTION_WEEKS=4
  5. RETENTION_MONTHS=6
  6. RETENTION_YEARS=3
  7. B2_ACCOUNT_ID=XXXXXXXXXXXXXXXXXXXXXXXXX
  8. B2_ACCOUNT_KEY=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  9. RESTIC_REPOSITORY=b2:XXXXXXXXXXXXXXXXXX:/
  10. RESTIC_PASSWORD=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

现在已安装该服务,请重新加载 systemd:systemctl -user daemon-reload。尝试手动运行该服务以创建备份:systemctl -user start restic-backup

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

  1. [Unit]
  2. Description=Backup with restic daily
  3. [Timer]
  4. OnCalendar=daily
  5. Persistent=true
  6. [Install]
  7. WantedBy=timers.target

运行以下命令启用:

  1. $ systemctl --user enable --now restic-backup.timer

清理

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

  1. [Unit]
  2. Description=Restic backup service (data pruning)
  3. [Service]
  4. Type=oneshot
  5. ExecStart=restic prune
  6. EnvironmentFile=%h/.config/restic-backup.conf

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

  1. [Unit]
  2. Description=Prune data from the restic repository monthly
  3. [Timer]
  4. OnCalendar=monthly
  5. Persistent=true
  6. [Install]
  7. WantedBy=timers.target

就是这些了!restic 将会每日运行并按月清理数据。

(编辑:ASP站长网)

网友评论
推荐文章
    热点阅读