如何使用 backupninja 来备份 Debian 系统

如何使用 backupninja 来备份 Debian 系统

小心谨慎或灾难体验会让每一个系统管理都认识到频繁的系统备份的重要性。你可以通过编写管用的旧式 shell 脚本,或使用一个(或几个)适合这项工作的备份工具来完成备份任务。因此,当你要实施一个备份解决方案时,你了解的备份工具越多,你做出的决策就会越明智。

在这篇文章中,我们将为你介绍 backupninja ,这是一个轻量且易于配置的系统备份工具。在诸如 rdiff-backup, duplicity, mysqlhotcopy 和 mysqldump 等程序的帮助下, Backupninja 可以提供常用的备份功能,如执行远程的、安全的和增量式的文件系统备份,加密备份以及 MySQL/MariaDB 数据库备份。你可以选择性地开启使用 Email 状态报告功能,也可以对一般的硬件和系统的信息进行备份。 backupninja 的一个关键功能是它拥有一个内建的基于控制台的向导程序(被称为 ninjahelper),而后者允许你为不同的备份情景轻松地创建配置文件。

如果非要说的话,backupninja 的缺点是:为了充分使用其所有的功能,它要求安装一些其他“助手”程序。尽管 backupninja 有针对基于 Red Hat(红帽)的发行版本的 RPM 安装包,但 backupninja 针对 Debian 及其衍生发行版本的依赖进行了优化。所以不建议在基于 Red Hat 的系统上尝试 backupninja 。

在这篇教程中,我们将介绍如何在基于 Debian 的发行版本上安装 backupninja 。

安装 Backupninja

以 root 账户来运行下面的命令:


  1. # aptitude install backupninja

在安装的过程中,有几个文件和目录将被创建:

  • /usr/sbin/backupninja 是个 bash shell 的主脚本;
  • /etc/cron.d/backupninja, 默认情况下,设置 cron 任务来每隔一个小时运行上面的主脚本;
  • /etc/logrotate.d/backupninja 截断由 backupninja 程序产生的日志;
  • /etc/backup.d/ 是备份操作的配置文件驻留的目录;
  • /etc/backupninja.conf 是包含一般选项的主配置文件。这个文件带有良好的注释且详细解释了每个选项的含义;
  • /usr/share/backupninja 是那些 backupninja 所使用的脚本所处的目录。这些脚本文件负责执行实际的工作。在这个目录中,你还可以找到 .helper 文件,它们可以被用来配置和设定 ninjahelper 的菜单;
  • /usr/share/doc/backupninja/examples 含有操作配置文件(即通过 ninjahelper 产生的文件)的模板。

首次运行 Ninjahelper

当我们尝试启动 ninjahelper 时,我们可以看到可能需要一个内部依赖程序。假如系统进行了提示,请输入 “yes” 并敲下回车键来安装 dialog(一个用于从 shell 脚本中显示友好对话框的工具)。

当你在键入 yes 后再敲回车键时,backupninja 将会安装 dialog,一旦安装完成,将呈现出下面的截屏:

案例 1: 备份硬件和系统信息

在启动了 ninjahelper 之后,我们将创建一个新的备份操作:

如果必要的助手程序没有被安装,下面的截屏将会呈现在我们眼前。假如这些软件包已经在你的系统上安装了,请跳过这一步。

接下来的一步需要你选取相关条目来作为此次备份任务的一部分。前四个条目已经默认被选上了,但你可以通过在条目上按空格键来撤消选择。

一旦你完成了上面的步骤,按 OK 选项来继续。接着你将能够选择是愿意使用默认的配置文件(/etc/backup.d/10.sys)来完成这次备份操作,还是创建一个新的配置文件。若为后者,一个含有与默认配置文件内容相同的文件将会在相同的目录下被创建,但它被命名为 11.sys,后续的备份操作将会创建类似的文件(注:只不过命名的序号不同)。需要说明的是一旦这个新的配置文件被创建,你便可以使用你喜爱的文本编辑器来编辑该文件。

案例 2: 一个远程目录的增量式 Rsync 拉取备份

正如你最有可能知道的那样, rsync 被广泛地用于通过网络同步文件或文件夹。在接下来的例子中,我们将讨论一个使用硬链接来为一个远程目录做增量式拉取备份的方法,它被用来保存历史数据以及在我们本地的文件服务器中恢复这些历史数据。这个方法将帮助我们节省空间并增强位于服务器端的安全性。

步骤 1:编写一个带有如下内容的自定义脚本,放在 /etc/backup.d,并将它的权限设置为 600 。需要说明的是,除了一般的配置文件,这个目录可能还包含当 backupninja 执行时你想运行的一些脚本文件,它们可以发挥出位于主配置文件中的变量的优势。


  1. # REMOTE USER
  2. user=root
  3. # REMOTE HOST
  4. host=dev1
  5. # REMOTE DIRECTORY
  6. remotedir=/home/gacanepa/
  7. # LOCAL DIRECTORY
  8. localdir=/home/gacanepa/backup.0
  9. # LOCAL DIRECTORY WHERE PREVIOUS BACKUP WAS STORED
  10. localdirold=/home/gacanepa/backup.1
  11. mv $localdir $localdirold
  12. # RSYNC
  13. rsync -av --delete --recursive --link-dest=$localdirold $user@$host:$remotedir $localdir

在上面的配置中, rsync 的 ‘--link-dest’ 选项的作用是为位于 $localdir-old 目录中那些没有改变的文件(包含所有属性) 硬链接到目标目录($localdir)。

步骤 2:在 backupninja 第一次运行之前,上层目录(这个例子中指的是 /home/gacanepa) 是空的。第一次我们执行下面的命令:


  1. # backupninja -n

backup.0 目录就被创建了,并在接下来的过程中,它的名称将会被更改为 backup.1。

当我们第二次运行 backupninja 时, backup.0 将会被重新创建,而 backup.1 保持不动。

步骤 3: 确保 backup.1 里面的文件硬链接到 backup.0 里的文件,我们可以通过比较文件的 inode(i 节点)数和目录的大小来达到此目的。

总结

Backupninja 不仅是一个经典的备份工具,它也是一个易于配置的实用程序。你可以通过编写你自己的控制脚本,用放在 /etc.backup.d 中的不同的配置文件来运行 backupninja 。甚至你还可以为 ninjahelper 编写助手程序,并将其包括在 ninjahelper 的主界面上。

例如,假如你在 /usr/share/backupninja目录中创建了一个名为 xmodulo 的控制脚本,它将自动运行那些位于 /etc/backup.d 目录中以 .xmodulo 为后缀的每个文件。如果你决定添加你的 xmodulo 控制脚本到 ninjahelper 中, 你可以编写相应的助手程序,即 xmodulo.helper 。另外,假如你想 让 backupninja 运行其它的脚本,只需把它添加到 /etc/backup.d 目录中就可以了。

欢迎使用下面的评论框来留下你的评论、问题或建议。听到你的回应将会使我们很高兴。

----------------------------------------------------------------------------------------------------------------------------

原文发布时间:2015-03-21
本文来自云栖合作伙伴“linux中国”
时间: 2024-10-25 21:43:04

如何使用 backupninja 来备份 Debian 系统的相关文章

使用backupninja备份Debian系统的教程

  小心谨慎或灾难体验会让每一个系统管理都认识到频繁的系统备份的重要性.你可以通过编写管用的旧式 shell 脚本,或使用一个(或几个)适合这项工作的备份工具来完成备份任务.因此,当你要实施一个备份解决方案时,你了解的备份工具越多,你做出的决策就会越明智. 在这篇文章中,我们将为你介绍 backupninja ,这是一个轻量且易于配置的系统备份工具.在诸如 rdiff-backup, duplicity, mysqlhotcopy 和 mysqldump 等程序的帮助下, Backupninja

如何只用“Vista一键还原”一个软件备份双系统

这里使用的版本是:Vista一键还原(Vista Ghost)1.3 简体中文版或1.35简体中文版,它的一键还原备份功能固然是好用,但如果装有多个系统呢? 因为"vista一键还原1.3 简体中文版"使用的是ghost内核,所以备份还原多系统则启动ghost来完成.听我慢慢讲来,看完后你就可以将系统或者非系统盘任意备份,只要空间足够就行. 以本人的电脑为例,C盘为vita系统,F盘为XP系统,还有D.E盘是非系统盘,其中E盘是用来存放vista和XP的系统备份文件(.GHO). vi

Mysql在debian系统中不能插入和显示中文的解决方法

在debian环境下,彻底解决mysql无法插入和显示中文的问题 Linux下Mysql插入中文显示乱码解决方案 mysql -uroot -p 回车输入密码 进入mysql查看状态如下: 默认的是客户端和服务器都用了latin1,所以会乱码. 解决方案: mysql>user mydb; mysql>alter database mydb  character set utf8;! 上文提到了用临时方法更改数据库的字符集设置,显示中文,但是后来发现在有的系统下并不能成功. 比如我用的debi

linux vps新手入门教程:kvm架构通过vnc安装Debian系统

kvm 架构还是比较流行的,期性能比OpenVZ要好,和xen架构一样属于全硬件虚拟化,使用起来稍微复杂一些,下单默认开通是没有安装系统的,默认情况需要自己安装系统,我都知道kvm 架构的vps 价格要稍高点,性能又不错,所以很多朋友可能会选择低配套餐,如128M 内存的套餐 就不适宜我们常用的CentOS 系统,256M内存及以下,CentOS 6X 系统也是无法安装的,所以我们需要安装暂用内存资源更小的 Debian系统,一样是款非常优秀的系统,使用率也挺高,而且也支持中文. 下面就跟我来一

Win7怎么做到一键备份电脑系统?

  1.首先,我们要借用一款软件,可以一键备份系统. 2.下载完成后打开软件,可以看到软件上面显示有一键备份的字样,我们点击一下就可以备份系统了.(图片里的选项按钮是可以更改你备份的系统存在哪里的,一般默认为F盘,我们也可以自己修改.) 3.然后软件会提示你是否执行备份操作,而且显示你设置的系统备份文件存放的路径.(默认备份系统盘,一键式操作) 4.下一步软件会提示你处理完成,是否立即重启备份(备份系统是需要重启的操作的),你选择是就会立刻重启备份,也可以点击取消操作,或者点击否手动重启备份.

debian系统 inode占用100%时硬盘无法写入文件故障处理

  debian系统,只有一个分区,web服务器,最近发现inode使用率真100%,删了一些文件,但过一会又升到100%,如何解决?或者有什么方法查看到底是哪些文件在增加,占用inode?谢谢! Filesystem Inodes IUsed IFree IUse% Mounted on /dev/sda2 17793024 17791412 1612 100% / udev 1021529 553 1020976 1% /dev故障现象 分区无法写入文件. 故障分析 执行df -h命令发现空

Ghost安装器备份Win7系统出现错误提示

  在使用Ghost安装器备份Windows7系统时,重新启动后进入Ghost界面时出现Invalid switch的错误提示,无法备份.请问这该如何解决? 这是由于你将备份文件存放路径或是文件名设置过长,或是添加了特殊字符所致(例如中文文件名或路径),只要重新设置存放路径并确保文件名及路径完全是英文字符即可.

备份Win7系统系统时弹出服务无法启动错误0x80070422怎么办

  为了让电脑更加安全,及时的对系统文件和重要文件进行备份就显得很有必要了,而在win7系统中就有自带备份功能,可以帮助我们轻松备份,可是有用户发现要对win7系统进行备份的时候就弹出服务无法启动的错误窗口,并提示错误代码0x80070422,关于这个问题下面小编就为大家整理一下具体的解决步骤如下. 原因分析:备份时出现服务没有启动的故障,一般是由于备份服务没有启动导致(过度优化会禁用该服务); 解决方法: 1.在win7系统下按WIN+R打开运行框,输入services.msc 回车; 2.在

Acronis Server备份Linux系统

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://chenguang.blog.51cto.com/350944/1344521 Acronis Server备份Linux系统 前段时间用Acronis Disk Director Suite解决了Thinkpad笔记本在win7的分区问题(http://chenguang.blog.51cto.com/350944/180687),今天这篇博文为大家展示如何使用Acronis