rdiff-backup(增量备份工具)的安装和使用

4年前Linux3836

rdiff-backup 是一个用于本地/远程增量备份的强大而易用的 Python 脚本,它适用于任何 POSIX 操作系统,如Linux、Mac OS X 或 Cygwin。它集合了镜像和增量备份的显著特性。

值得注意的是,它保留了子目录、dev 文件、硬链接,以及关键的文件属性,如权限、uid/gid 所有权、修改时间、扩展属性、acl 以及 resource fork。它可以通过管道以高效带宽的模式工作,这与流行的 rsync 备份工具类似。

rdiff-backup 通过使用 SSH 将单个目录备份到另一个目录,这意味着数据传输被加密并且是安全的。目标目录(在远程系统上)最终会得到源目录的完整副本,但是此外的反向差异会存储在目标目录的特殊子目录中,从而可以恢复前一段时间丢失的文件。

如果你通过网络运行它,则必须在两个系统中都安装 rdiff-backup,两者最好是相同版本。

使用的系统为CentOS 7。

需要ssh支持,使用前请先配置ssh的免密登陆。

安装rdiff-bakcup

1.安装最新版本的EPEL仓库

yum install epel-release


2.安装Python(可以省略,安装rdiff-backup时会自动安装)

Python版本不低于v2.2

rpm -qa | grep python

检查是否安装Python

 

3.安装librsync(可以省略,安装rdiff-backup时会自动安装)

Librsync版本不低于v0.9.7

rpm -qa | grep librsync

检查是否安装librsync

 

安装librsync

yum install librsync

 

4.安装pylibacl(可选)(可以省略,安装rdiff-backup时会自动安装)

yum install pylibacl

 

5.安装pyxattr Python(可选)(可以省略,安装rdiff-backup时会自动安装)

 

6.安装rdiff-backup

yum install rdiff-backup

image.png


备份

源服务器和备份服务器都可以发起备份,第三方服务器也可以发起备份

源服务器发起

rdiff-backup /some/local-dir username@ip::/whatever/remote-dir


备份服务器发起

rdiff-backup username@ip::/some/local-dir /whatever/remote-dir

 image.png


username:ssh登陆的用户名

ip:ssh登陆的ip

 /some/local-dir:需要备份的目录

/whatever/remote-dir:备份到备份服务器的目录


备份相关选项

--print-statistics 打印摘要统计信息

-v[0-9], --verbosity [0-9] 日志详细级别,默认3,9最详细


注意

ssh非默认端口(22)情况

rdiff-backup –remote-schema 'ssh -p port %s "rdiff-backup –server"' 'username@ip'::/some/local-dir /whatever/remote-dir

port:ssh端口


查看备份

rdiff-backup -l /whatever/remote-dir

image.png


恢复

    恢复时可以恢复整个镜像,也可以恢复一个文件夹或者文件。

第一种方法

rdiff-backup --restore-as-of(-r) [time] [备份目录] [恢复目录]

[time] 时间:

1.  now,当前的时间,最新的备份

2.  日期时间格式的字符串,如“2002-01-25T07:00:00+02:00”

3.  Y、M、W、D、h、m、s(年、月、周、天、时、分、秒)

例如,“1h78m”表示一小时七八分钟前的时间,“3D”表示3天,“3W2D10h7s”表示3周、2天、10小时和7秒(23天10小时7秒)

4.  格式为YYYY/MM/DD、YYYY-MM-DD、MM/DD/YYYY或MM-DD-YYYY的日期格式

例如:“2002/3/5”、“03-05-2002”和“2002-3-05”都是指2002年3月5日00:00:00。

5.  NB,N为非负整数。例如“0B”指当前镜像的时间,“3B”指第三个最新增量。

[备份目录] 目录或文件

[恢复目录] 恢复到源服务器的指定目录或文件

 

使用-l/--list-incrememts查看可用的增量,然后指定还原的确切时间。

1.使用now恢复一个文件夹

image.png


2.按日期时间格式的字符串恢复,如“2002-01-25T07:00:00+02:00”,如下图

image.png

image.png


3.按 年-月-日 日期恢复

image.png

image.png


4.恢复“3B”第三个最新增量

image.png

image.png


第二种方法

rdiff-backup [增量文件] [恢复目录]

[增量文件] 位于/备份目录/rdiff-backup-data/increments/目录中

[恢复目录]恢复到源服务器的指定目录或文件

查找相应的增量文件。它将位于/backup/rdiff-backup-data/increments/目录中,其名称类似于“local.2002-11-09T12:43:53-04:00.dir”。请注意,增量文件都以“.diff”、“.snapshot”、“.dir”或“.missing”结尾,其中“.missing”仅表示该文件当时不存在(最后,其中一些文件可能是gzip压缩的,并有一个额外的“.gz”来表示这一点)。

恢复单个文件

image.png

image.png

恢复文件夹

image.png

image.png


注意事项:

1.源文件、文件夹如果存在不能直接覆盖恢复,应该恢复到一个新的文件、文件夹。

2.按时间恢复时,如果指定的时间点没有备份,那将会恢复指定时间点上一份备份。如果没有上一份备份,则恢复最早的备份。

例如:如果设置的是“3D”,也就是恢复三天前的备份,但是只有2天前和4天前的数据,这时运行恢复会恢复到4天前;如果只有2天前的数据,运行恢复会恢复到2天前的数据。

3.测试恢复目录时出现不能新建两级目录的情况;恢复单个文件时不能新建目录,只能使用已有目录。

4.远端家目录不能使用~代替。


删除旧备份

1.  按时间删除

此命令删除有关文件版本的最新信息,这些信息已存在两个星期了:

rdiff-backup --remove-older-than 2W host.net::/remote-dir

请注意,已有一年未更改的文件仍将保留。但是运行此命令后,无法还原15天前删除的文件。

 

2.  按备份数量删除

与还原时一样,有多种方法可以指定时间。下面的“20B”告诉rdiff-backup只能删除过去20份新增备份之前的备份 rdiff-backup会话保存的信息。(nB 语法仅在0.13.1之后的版本中可用。)

rdiff-backup --remove-older-than 20B host.net::/remote-dir

删除前五个新增备份之前的备份

image.png


注意事项:

1.如果备份的时候没有文件改动,使用-l也无法查到这次备份记录,但是使用nB设置保留增量备份份数时,这一次也算一份增量备份。

    例如:已有三份增量备份,第四次备份时没有文件改动,使用-l查看还是只有三份增量备份,再执行--remove-older-than 3B命令,这时使用-l查看就会发现就剩2份增量备份。

image.png

相关文章

linux的关机与重启

shutdown -h now  --立即关机  shutdown -h 10:53  --到10:53关机,如果该时间小于当前时间,则到隔天 &nb...

设置SSH免密码登录

设置SSH免密码登录

在linux中进行各个系统之间进行ssh通信时,必须知道对方的账户密码,才能进行相应的操作。思路:通过RSA加密算生成了密钥,包括私钥和公钥,我们把公钥追加到用来认证授权的key中去。假设有A、B两台...

rdiff-backup(增量备份工具)手册_中英文对照_机翻

rdiff-backup(增量备份工具)手册_中英文对照_机翻

Version 1.3.3 MARCH 2009   SYNOPSIS 简介rdiff-backup [options] [[[user@]host1.foo]::sou...

centos 配置邮箱

centos 配置邮箱

1. 安装mail检查是否安装mail[root@ProxyServer ~]# rpm -qa|grep maillibreport-plugin-...

linux挂载U盘

1、首先使用命令:fdisk -l,查看系统硬盘和分区情况。2、插入U盘,再次用fdisk -l命令查看,并确认自己的U盘。此时笔者的系统中多了一个硬盘/dev/sdb和它的一个分区/dev/sdb1...

vsftp安装配置及一些问题

vsftp安装配置及一些问题

FTP的PORT(主动模式) 和 FTP的PASV(被动模式)PORT(主动模式)PORT中文称为主动模式,工作的原理: FTP客户端连接到FTP服务器的21端口,发送用户名和密码登录,登录成功后要l...