标签 备份 下的文章

Fedora 服务器版操作系统可以运行在类似树莓派的单板计算机(SBC)上。这篇文章针对的用户是想要充分利用实体服务器系统,并使用类似 Cockpit 的内置工具进行数据备份和个人数据的恢复。这里描述了备份的 3 个阶段。

必要的准备

想要使用本指南,你所需要的是一个运行着的 Fedora Linux 工作站和以下的项目:

  • 你应该阅读、理解和实践 Fedora 文档中 服务器安装管理 的要求
  • 一块用来测试 Fedora Linux 的 SBC(单板计算机)。在这里查看 硬件需求
  • Fedora ARM 服务器 原始镜像 & ARM 镜像安装器
  • SD 存储卡(64 GB / Class 10)和 SSD 设备两选一
  • 以太网 / DHCP 预留 IP 地址或者静态 IP 地址
  • 提供了 ssh 密钥的 Linux 客户端工作站
  • 选择云存储服务
  • 有额外可用的 Linux 工作站

对于这套环境,在写这篇文章的时候,由于成本和可用性的原因,我选择树莓派 3B+/4B+ (其中一个用来热切换)。当使用 Cockpit 远程连接树莓派服务器时,你可以将树莓派放到路由器附近以便设置。

加强服务器的安全

在 SBC 完成服务器的安装和管理后,用 firewalld 加强服务器的安全是一个好的做法。

连接存储设备到服务器之前,一旦服务器在线你必须设置好防火墙。firewalld 是基于区域的防火墙。在依照 Fedora 文档完成安装和管理指南之后,创建一个名为 FedoraServer 的预定义区域。

firewalld 里的富规则

富规则 rich rule 用来阻止或者允许一个特定的 IP 地址或者地址段。下面这条规则只从(客户端工作站)注册的 IP 地址接受 SSH 连接,并断开其它的连接。在 Cockpit 终端或者客户端工作站终端运行命令是通过 ssh 来连接到服务器的。

firewall-cmd --add-rich-rule='rule family=ipv4 source address=<registered_ip_address>/24 service name=ssh log prefix="SSH Logs" level="notice" accept'

拒绝所有主机的 ping 请求

使用这个命令来设置 icmp 拒绝,并且不允许 ping 请求:

firewall-cmd --add-rich-rule='rule protocol value=icmp reject'

要进行其它防火墙控制,比如管理端口和区域,请查阅以下链接。请注意错配防火墙可能会使安全出现漏洞受到攻击。

在 Cockpit 中管理防火墙
firewalld 规则

配置文件服务器的存储

下一步是连接存储设备到 SBC,然后使用 Cockpit 对新插入的存储设备进行分区。使用 Cockpit 的图形化服务器管理界面,管理一个家庭实验室(可以是一个或者多个服务器)比之前更加简单。Fedora Linux 服务器标准提供了 Cockpit。

在这个阶段,一个通过 SBC 的 USB 插口接电的 SSD 设备无需额外电源供给就可以工作。

  • 将存储设备连接到 SBC 的 USB 接口
  • 运行之后(按上面的“必要的准备”所设置的那样),然后在你的客户端工作站浏览器上访问 机器的 IP 地址:9090
  • 登录进 Cockpit 之后,点击 Cockpit 页面顶部的“ 打开管理访问权限 Turn on administrative access
  • 点击左边面板的 “ 存储 Storage ” 按钮
  • 选择下面显示的 “ 驱动器 Drives ”,然后分区并格式化一个空白的存储设备 Cockpit Storage management
  • 在选定的存储设备这个界面上,创建一个新的分区表或者格式化并创建新的分区。当初始化磁盘的时候,在 “ Partitioning 分区 ” 类型选项上,选择 “GPT 分区表”
  • 选择一个文件系统类型,这里选择 “EXT4” 。这对于一个限制 I/O 能力(比如 USB 2.0 接口)和限制带宽(小于 200MB/s)的设备是适合的 Create a partition in Cockpit
  • 要在设备上创建单个占据整个存储空间的分区,指定它的挂载点,比如 /media 然后点击 “ 确定 Ok ” 。
  • 点击 “ Create partition 创建分区 ”,创建一个挂载点为 /media 的新分区。

创建备份和恢复备份

备份很少是一刀切的。这里有一些选择比如数据备份在哪里,备份数据的步骤,验证一些自动化,并确定怎样来恢复备份了的数据。

Backup workflow – version 1.0

备份 1. 用 rsync 从客户端远程同步到文件服务器(树莓派)

这个传输用到的命令是:

rsync -azP ~/source syncuser@host1:/destination

参数:

  • -a/--archive:归档
  • -z/--compress:压缩
  • -P/--progress:显示进度

要使用更多的选项运行 rsync,可以设置以下的选项:

  • --inplace:直接替换来更新目标文档
  • --append:追加数据到较短的文档中

在将文档备份到存储空间之前,源端文档的文件重复消除和压缩是减少备份数据容量最有效的方式。

每天工作结束,我会手动运行这个。一旦我设置了云备份工作流,自动化脚本是一个优势。

关于 rsync 的详细信息,请在 这里 访问 Fedora 杂志的文章。

备份 2. 使用 rysnc 从文件服务器远程同步到主要的云存储上

选择云存储是考虑的因素;

  • 成本:上传、存储空间和下载费用
  • 支持 rsyncsftp
  • 数据冗余(RAID 10 或者运行中的数据中心冗余计划)
  • 快照

符合这些云存储标准之一的就是 Hetzner 托管的 Nextcloud– 存储盒子。你不会受到供应商限制,可以自由切换而没有退出惩罚。

在文件服务器上生成 SSH 密钥并创建授权密钥文件

使用 ssh-keygen 命令为文件服务器和云存储生成一对新的 SSH 密钥对。

ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key . . .

插入要求的 SSH 公钥到新的本地授权密钥文件中。

cat .ssh/id_rsa.pub >> storagebox_authorized_keys
传输密钥文件到云存储

下一步就是上传生成了的授权密钥文件到存储盒子。要做这些,先用 700 权限创建 .ssh 目录,然后用 SSH 公钥创建授权文件并赋予 600 权限。运行以下命令。

echo -e "mkdir .ssh \n chmod 700 .ssh \n put storagebox_authorized_keys .ssh/authorized_keys \n chmod 600 .ssh/authorized_keys" | sftp <username>@<username>.your-storagebox.de
通过 ssh 使用 rsync

使用 rsync 同步你的文件目录当前状态到存储盒子。

rsync --progress -e 'ssh -p23' --recursive <local_directory> <username>@<username>.your-storagebox.de:<target_directory>

这个过程被叫做推送操作,因为它 “推送” 本地系统的一个目录到一个远程的系统中去。

从云存储中恢复目录

要从存储盒子恢复目录,转换到这个目录:

rsync --progress -e 'ssh -p23' --recursive <username>@<username>.your-storagebox.de:<remote_directory> <local_directory>

备份 3. 客户端备份到第二个云储存

Deja Dup 是 Fedora 软件仓库中为 Fedora 工作站提供快速备份解决方案的工具。它拥有 GPG 加密、计划任务、文件包含(哪个目录要备份)等功能。

Backing up to the secondary cloud

Restoring files from cloud storage

归档个人数据

不是所有数据都需要 3-2-1 备份策略。这就是个人数据共享。我将一台拥有 1TB 硬盘的笔记本作为我个人数据的档案(家庭照片)。

转到设置中的 “ 共享 Sharing ” (在我的例子中是 GNOME 文件管理器)并切换滑块以启用共享。

打开 “ 文件共享 file sharing ”,“ 网络 Networks ” 和 “ 需要的密码 Required password ”,允许你使用 WebDAV 协议在你的本地网络上分享你的公共文件夹给其它的工作站。

准备回滚选项

未测试的备份并不比完全没有备份好。我在家庭实验室环境中使用 “热切换” 方法来避免像频繁的断电或者液体损坏的情况发生。然而,我的建议方案远没有达到灾难恢复计划或企业 IT 中的自动故障修复。

  • 定期运行文件恢复操作
  • 备份 ssh/GPG 密钥到一个额外的存储设备中
  • 复制一个 Fedora ARM 服务器的原始镜像到一个 SD 卡中
  • 在主云存储中保持全备份的快照
  • 自动化备份过程最小化减少人为错误或者疏忽

使用 Cockpit 追踪活动并解决问题

当你的项目在成长时,你所管理的服务器数量也在增长。在 Cockpit 中追踪活动和警告可以减轻你的管理负担。你可以使用 Cockpit 的图形化界面的三种方法来归档这些。

SELinux 菜单

怎样诊断网络问题,找到日志并在 Cockpit 中解决问题:

  • 去 SELinux 中检查日志
  • 检查“ 解决方案详细信息 solution details
  • 当必要时,选择 “ 应用这个方案 Apply this solution
  • 如果必要,查看自动化脚本并运行它

SELinux logs

网络或者存储日志

服务器日志会跟踪 CPU 负载、内存使用、网络活动、存储性能和系统日志关联的详细指标。日志会组织在网络面板或者存储面板里显示。

Storage logs in Cockpit

软件更新

在预设的时间和频率下,Cockpit 可以帮助进行安全更新。当你需要时,你可以运行所有的更新。

Software updates

恭喜你在 Fedora ARM 服务器版本上搭建了一个文件/备份服务器。


via: https://fedoramagazine.org/3-2-1-backup-plan-with-fedora-arm-server/

作者:Hanku Lee 选题:lujun9972 译者:hwlife 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

优麒麟软件商店上架“原生”微信应用

目前 Linux 发行版下的微信替代方案,都与原生版本有一定的差距,极大的影响了用户的日常工作效率,以及日常影音娱乐需求。而麒麟软件今天 发布消息 称,“与腾讯公司联手推动了基于 Linux 平台的原生微信适配工作,微信官方版 2.1.1 正式上线,并在麒麟软件商店上架。”想要体验的用户,只需在麒麟商店搜索“微信”,一键完成安装,扫码登录即可随时畅聊。

老王点评:据我所知,腾讯从未有过“原生”微信,其官网也找不到可以下载的 Linux 版本。这应该是一个腾讯官方“封装”的可用于 Linux 的微信,不过既然是官方推出的,应该可靠。

将密码存储在浏览器中是个糟糕的主意

恶意软件 RedLine 瞄准了 Chrome、Edge 和 Opera 等流行浏览器,它针对的是基于 Chromium 浏览器的 Login Data 文件以及用于保存用户名和密码的 SQLite 数据库。RedLine 是一种商品化的信息窃取程序,可在网络犯罪论坛上以大约 200 美元买到,不需要太多知识即可轻松部署。安全专家 警告称,贪图方便使用浏览器的自动登录功能正成为影响组织和个人的重大安全隐患。使用浏览器存储登录凭据的做法既诱人又方便,但是即使没有感染恶意软件,此举也有风险。因为这将允许在本地或者远程访问计算机的人在几分钟内窃取所有的密码。

老王点评:对于密码这么重要的信息,相信还是专用软件比浏览器更可靠一些。

因备份错误,日本京都大学丢失 77TB 的研究数据

日本京都大学由于其惠普超级计算机的备份系统出现错误,丢失 了约 77TB 的研究数据,导致 14 个研究小组的 3400 万个文件从系统和备份文件中被抹去,其中四个受影响小组的工作已无法恢复。该校已经报废了备份系统,并计划应用改进措施,在 2022 年 1 月重新启用。

老王点评:数据的重要性如何强调都不过分,而有弹性的备份可能是最后一道保护。

现代应用程序开发的一大优点是,像硬件故障或如何设置 RAID 这类问题是由云提供商操心的。优秀的云供应商不太可能丢失你的应用数据,所以有时我会被询问现在为什么还要备份?下面是一些现实世界的故事。

故事之一

第一个故事来自一个数据科学项目:它基本上是一个从正在进行的研究中来收集数据的庞大而复杂的管道,然后用各种不同的方式处理以满足一些尖端模型的需要。这个面向用户的应用程序还没有推出,但是一个由数据科学家和开发人员组成的团队已经为建立这个模型和它的数据集工作了好几个月。

在项目中工作的人有他们自己的实验工作的开发环境。他们会在终端中做一些类似 export ENVIRONMENT=simonsdev 的事情,然后所有在终端上运行的软件都会在那个环境下运行,而不是在生产环境下。

该团队迫切需要推出一个面向用户的应用程序,以便那些花钱的人能够从他们几个月的投资中真正看到一些回报。在一个星期六,一位工程师试图赶工一些工作。他在晚上很晚的时候做完了一个实验,决定收拾东西回家。他启动了一个清理脚本来删除他的开发环境中的所有内容,但奇怪的是,这比平时花费了更长的时间。这时他意识到,他已经忘记了哪个终端被配置为指向哪个环境。(LCTT 译注:意即删除了生产环境。)

故事之二

第二个故事来自于一个商业的网页和手机应用。后端有一个由一组工程师负责的微服务体系结构。这意味着部署需要协调,但是使用正式的发布过程和自动化简化了一些。新代码在准备好后会被审查并合并到主干中,并且高层开发人员通常会为每个微服务标记版本,然后自动部署到临时环境。临时环境中的版本会被定期收集到一个元版本中,在自动部署到生产环境之前,该版本会得到各个人的签署(这是一个合规环境)。

有一天,一位开发人员正在开发一个复杂的功能,而其他开发该微服务的开发人员都同意将他们正在开发的代码提交到主干,也都知道它还不能被实际发布。长话短说,并不是团队中的每个人都收到了消息,而代码就进入了发布管道。更糟糕的是,那些实验性代码需要一种新的方式来表示用户配置文件数据,因此它有一个临时数据迁移,它在推出到生产环境时运行,损坏了所有的用户配置文件。

故事之三

第三个故事来自另一款网页应用。这个有一个更简单的架构:大部分代码在一个应用程序中,数据在数据库中。然而,这个应用程序也是在很大的截止日期压力下编写的。事实证明,在开发初期,当彻底更改的数据库架构很常见时,添加一项功能来检测此类更改并清理旧数据,这实际上对发布前的早期开发很有用,并且始终只是作为开发环境的临时功能。不幸的是,在匆忙构建应用的其余部分并推出时,我们忘记了这些代码。当然,直到有一天它在生产环境中被触发了。

事后分析

对于任何故障的事后分析,很容易忽视大局,最终将一切归咎于一些小细节。一个特例是发现某人犯了一些错误,然后责怪那个人。这些故事中的所有工程师实际上都是优秀的工程师(雇佣 SRE 顾问的公司不是那些在长期雇佣中偷工减料的公司),所以解雇他们,换掉他们并不能解决任何问题。即使你拥有 100 倍的开发人员,它仍然是有限的,所以在足够的复杂性和压力下,错误也会发生。最重要的解决方案是备份,无论你如何丢失数据(包括来自恶意软件,这是最近新闻中的一个热门话题),它都能帮助你。如果你无法容忍没有副本,就不要只有一个副本。

故事之一的结局很糟糕:没有备份。该项目的六个月的数据收集白干了。顺便说一句,有些地方只保留一个每日快照作为备份,这个故事也是一个很好的例子,说明了这也会出错:如果数据丢失发生在星期六,并且你准备在星期一尝试恢复,那么一日备份就只能得到星期日的一个空数据备份。

故事之二并不算好,但结果要好得多。备份是可用的,但数据迁移也是可逆的。不好的部分是发布是在推出前完成的,并且修复工作必须在生产站点关闭时进行编码。我讲这个故事的主要原因是为了提醒大家,备份并不仅仅是灾难性的数据丢失。部分数据损坏也会发生,而且可能会更加混乱。

故事之三还好。尽管少量数据永久丢失,但大部分数据可以从备份中恢复。团队中的每个人都对没有标记极其明显的危险代码感到非常难过。我没有参与早期的开发,但我感觉很糟糕,因为恢复数据所需的时间比正常情况要长得多。如果有一个经过良好测试的恢复过程,我认为该站点应该在总共不到 15 分钟的时间内重新上线。但是第一次恢复没有成功,我不得不调试它为什么不能成功,然后重试。当一个生产站点宕机了,需要你重新启动它,每过 10 秒钟都感觉过了一个世纪。值得庆幸的是,老板们比某些人更能理解我们。他们实际上松了一口气,因为这一场可能使公司沉没的一次性灾难只导致了几分钟的数据丢失和不到一个小时的停机时间。

在实践中,备份“成功”但恢复失败的情况极为普遍。很多时候,小型数据集上进行恢复测试是可以正常工作的,但在生产规模的大数据集上就会失败。当每个人都压力过大时,灾难最有可能发生,而生产站点的故障只会增加压力。在时间合适的时候测试和记录完整的恢复过程是一个非常好的主意。


via: https://theartofmachinery.com/2021/06/06/how_apps_lose_data.html

作者:Simon Arneaud 选题:lujun9972 译者:PearFL 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

这个老牌 Linux 备份方案迁移到了 Python 3 提供了添加许多新功能的机会。

2020 年 3 月,rdiff-backup 升级到了 2.0 版,这距离上一个主要版本已经过去了 11 年。2020 年初 Python 2 的废弃是这次更新的动力,但它为开发团队提供了整合其他功能和优势的机会。

大约二十年来,rdiff-backup 帮助 Linux 用户在本地或远程维护他们的数据的完整备份,而无需无谓地消耗资源。这是因为这个开源解决方案可以进行反向增量备份,只备份从上一次备份中改变的文件。

这次改版(或者说,重生)得益于一个新的、自组织的开发团队(由来自 IKUS Software 的 Eric Zolf 和 Patrik Dufresne,以及来自 Seravo 的 Otto Kekäläinen 共同领导)的努力,为了所有 rdiff-backup 用户的利益,他们齐心协力。

rdiff-backup 的新功能

在 Eric 的带领下,随着向 Python 3 的迁移,项目被迁移到了一个新的、不受企业限制的仓库,以欢迎贡献。团队还整合了多年来提交的所有补丁,包括对稀疏文件的支持和对硬链接的修复。

用 Travis CI 实现自动化

另一个巨大的改进是增加了一个使用开源 Travis CI 的持续集成/持续交付(CI/CD)管道。这允许在各种环境下测试 rdiff-backup,从而确保变化不会影响方案的稳定性。CI/CD 管道包括集成所有主要平台的构建和二进制发布。

使用 yum 和 apt 轻松安装

新的 rdiff-backup 解决方案可以运行在所有主流的 Linux 发行版上,包括 Fedora、Red Hat、Elementary、Debian 等。Frank 和 Otto 付出了艰辛的努力,提供了开放的仓库以方便访问和安装。你可以使用你的软件包管理器安装 rdiff-backup,或者按照 GitHub 项目页面上的分步说明进行安装。

新的主页

团队将网站从 Savannah 迁移到了 GitHub Pages,并对 rdiff-backup.net 官网进行了改版,加入了新的内容,让外观和感觉更加到位。

如何使用 rdiff-backup

如果你是 rdiff-backup 的新手,你可能会对它的易用性感到惊讶。备份方案应该让你对备份和恢复过程感到舒适,而不是吓人。

开始备份

要开始备份到本地驱动器,例如通过 USB 连接的驱动器,输入 rdiff-backup 命令,然后输入要备份的驱动器和要存储文件的目标目录。

例如,要备份到名为 my_backup_drive 的本地驱动器,请输入:

$ rdiff-backup /home/tux/ /run/media/tux/my_backup_drive/

要将数据备份到异地存储,请使用远程服务器的位置,并在 :: 后面指向备份驱动器的挂载点:

$ rdiff-backup /home/tux/ [email protected]::/my_backup_drive/

你可能需要设置 SSH 密钥来使这个过程更轻松。

还原文件

做备份的原因是有时文件会丢失。为了使恢复尽可能简单,你甚至不需要 rdiff-backup 来恢复文件(虽然使用 rdiff-backup 命令提供了一些方便)。

如果你需要从备份驱动器中获取一个文件,你可以使用 cp 将其从备份驱动器复制到本地系统,或者对于远程驱动器使用 scp 命令。

对于本地驱动器,使用:

$ cp _run_media/tux/my_backup_drive/Documents/example.txt ~/Documents

或者用于远程驱动器:

$ scp [email protected]::/my_backup_drive/Documents/example.txt ~/Documents

然而,使用 rdiff-backup 命令提供了其他选项,包括 --restore-as-of。这允许你指定你要恢复的文件的哪个版本。

例如,假设你想恢复一个文件在四天前的版本:

$ rdiff-backup --restore-as-of 4D /run/media/tux/foo.txt ~/foo_4D.txt

你也可以用 rdiff-backup 来获取最新版本:

$ rdiff-backup --restore-as-of now /run/media/tux/foo.txt ~/foo_4D.txt`

就是这么简单。另外,rdiff-backup 还有很多其他选项,例如,你可以从列表中排除文件,从一个远程备份到另一个远程等等,这些你可以在文档中了解。

总结

我们的开发团队希望用户能够喜欢这个改版后的开源 rdiff-backup 方案,这是我们不断努力的结晶。我们也感谢我们的贡献者,他们真正展示了开源的力量。


via: https://opensource.com/article/20/9/rdiff-backup-linux

作者:Patrik Dufresne 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

快照 snapshot 是 Btrfs 的一个有趣的功能。快照是一个子卷的副本。生成快照是立即的。然而,生成快照与执行 rsynccp 不同,快照并不是一创建就会占用空间。

编者注:来自 BTRFS Wiki:快照简单的来说就是一个子卷,它使用 Btrfs 的 COW 功能与其他子卷共享其数据(和元数据)。

占用的空间将随着原始子卷或快照本身(如果它是可写的)的数据变化而增加。子卷中已添加/修改的文件和已删除的文件仍然存在于快照中。这是一种方便的备份方式。

使用快照进行备份

快照驻留在子卷所在的同一磁盘上。你可以像浏览普通目录一样浏览它,并按照生成快照时的状态恢复文件的副本。顺便说一下,在快照子卷的同一磁盘上生成快照并不是一个理想的备份策略:如果硬盘坏了,快照也会丢失。快照的一个有趣的功能是可以将快照发送到另一个位置。快照可以被发送到外部硬盘或通过 SSH 发送到远程系统(目标文件系统也需要格式化为 Btrfs)。要实现这个,需要使用命令 btrfs sendbtrfs receive

生成快照

要使用 btrfs sendbtrfs receive 命令,重要的是要将快照创建为只读,而快照默认是可写的。

下面的命令将对 /home 子卷进行快照。请注意 -r 标志代表只读。

sudo btrfs subvolume snapshot -r /home /.snapshots/home-day1

快照的名称可以是当前日期,而不是 day1,比如 home-$(date +%Y%m%d)。快照看起来像普通的子目录。你可以把它们放在任何你喜欢的地方。目录 /.snapshots 可能是一个不错的选择,以保持它们的整洁和避免混淆。

编者注:快照不会对自己进行递归快照。如果你创建了一个子卷的快照,子卷所包含的每一个子卷或快照都会被映射到快照里面的一个同名的空目录。

使用 btrfs send 进行备份

在本例中,U 盘中的目标 Btrfs 卷被挂载为 /run/media/user/mydisk/bk。发送快照到目标卷的命令是:

sudo btrfs send /.snapshots/home-day1 | sudo btrfs receive /run/media/user/mydisk/bk

这被称为初始启动,它相当于一个完整的备份。这个任务需要一些时间,取决于 /home 目录的大小。显然,后续的增量发送只需要更短的时间。

增量备份

快照的另一个有用的功能是能够以增量的方式执行发送任务。让我们再来生成一个快照。

sudo btrfs subvolume snapshot -r /home /.snapshots/home-day2

为了执行增量发送任务,需要指定上一个快照作为基础,并且这个快照必须存在于源文件和目标文件中。请注意 -p 选项。

sudo btrfs send -p /.snapshot/home-day1 /.snapshot/home-day2 | sudo btrfs receive /run/media/user/mydisk/bk

再来一次(一天之后):

sudo btrfs subvolume snapshot -r /home /.snapshots/home-day3

sudo btrfs send -p /.snapshot/home-day2 /.snapshot/home-day3 | sudo btrfs receive /run/media/user/mydisk/bk

清理

操作完成后,你可以保留快照。但如果你每天都执行这些操作,你可能最终会有很多快照。这可能会导致混乱,并可能会在你的磁盘上使用大量的空间。因此,如果你认为你不再需要一些快照,删除它们是一个很好的建议。

请记住,为了执行增量发送,你至少需要最后一个快照。这个快照必须存在于源文件和目标文件中。

sudo btrfs subvolume delete /.snapshot/home-day1
sudo btrfs subvolume delete /.snapshot/home-day2
sudo btrfs subvolume delete /run/media/user/mydisk/bk/home-day1
sudo btrfs subvolume delete /run/media/user/mydisk/bk/home-day2

注意:第 3 天的快照被保存在源文件和目标文件中。这样,明天(第 4 天),你就可以执行新的增量 btrfs send

最后的建议是,如果 U 盘的空间很大,可以考虑在目标盘中保留多个快照,而在源盘中只保留最后一个快照。


via: https://fedoramagazine.org/btrfs-snapshots-backup-incremental/

作者:Alessio 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

你是否曾经想过如何备份和还原 Ubuntu 或 Debian 系统?Timeshift 是一款自由开源工具,可让你创建文件系统的增量快照。你可以使用 RSYNC 或 BTRFS 两种方式创建快照。

让我们深入研究并安装 Timeshift。在本教程,我们将安装在 Ubuntu 18.04 LTS 系统上。

在 Ubuntu / Debian Linux 上安装 TimeShift

TimeShift 尚未正式托管在 Ubuntu 和 Debian 仓库中。考虑到这一点,我们将运行以下命令来添加 PPA:

# add-apt-repository -y ppa:teejee2008/ppa

Add timeshift repository

接下来,使用以下命令更新系统软件包:

# apt update

成功更新系统后,使用以下 apt 命令安装 Timeshift:

# apt install timeshift

apt install timeshift

准备备份存储设备

最佳实践要求我们将系统快照保存在系统硬盘之外的单独的存储卷上。对于本指南,我们将使用 16GB 闪存作为第二个驱动器,并在该驱动器上保存快照。

# lsblk | grep sdb

lsblk sdb ubuntu

为了将闪存用作快照的备份位置,我们需要在设备上创建一个分区表。运行以下命令:

# parted /dev/sdb  mklabel gpt
# parted /dev/sdb  mkpart primary 0% 100%
# mkfs.ext4  /dev/sdb1

create partition table on drive ubuntu

在 USB 闪存上创建分区表后,我们可以开始创建文件系统的快照!

使用 Timeshift 创建快照

要启动 Timeshift,使用应用程序菜单搜索 “Timeshift”。

Access timeshift

单击 Timeshift 图标,系统将提示你输入管理员密码。提供密码,然后单击验证。

Authentication required

接下来,选择你喜欢的快照类型。

Select rsync option

点击 “Next”。选择快照的目标驱动器。在这里,我的位置是标记为 /dev/sdb 的外部 USB 驱动器。

Select snapshot location

接下来,定义快照级别。级别是指创建快照的时间间隔。你可以选择每月、每周、每天或每小时的快照级别。

Select snapshot levels

点击 “Finish”。

在下一个窗口中,单击 “Create” 按钮开始创建快照。此后,系统将开始创建快照。

Create snapshot

最后,你的快照将显示如下:

Snapshot created

从快照还原 Ubuntu / Debian

创建系统快照后,现在让我们看看如何从同一快照还原系统。在同一个 Timeshift 中,单击快照,然后单击 “Restore” 按钮,如图所示。

Restore snapshot

接下来,将提示你选择目标设备。保留默认选择,然后点击 “Next”。

Select target device

恢复过程开始之前,Timeshift 将会试运行。

Comparing files dry run

在下一个窗口中,点击 “Next” 按钮确认显示的操作。

Confirm actions

如图所示,你会看到警告和免责声明。点击 “Next” 初始化恢复过程。

此后,将开始还原过程,最后,系统之后将重新启动到快照定义的早期版本。

Restoring snapshot

总结

如你所见,使用 TimeShift 从快照还原系统非常容易。在备份系统文件时,它非常方便,并允许你在系统故障时进行恢复。因此,不要害怕修改系统或弄乱系统。TimeShift 使你能够返回到一切运行平稳的时间点。


via: https://www.linuxtechi.com/timeshift-backup-restore-ubuntu-linux/

作者:James Kiarie 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出