您的位置:首页 > 其它

12.5 rsync工具介绍 rsync常用选项 rsync通过ssh同步

2017-12-05 00:00 926 查看

10.28 rsync工具介绍

rsync -av /etc/passwd /tmp/1.txt
rsync -av /tmp/1.txt 192.168.188.128:/tmp/2.txt
rsync格式
rsync [OPTION] … SRC DEST
rsync [OPTION] … SRC [user@]host:DEST
rsync [OPTION] … [user@]host:SRC DEST
rsync [OPTION] … SRC [user@]host::DEST
rsync [OPTION] … [user@]host::SRC DEST

在前面的例子中,第一个例子为第一种格式,第二个例子为第二种格式,但不同的是没有加用户名,不加默认是root。第三种格式是用远程目录同步数据到本地。第四种和第五种格式使用了两个冒号,这种格式和其他格式的验证方式不通。

rsync(即remote sync 远程同步),数据备份工具。Rsync不仅可以远程同步数据(类似于scp),当然还可以本地同步数据(类似于cp),但不同于cp或scp的一点是,rsync不像cp/scp一样会覆盖以前的数据(如果数据已经存在),它会先判断已经存在的数据和新数据有什么不同,只有不同时才会把不同的部分覆盖掉。如果linux没有rsync命令使用 yum install -y rsync 安装。

把当前目录下的123.txt同步到/tmp/目录下,也可以更改目标文件的名字, rsync -av 123.txt /tmp/234.txt

[root@localhost ~]# rsync -av 123.txt /tmp/234.txt

远程拷贝:

[root@localhost ~]# rsync -av /tmp/1.txt 192.168.174.129:/tmp/2.txt 


10.29/10.30 rsync常用选项

-a 归档模式,表示以递归方式传输文件,并保持所有属性,等同于-rlptgoD, -a选项后面可以跟一个 --no-OPTION 这个表示关闭-rlptgoD中的某一个例如 -a--no-l 等同于-rptgoD
-r 对子目录以递归模式处理,主要是针对目录来说的,如果单独传一个文件不需要加-r,但是传输的是目录必须加-r选项
-v 同步时显示一些信息,让我们知道同步的过程
-l 保留软连接
-L 加上该选项后,同步软链接时会把源文件给同步
-p 保持文件的权限属性
-o 保持文件的属主
-g 保持文件的属组
-D 保持设备文件信息
-t 保持文件的时间属性
--delete 删除DEST中SRC没有的文件
--exclude 过滤指定文件,如--exclude “logs”会把文件名包含logs的文件或者目录过滤掉,不同步
-P 显示同步过程,比如速率,比-v更加详细
-u 加上该选项后,如果DEST中的文件比SRC新,则不同步
-z 传输时压缩(远程同步的时候可以节省带宽,提高速度)

把root下的111目录同步到tmp下并且改名111_dest:

[root@localhost ~]# rsync -av /root/111/ /tmp/111_dest/

加上-L选项后,同步软连接文件时会把源文件同步:

[root@localhost ~]# rsync -avL /root/111/ /tmp/111_dest/

同步时删除目标目录111_dest中源目录111没有的文件:

[root@localhost ~]# rsync -avL –delete /root/111/ /tmp/111_dest/

同步时过滤掉文件名或目录名为.txt,不同步(支持写多个exclude,但不支持同一个exclude有多个条件):

[root@localhost ~]# rsync -avL –exclude “*.txt” /root/111/ /tmp/111_dest/

-P选项是显示同步过程,比如速率,比-v更加详细,u选项如果目标文件中的文件比源文件新,则不同步:

[root@localhost ~]# rsync -avPu /root/111/ /tmp/111_dest/


10.31 rsync通过ssh同步

rsync通过ssh方式同步
rsync -av test1/ 192.168.133.132:/tmp/test2/
rsync -av -e "ssh -p 22" test1/ 192.168.133.132:/tmp/test2/

ssh -p 22 192.168.133.132 //登录到132

rsync通过ssh方式同步,将test1目录同步到IP为192.168.133.132的机器上的tmp目录下并改名为test2:

[root@localhost ~]# rsync -avP test1/ 192.168.133.132:/tmp/test2/

将192.168.133.132的机器上的tmp目录下的test2目录同步到本机上并改名为test1:

[root@localhost ~]# rsync -avP 192.168.133.132:/tmp/test2/ test1/

指定远程机器的端口:

[root@localhost ~]# rsync -av -e “ssh -p 22” test1/ 192.168.133.132:/tmp/test2/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: