rsync工具介绍
- rsync文件同步工具,支持本机到本机的文件同步,类似cp不同的是它是支持增量更新同步,只同步新更新的文件。
[root@akuilinux02 ~]# rsync -av /etc/passwd /tmp/1.txt
sending incremental file list
passwd
sent 938 bytes received 35 bytes 1,946.00 bytes/sec
total size is 846 speedup is 0.87
[root@akuilinux02 ~]# rsync -av /etc/passwd root@192.168.21.129:/tmp/1.txt
root@192.168.21.129's password:
sending incremental file list
sent 45 bytes received 12 bytes 6.71 bytes/sec
total size is 846 speedup is 14.84
这里的root@可以不加,默认当前终端的用户一样
- rsync的格式
- rsync [OPTION] … SRC DEST,本机之间同步
- rsync [OPTION] … SRC [user@]host:DEST,从本机远程同步。这里的root@可以不加,默认当前终端的用户一样
- rsync [OPTION] … [user@]host:SRC DEST,从远程同步到本机
- rsync [OPTION] … SRC [user@]host::DEST,
- rsync [OPTION] … [user@]host::SRC DEST,
rsync常用选项
- -a 包含-rtplgoD
- -r 同步目录时要加上,类似cp时的-r选项
- -v 同步时显示一些信息,让我们知道同步的过程
- -l 保留软连接
- -L 加上该选项后,同步软链接时会把源文件给同步(把软连接文件换成真正的文件)
- -p 保持文件的权限属性
- -o 保持文件的属主,如果目标主机没有这个用户则显示uid
- -g 保持文件的属组
- -D 保持设备文件信息
- -t 保持文件的时间属性
- --delete 删除DEST中SRC没有的文件
- --exclude 过滤指定文件,如--exclude “logs”会把文件名包含logs的文件或者目录过滤掉,不同步,支持通配
[root@akuilinux02 111]# rsync -avL --exclude "*.txt" --exclude "aming*" /root/111/ /tmp/111_dest/
sending incremental file list
created directory /tmp/111_dest
./
1.tx1
1.txt.swp
22323
222/
sent 258 bytes received 120 bytes 756.00 bytes/sec
total size is 0 speedup is 0.00
- -P 显示同步过程,比如速率,比-v更加详细
- -u 加上该选项后,如果DEST中的文件比SRC新,则不同步,对比mtime,不会发生旧的覆盖新的文件的情况。
- -z 传输时压缩,同步前压缩,同步后解压,节省带宽资源
rsync通过ssh方式同步
[root@akuilinux02 111]# rsync -av /etc/passwd 192.168.21.128:/tmp/1.txt
sending incremental file list
passwd
sent 938 bytes received 35 bytes 1,946.00 bytes/sec
total size is 846 speedup is 0.87
[root@akuilinux02 111]# ssh -p 22 192.168.21.128
Last login: Mon May 14 20:11:54 2018 from 192.168.21.1
[root@akuilinux01 ~]# 登出
Connection to 192.168.21.128 closed.
[root@akuilinux02 111]# rsync -avP -e "ssh -p 22" /etc/passwd 192.168.21.128:/tmp/1.txt
sending incremental file list
passwd
846 100% 0.00kB/s 0:00:00 (xfr#1, to-chk=0/1)
sent 938 bytes received 35 bytes 1,946.00 bytes/sec
total size is 846 speedup is 0.87
[root@akuilinux02 111]# rsync -avP -e "ssh -p 22" 192.168.21.128:/tmp/1.txt /tmp/3.txt
receiving incremental file list
1.txt
846 100% 826.17kB/s 0:00:00 (xfr#1, to-chk=0/1)
sent 43 bytes received 937 bytes 1,960.00 bytes/sec
total size is 846 speedup is 0.86