1.Rsync 简介 |
Rsync(remote synchronize)rsync是一款开源的、快速的、多功能的、可实现全量及增量的本地或远程数据同步备份的优秀工具rsync软件适用于unix/linux/windows等多种操作系统平台,rsync和ssh带的scp命令比较相似,但又优于scp命令的功能,scp每次都是全量拷贝,而rsync可以进行增量拷贝。当然,rsync还可以在本地主机的不同分区或目录之间全量及增量的复制数据,这又类似cp命令,但同样也优于cp命令,cp每次都是全量拷贝,而rsync可以增量拷贝.利用rsync还可以实现删除文件和目录功能,这又相当于rm命令。
2.rsync特性 |
支持拷贝 特殊文件如链接文件,设备等。
可以有排除指定文件或目录同步的功能,相当于打包命令tar的排除功能。
可以做到保持原文件或目录的权限、时间、软硬链接、属主、组等所有属性均不改变。
可实现增量同步,即可同步发生变化的数据,因此数据传输效率很高。
可以使用rcp,rsh,ssh等方式来配合传输文件(rsync本身不对数据加密)。
可以通过socket传输文件和数据。
支持匿名的或认证(无需系统用户)的进程模式传输,可实现方便安全的进行数据备份及镜像。
3.rsync应用场景 |
两台服务器之间数据同步。
把所有客户服务器数据同步到备份服务器,生产场景集群架构服务器备份方案。
rsync结合inotify的功能做实时的数据同步
4.rsync源码安装 |
1 https://download.samba.org/pub/rsync/src/
1 [root@zrlog ~]# cd /usr/src/ 2 [root@zrlog src]# wget https://download.samba.org/pub/rsync/src/rsync-3.1.2.tar.gz 3 [root@zrlog src]# ls 4 debug kernels rsync-3.1.2.tar.gz 5 [root@zrlog src]# tar -zxvf rsync-3.1.2.tar.gz 6 [root@zrlog src]# cd rsync-3.1.2/ 7 [root@zrlog rsync-3.1.2]# ./configure --prefix=/usr/local/rsync 8 [root@zrlog rsync-3.1.2]# make && make install 9 [root@zrlog ~]# vim /etc/profile.d/rsync.sh 10 [root@zrlog ~]# cat !$ 11 cat /etc/profile.d/rsync.sh 12 export PATH=/usr/local/rsync/bin:$PATH 13 [root@zrlog ~]# source !$ 14 source /etc/profile.d/rsync.sh 15 [root@zrlog ~]# which rsync 16 /usr/local/rsync/bin/rsync 17 [root@zrlog ~]# rsync --version 18 rsync version 3.1.2 protocol version 31 19 Copyright (C) 1996-2015 by Andrew Tridgell, Wayne Davison, and others. 20 Web site: http://rsync.samba.org/ 21 Capabilities: 22 64-bit files, 64-bit inums, 64-bit timestamps, 64-bit long ints, 23 socketpairs, hardlinks, symlinks, IPv6, batchfiles, inplace, 24 append, no ACLs, xattrs, iconv, symtimes, prealloc 25 26 rsync comes with ABSOLUTELY NO WARRANTY. This is free software, and you 27 are welcome to redistribute it under certain conditions. See the GNU 28 General Public Licence for details.
5.语法介绍 |
Local: rsync [OPTION...] SRC... [DEST]
Access via remote shell: Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST] Push: rsync [OPTION...] SRC... [USER@]HOST:DEST Access via rsync daemon: Pull: rsync [OPTION...] [USER@]HOST::SRC... [DEST] rsync [OPTION...] rsync://[USER@]HOST[:PORT]/SRC... [DEST] Push: rsync [OPTION...] SRC... [USER@]HOST::DEST rsync [OPTION...] SRC... rsync://[USER@]HOST[:PORT]/DEST
rsync 常用差数介绍 |
-v --verbose 详细模式输出,传输时的进度信息 -z --compress 传输时进行压缩以提高传输效率, --compress-level=NUM可按级别压缩 -a --archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rtopgDl -r --recursive 对子目录以递归模式,即目录下的所有目录都同样传输,注意是小写r -t --times 保持文件时间信息 -o --owner 保持文件属主信息 -p --perms 保持文件权限 -g --group 保持文件属组信息 -P --progress 显示同步的过程及传输时的进度等信息 -D --devices 保持设备文件信息 -l --links 保持软链接 -e --rsh=COMMAND 使用的信道协议,指定替代rsh的shell程序,例如ssh --exclude=PATTERN 指定排除不需要传输的文件模式 --exclude-from=FILE 从文件中读取指定排除不需要传输的文件模式 以上参数为在生产环境中的常用参数,基本使用已足够,相关的参数还有非常多,了解更多可以man rsync。最常用的参数avz相当于vzrtopgDl,生产参数-avz或者用-vzrtopg
1 [root@zrlog ~]# ls 2 anaconda-ks.cfg nginx.conf oneinstack-full.tar.gz xtrabackup-1.6.7.tar.gz 3 [root@zrlog ~]# rsync -avzP xtrabackup-1.6.7.tar.gz /backup/ 4 sending incremental file list 5 xtrabackup-1.6.7.tar.gz 6 12,345,435 100% 25.86MB/s 0:00:00 (xfr#1, to-chk=0/1) 7 8 sent 12,224,253 bytes received 35 bytes 8,149,525.33 bytes/sec 9 total size is 12,345,435 speedup is 1.01 10 [root@zrlog ~]# ll /backup/ 11 total 12060 12 -rw-r--r-- 1 root root 12345435 Dec 18 2012 xtrabackup-1.6.7.tar.gz
1 [root@zrlog ~]# hostname -I 2 10.2.2.125 3 [root@zrlog ~]# cd /backup/ 4 [root@zrlog backup]# ls 5 xtrabackup-1.6.7.tar.gz 6 [root@zrlog backup]# touch stu{1..100} 7 [root@zrlog backup]# ls 8 stu1 stu14 stu2 stu25 stu30 stu36 stu41 stu47 stu52 stu58 stu63 stu69 stu74 stu8 stu85 stu90 stu96 9 stu10 stu15 stu20 stu26 stu31 stu37 stu42 stu48 stu53 stu59 stu64 stu7 stu75 stu80 stu86 stu91 stu97 10 stu100 stu16 stu21 stu27 stu32 stu38 stu43 stu49 stu54 stu6 stu65 stu70 stu76 stu81 stu87 stu92 stu98 11 stu11 stu17 stu22 stu28 stu33 stu39 stu44 stu5 stu55 stu60 stu66 stu71 stu77 stu82 stu88 stu93 stu99 12 stu12 stu18 stu23 stu29 stu34 stu4 stu45 stu50 stu56 stu61 stu67 stu72 stu78 stu83 stu89 stu94 xtrabackup-1.6.7.tar.gz 13 stu13 stu19 stu24 stu3 stu35 stu40 stu46 stu51 stu57 stu62 stu68 stu73 stu79 stu84 stu9 stu95 14 15 [lcx@cgp ~]$ hostname -I 16 10.2.2.137 17 [lcx@cgp ~]$ sudo mkdir /backup 18 [lcx@cgp ~]$ ll /backup/ 19 total 0 20 21 22 [root@zrlog ~]# rsync /backup/ -avzP -e "ssh -p 22" root@10.2.2.137:/backup/ 23 root@10.2.2.137‘s password: 24 sending incremental file list 25 ./ 26 stu1 27 0 100% 0.00kB/s 0:00:00 (xfr#1, to-chk=100/102) 28 ........ 29 xtrabackup-1.6.7.tar.gz 30 12,345,435 100% 16.73MB/s 0:00:00 (xfr#101, to-chk=0/102) 31 32 sent 12,228,591 bytes received 1,941 bytes 627,206.77 bytes/sec 33 total size is 12,345,435 speedup is 1.01 34 35 36 [lcx@cgp ~]$ ls /backup/ 37 stu1 stu14 stu2 stu25 stu30 stu36 stu41 stu47 stu52 stu58 stu63 stu69 stu74 stu8 stu85 stu90 stu96 38 stu10 stu15 stu20 stu26 stu31 stu37 stu42 stu48 stu53 stu59 stu64 stu7 stu75 stu80 stu86 stu91 stu97 39 stu100 stu16 stu21 stu27 stu32 stu38 stu43 stu49 stu54 stu6 stu65 stu70 stu76 stu81 stu87 stu92 stu98 40 stu11 stu17 stu22 stu28 stu33 stu39 stu44 stu5 stu55 stu60 stu66 stu71 stu77 stu82 stu88 stu93 stu99 41 stu12 stu18 stu23 stu29 stu34 stu4 stu45 stu50 stu56 stu61 stu67 stu72 stu78 stu83 stu89 stu94 xtrabackup-1.6.7.tar.gz 42 stu13 stu19 stu24 stu3 stu35 stu40 stu46 stu51 stu57 stu62 stu68 stu73 stu79 stu84 stu9 stu95
1 [root@zrlog ~]# rm -rf /backup/* 2 [root@zrlog ~]# ll /backup/ 3 total 0 4 [root@zrlog ~]# rsync -avzP -e "ssh - p 22"root@10.2.2.137:/backup/ /backup 5 root@10.2.2.137‘s password: 6 receiving incremental file list 7 ./ 8 stu1 9 0 100% 0.00kB/s 0:00:00 (xfr#1, to-chk=100/102) 10 ..... 11 xtrabackup-1.6.7.tar.gz 12 12,345,435 100% 11.46MB/s 0:00:01 (xfr#101, to-chk=0/102) 13 14 sent 1,933 bytes received 12,227,643 bytes 1,630,610.13 bytes/sec 15 total size is 12,345,435 speedup is 1.01 16 [root@zrlog ~]# ls /backup/ 17 stu1 stu14 stu2 stu25 stu30 stu36 stu41 stu47 stu52 stu58 stu63 stu69 stu74 stu8 stu85 stu90 stu96 18 stu10 stu15 stu20 stu26 stu31 stu37 stu42 stu48 stu53 stu59 stu64 stu7 stu75 stu80 stu86 stu91 stu97 19 stu100 stu16 stu21 stu27 stu32 stu38 stu43 stu49 stu54 stu6 stu65 stu70 stu76 stu81 stu87 stu92 stu98 20 stu11 stu17 stu22 stu28 stu33 stu39 stu44 stu5 stu55 stu60 stu66 stu71 stu77 stu82 stu88 stu93 stu99 21 stu12 stu18 stu23 stu29 stu34 stu4 stu45 stu50 stu56 stu61 stu67 stu72 stu78 stu83 stu89 stu94 xtrabackup-1.6.7.tar.gz 22 stu13 stu19 stu24 stu3 stu35 stu40 stu46 stu51 stu57 stu62 stu68 stu73 stu79 stu84 stu9 stu95