OPS Notes By 枯木

Rsync备份之ssh篇

| Comments

rsync是类unix系统下的数据镜像备份工具,从软件的命名上就可以看出来了——remote sync。它的特性如下:

  • 1、可以镜像保存整个目录树和文件系统。
  • 2、可以很容易做到保持原来文件的权限、时间、软硬链接等等。
  • 3、无须特殊权限即可安装。
  • 4、优化的流程,文件传输效率高。
  • 5、可以使用rsh、ssh等方式来传输文件,当然也可以通过直接的socket连接。
  • 6、支持匿名传输。

在使用rsync 进行远程同步时,可以使用两种方式:远程Shell方式(用户验证由 ssh 负责)和 C/S 方式(即客户连接远程rsync服务器,用户验证由rsync服务器负责)。

无论本地同步目录还是远程同步数据,首次运行时将会把全部文件拷贝一次,以后再运行时将只拷贝有变化的文件(对于新文件)或文件的变化部分(对于原有文件)。

rsync+ssh

在常驻模式(daemon mode)下,rsync默认监听TCP端口873。SSH情况下,rsync用户端执行程式必须同时在本地和远程机器上安装。

rsync在首次复制时没有速度优势,速度不如tar,因此当数据量很大时您可以考虑先使用tar 进行首次复制,然后再使用rsync进行数据同步。

另外,无法实现实时更新,如果想实现实时更新rsync需要借助lsyncd工具

rsync一些选项:

  • –delete : delete files that don’t exist on sender (system) 删除DST中SRC没有的文件
  • -v : Verbose (try -vv for more detailed information) 详细模式显示
  • -e “ssh options” : specify the ssh as remote shell 指定ssh作为远程shell
  • -a : archive mode 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD
    • -l(–links) 保留软链接
    • -p(–perms) 保留文件权限
    • -t(–times) 保留文件时间信息
    • -g(–group) 保留属组信息
    • -o(–owner) 保留文件属主信息
    • -D(–devices) 保留设备文件信息
  • -r : recurse into directories 递归
  • -z : compress file data 压缩文件

增量备份

A–>B 同步 本地到远端:

rsync -av /src_dir/ user@IP_Addres:/dest_dir/

B–>A 同步 远端到本地:

rsync -av user@IP_Addres:/src_dir/ /dest_dir/

镜像备份

A–>B 同步 本地到远端:

rsync -av --delete /src_dir/ user@IP_Addres:/dest_dir/

B–>A 同步 远端到本地:

rsync -av --delete user@IP_Addres:/src_dir/ /dest_dir/

举例:

常规增量备份

A:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[root@server www]# ls
a  b  c  d
[root@server www]# rsync -av /www/ root@10.1.1.95:/www/
root@10.1.1.95's password:
building file list ... done
./
a
b
c
d

sent 262 bytes  received 114 bytes  107.43 bytes/sec
total size is 0  speedup is 0.00
[root@server www]#

B:

1
2
3
[root@localhost www]# ls   //发现同步成功
a  b  c  d
[root@localhost www]#

镜像备份

A:

1
2
3
4
5
6
7
8
9
10
11
12
13
[root@server www]# rm -rf *
[root@server www]# rsync -av --delete /www/ root@10.1.1.95:/www/
root@10.1.1.95's password:
building file list ... done
deleting d
deleting c
deleting b
deleting a
./

sent 62 bytes  received 26 bytes  35.20 bytes/sec
total size is 0  speedup is 0.00
[root@server www]#

B:

1
2
[root@localhost www]# ls   
[root@localhost www]#

使用增量备份后就会删除同步另一端的文件保持两者相同,即镜像同步,而增量备份则不会出现这种现象。推荐在使用过程中使用-n选项先测试一遍再真实操作,以防误操作

–EOF–

Comments