Ubuntu Desktop 版本默认自带了图形化的备份/还原工具 Déjà Dup。该工具主要用来备份和还原用户的数据,当然我们也可以用它来备份/还原系统的数据。本文主要介绍 Déjà Dup 的主要功能和用法,如果没有特殊的说明,我们在文中称演 Déjà Dup 为备份工具。本文的演示环境为 Ubuntu Desktop 18.04。

启动备份工具

在 Ubuntu 18.04 之前,可以从 Settings 中找到并启动备份工具。但是到了 18.04,备份工具不再出现在 Settings 中了,在 Activities 中搜索 "backups" 可以找到该工具:

启动后的界面如下所示:

看起来还是挺简单的,Overview 界面上的 "Back Up Now…" 和 "Restore…" 按钮分别用来备份和还原数据。至于要备份哪些数据,则可以通过 Folders to save 界面进行配置。

选择要备份的数据

备份工具默认只备份当前用户家目录下的数据:

我们可以通过添加和删除按钮添加或删除其它的目录,下图中笔者又添加了两个新的目录 /etc 和 /boot:

选择不要备份的数据

如果想要排除备份目录下的某些文件夹,在 Folders to ignore 界面中添加这些文件夹就可以了。默认的目录有 Trash 和 ~/Downloads,下图中的 ~/Pictures/test 则是笔者另外添加的目录:

指定备份数据的存储位置

备份的数据默认存放在用户的家目录下,默认的目录名称为机器的 hostname:

没错,这台虚机的 hostname 是 mantis。
把数据备份到本机并没有太大的意义,通过选择 Storage location 可以把数据备份到其它地方:

我们选择备份到 Network Server,目前支持的网络协议还是很丰富的:

下面的配置把备份的位置设置到主机 10.32.2.151 上的 /home/nick/bak 目录下,使用 ssh 协议执行文件传输:

在第一次备份时,会提示用户输入 ssh 连接的用户名和密码:

记住密码以后就不用再输密码了,把密码保存到系统的文件中,给文件读取也加个密码:

然后就开始备份了:

在局域网中备份速度会很快。以后再备份就不需要输密码了。

设置自动备份

对于备份操作来说,最好是让它能够周期性的自动执行,备份工具在 Scheduling 界面中提供了非常简单的设置方式:

其中的备份频率可以设置为每周一次或每天一次。备份的文件可以永远保存,也可以只保留最近一年的或者是最近半年的,这样可以节省些存储空间。

注意:
没有使用 cron 进行定时执行。它在用户登录的时候启动一个监视程序,该程序跟踪上一次成功备份的时间,并将等待执行下一次计划的备份。监视程序根据用户设置的备份规则(每天一次或每周一次等),准确地确定下一次执行计划的备份是在什么时候。目前是不支持指定一个固定的时间执行备份操作,比如:在周四凌晨4点。简单点说,用户不登录系统是不会执行备份的。因为备份工具的主要目的是用来备份用户数据,所以这个缺点也不是什么大事。

执行还原

备份的目的是在需要的时刻执行还原操作,使用备份工具可以很方便的把数据恢复到某次备份的时刻。在 Overview 界面点击 Restore 按钮开始数据恢复操作:

选择备份的位置,点击 Forward 按钮。然后备份工具能够从指定的位置分析出备份的时间点:

选择一个时间点的备份,点击 Forward 按钮:

默认会覆盖现有文件,也可以选择恢复到一个指定的目录中,这里选择默认值,点击 Forward 按钮,然后点 Restore 按钮开始恢复操作。

注意:
恢复操作只会恢复备份时的文件,并不会删除备份后新添加的那些文件。

获取帮助

打开备份工具,按 F1 可以打开备份工具的帮助文档:

幕后英雄 duplicity

备份工具主要是提供了备份操作的 UI,让我们使用起来很方便,其实后台真正执行备份和恢复操作的是一个叫 duplicity 的命令行工具。笔者会在后续的文章中介绍 duplicity 的用法。

参考:
Déjà Dup Backup Tool
How to Back Up Ubuntu desktop with default backup tool
Déjà Dup - Ubuntu desktop default backup tool
How to Back Up and Migrate Your Linux Configuration Files
duplicity

最新文章

  1. October 26th Week 44th Wednesday 2016
  2. Java基础学习 -- 异常
  3. nvidia gpu fan speed control
  4. jQuery Validate验证框架使用
  5. 笔试、面试重点总结:WIN32、MFC与Linux
  6. CentOS 6.3安装Nginx 搭建文件服务器
  7. 将控制台程序做成windows服务
  8. java中传值及引伸深度克隆的思考(说白了Java只能传递对象指针)
  9. AES加密时抛出java.security.InvalidKeyException: Illegal key size or def
  10. 【iOS】swift-文字宽度的计算
  11. 1013. Battle Over Cities (25)
  12. WARNING: 'aclocal-1.14' is missing on your system.
  13. Ubuntu 16.04 环境下配置apache2.4 + php5.6
  14. 编译时:virtual memory exhausted: Cannot allocate memory,常见于VPS
  15. 使用 NGINX 进行微程序缓存的好处
  16. Java EE之会话
  17. django系列5.5--分组查询,聚合查询,F查询,Q查询,脚本中调用django环境
  18. mongodb高版本与低版本的区别
  19. pom文件解析
  20. 深入剖析SolrCloud(二)

热门文章

  1. WEB 前端开发插件整理
  2. mssql sqlserver避免sql脚本中出现除零错误的方法分享
  3. Vue2 学习笔记1
  4. oracle 压力测试工具benchmarksql
  5. c/c++ 线性表之双向链表
  6. [Hive_8] Hive 设计优化
  7. Linux 系统出现电流音解决方案
  8. Pycharm用鼠标滚轮控制字体大小
  9. Python-爬虫03:urllib.request模块的使用
  10. Glyphicons 字体图标