From c16179066c421e78a4a69cdc7ebe630ab5964023 Mon Sep 17 00:00:00 2001 From: geekpi Date: Thu, 16 May 2019 08:56:17 +0800 Subject: [PATCH] translated --- ...utomate backups with restic and systemd.md | 132 ----------------- ...utomate backups with restic and systemd.md | 133 ++++++++++++++++++ 2 files changed, 133 insertions(+), 132 deletions(-) delete mode 100644 sources/tech/20190425 Automate backups with restic and systemd.md create mode 100644 translated/tech/20190425 Automate backups with restic and systemd.md diff --git a/sources/tech/20190425 Automate backups with restic and systemd.md b/sources/tech/20190425 Automate backups with restic and systemd.md deleted file mode 100644 index bc29d39c0d..0000000000 --- a/sources/tech/20190425 Automate backups with restic and systemd.md +++ /dev/null @@ -1,132 +0,0 @@ -[#]: collector: (lujun9972) -[#]: translator: (geekpi) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) -[#]: subject: (Automate backups with restic and systemd) -[#]: via: (https://fedoramagazine.org/automate-backups-with-restic-and-systemd/) -[#]: author: (Link Dupont https://fedoramagazine.org/author/linkdupont/) - -Automate backups with restic and systemd -====== - -![][1] - -Timely backups are important. So much so that [backing up software][2] is a common topic of discussion, even [here on the Fedora Magazine][3]. This article demonstrates how to automate backups with **restic** using only systemd unit files. - -For an introduction to restic, be sure to check out our article [Use restic on Fedora for encrypted backups][4]. Then read on for more details. - -Two systemd services are required to run in order to automate taking snapshots and keeping data pruned. The first service runs the _backup_ command needs to be run on a regular frequency. The second service takes care of data pruning. - -If you’re not familiar with systemd at all, there’s never been a better time to learn. Check out [the series on systemd here at the Magazine][5], starting with this primer on unit files: - -> [systemd unit file basics][6] - -If you haven’t installed restic already, note it’s in the official Fedora repositories. To install use this command [with sudo][7]: - -``` -$ sudo dnf install restic -``` - -### Backup - -First, create the _~/.config/systemd/user/restic-backup.service_ file. Copy and paste the text below into the file for best results. - -``` -[Unit] -Description=Restic backup service -[Service] -Type=oneshot -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 -``` - -This service references an environment file in order to load secrets (such as _RESTIC_PASSWORD_ ). Create the _~/.config/restic-backup.conf_ file. Copy and paste the content below for best results. This example uses BackBlaze B2 buckets. Adjust the ID, key, repository, and password values accordingly. - -``` -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 -``` - -Now that the service is installed, reload systemd: _systemctl –user daemon-reload_. Try running the service manually to create a backup: _systemctl –user start restic-backup_. - -Because the service is a _oneshot_ , it will run once and exit. After verifying that the service runs and creates snapshots as desired, set up a timer to run this service regularly. For example, to run the _restic-backup.service_ daily, create _~/.config/systemd/user/restic-backup.timer_ as follows. Again, copy and paste this text: - -``` -[Unit] -Description=Backup with restic daily -[Timer] -OnCalendar=daily -Persistent=true -[Install] -WantedBy=timers.target -``` - -Enable it by running this command: - -``` -$ systemctl --user enable --now restic-backup.timer -``` - -### Prune - -While the main service runs the _forget_ command to only keep snapshots within the keep policy, the data is not actually removed from the restic repository. The _prune_ command inspects the repository and current snapshots, and deletes any data not associated with a snapshot. Because _prune_ can be a time-consuming process, it is not necessary to run every time a backup is run. This is the perfect scenario for a second service and timer. First, create the file _~/.config/systemd/user/restic-prune.service_ by copying and pasting this text: - -``` -[Unit] -Description=Restic backup service (data pruning) -[Service] -Type=oneshot -ExecStart=restic prune -EnvironmentFile=%h/.config/restic-backup.conf -``` - -Similarly to the main _restic-backup.service_ , _restic-prune_ is a oneshot service and can be run manually. Once the service has been set up, create and enable a corresponding timer at _~/.config/systemd/user/restic-prune.timer_ : - -``` -[Unit] -Description=Prune data from the restic repository monthly -[Timer] -OnCalendar=monthly -Persistent=true -[Install] -WantedBy=timers.target -``` - -That’s it! Restic will now run daily and prune data monthly. - -* * * - -_Photo by _[ _Samuel Zeller_][8]_ on _[_Unsplash_][9]_._ - --------------------------------------------------------------------------------- - -via: https://fedoramagazine.org/automate-backups-with-restic-and-systemd/ - -作者:[Link Dupont][a] -选题:[lujun9972][b] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://fedoramagazine.org/author/linkdupont/ -[b]: https://github.com/lujun9972 -[1]: https://fedoramagazine.org/wp-content/uploads/2019/04/restic-systemd-816x345.jpg -[2]: https://restic.net/ -[3]: https://fedoramagazine.org/?s=backup -[4]: https://fedoramagazine.org/use-restic-encrypted-backups/ -[5]: https://fedoramagazine.org/series/systemd-series/ -[6]: https://fedoramagazine.org/systemd-getting-a-grip-on-units/ -[7]: https://fedoramagazine.org/howto-use-sudo/ -[8]: https://unsplash.com/photos/JuFcQxgCXwA?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText -[9]: https://unsplash.com/search/photos/archive?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText diff --git a/translated/tech/20190425 Automate backups with restic and systemd.md b/translated/tech/20190425 Automate backups with restic and systemd.md new file mode 100644 index 0000000000..f3ac58b09c --- /dev/null +++ b/translated/tech/20190425 Automate backups with restic and systemd.md @@ -0,0 +1,133 @@ +[#]: collector: (lujun9972) +[#]: translator: (geekpi) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) +[#]: subject: (Automate backups with restic and systemd) +[#]: via: (https://fedoramagazine.org/automate-backups-with-restic-and-systemd/) +[#]: author: (Link Dupont https://fedoramagazine.org/author/linkdupont/) + +使用 restic 和 systemd 自动备份 +====== + +![][1] + +及时备份很重要。即使在 [Fedora Magazine][3] 中,[备份软件][2] 也是一个常见的讨论话题。本文演示了如何仅使用 systemd 以及 **restic** 来自动备份。 + + +有关 restic 的介绍,请查看我们的文章[在 Fedora 上使用 restic 进行加密备份][4]。然后继续阅读以了解更多详情。 + +为了自动创建快照以及清理数据,需要运行两个 systemd 服务。第一个运行_备份_命令的服务需要以常规频率运行。第二个服务负责数据清理。 + +如果你根本不熟悉 systemd,那么这是个很好的学习机会。查看 [Magazine 上关于 systemd 的系列文章] [5],从单元文件的这个入门开始: + +> [systemd 单元文件基础][6] + +如果你还没有安装 restic,请注意它在官方的 Fedora 仓库中。要安装它,请[带上 sudo][7] 运行此命令: + +``` +$ sudo dnf install restic +``` + +### 备份 + +首先,创建 _~/.config/systemd/user/restic-backup.service_。将下面的文本复制并粘贴到文件中以获得最佳效果。 + +``` +[Unit] +Description=Restic backup service +[Service] +Type=oneshot +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 存储。请相应地调整 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_。 + +因为该服务类型是 _oneshot_,它将运行一次并退出。验证服务运行并根据需要创建快照后,设置计时器以定期运行此服务。例如,要每天运行 _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 enable --now restic-backup.timer +``` + +### 清理 + +虽然主服务运行 _forget_ 命令仅保留保留策略中的快照,但实际上并未从 restic 仓库中删除数据。 _prune_ 命令检查仓库和当前快照,并删除与快照无关的所有数据。由于 _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 将会每日运行并按月清理数据。 + +* * * + +图片来自 _[Unsplash][9]_ 由 _[ Samuel Zeller][8]_ 拍摄。 + +-------------------------------------------------------------------------------- + +via: https://fedoramagazine.org/automate-backups-with-restic-and-systemd/ + +作者:[Link Dupont][a] +选题:[lujun9972][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://fedoramagazine.org/author/linkdupont/ +[b]: https://github.com/lujun9972 +[1]: https://fedoramagazine.org/wp-content/uploads/2019/04/restic-systemd-816x345.jpg +[2]: https://restic.net/ +[3]: https://fedoramagazine.org/?s=backup +[4]: https://fedoramagazine.org/use-restic-encrypted-backups/ +[5]: https://fedoramagazine.org/series/systemd-series/ +[6]: https://fedoramagazine.org/systemd-getting-a-grip-on-units/ +[7]: https://fedoramagazine.org/howto-use-sudo/ +[8]: https://unsplash.com/photos/JuFcQxgCXwA?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText +[9]: https://unsplash.com/search/photos/archive?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText