10.28-10.29 rsync工具介绍及常用选项,rsync通过ssh同步

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了10.28-10.29 rsync工具介绍及常用选项,rsync通过ssh同步相关的知识,希望对你有一定的参考价值。

八周二次课(3月27日)

10.28 rsync工具介绍

10.29/10.30 rsync常用选项

10.31 rsync通过ssh同步



10.28 rsync工具介绍

技术分享图片


Linux文件同步工具-rsync

此工具很重要,以后可能每天都需要用到。要熟悉熟练使用


备份方式

本地备份,把数据从A的C目录传输到A的C目录。类似于cp,但是跟cp不一样。

远程备份,把数据从A传输到B上。


本地备份

 rsync -av /etc/passwd /tmp/1.txt


远程备份

 rsync -av /tmp/1.txt 192.168.188.128:/tmp/2.txt 


rsync格式


*SRC 源目录,源文件

*DEST 目标目录,目标文件


 rsync [OPTION] … SRC   DEST

本地与本地拷贝数据


 rsync [OPTION] … SRC   [[email protected]]host:DEST

本地拷贝数据至远程

[[email protected]]host:DEST 格式可以对应[email protected]


 rsync [OPTION] … [[email protected]]host:SRC   DEST

远程目录同步数据到本地。


 rsync [OPTION] … SRC   [[email protected]]host::DEST

与其他验证方式不同。


 rsync [OPTION] … [[email protected]]host::SRC   DEST

与其他验证方式不同。



10.29 rsync常用选项(上)


技术分享图片


Linux文件同步工具-rsync


rsync常用选项


 -a 包含-rtplgoD


 -r 同步目录时要加上,类似cp时的-r选项


 -v 同步时显示一些信息,让我们知道同步的过程,可视化显示进度


 -l 保留软连接

(加上此选项之后,软链接状态跟源软链接状态是一样的,万一源链接指向的文件被删除了,那么也会跟着失效。-L则能避免此情况发生)


 -L 加上该选项后,同步软链接时会把源文件给同步


 -p 保持文件的权限属性


 -o 保持文件的属主


 -g 保持文件的属组


 -D 保持设备文件信息


 -t 保持文件的时间属性(mtime,ctime,atime)


 --delete 删除DEST中SRC没有的文件

例如B上没有A所没有的文件,A目录有123,B有4,如果此时加了此选项,A->B,会把B的4删掉。

使其子文件同步。如果想一模一样,就要加--delete,如果不想一模一样,可以不加。



 --exclude=PATTERN 过滤指定文件,如--exclude “logs”会把文件名包含logs的文件或者目录过滤掉,不同步。(支持通配)


 -P 显示同步过程,比如速率,比-v更加详细


 -u 加上该选项后,如果DEST中的文件比SRC新,则不同步。大意就是,把DST中比SRC还新的文件排除掉,不会覆盖。update简写。


 -z 传输时压缩 zip格式



10.30 rsync常用选项(下)


技术分享图片


实验

本地备份

[[email protected] ~]# mkdir 111

[[email protected] ~]# cd 111/

[[email protected] 111]# touch 12.tx~ 12.txt 12_txt.swp 4913 aming3

[[email protected] 111]# mkdir 222

[[email protected] 111]# ls

12.tx~  12.txt  12_txt.swp  222  4913  aming3

[[email protected] 111]# rsync -av /root/111/ /tmp/111_dest/

sending incremental file list

created directory /tmp/111_dest

./

12.txt

12.tx~

12_txt.swp

4913

aming3

222/


sent 311 bytes  received 114 bytes  850.00 bytes/sec

total size is 0  speedup is 0.00


--delete 用法 同步效果要与源一样 加粗

[[email protected] 111]# touch /tmp/111_dest/new.txt

[[email protected] 111]# rsync -av --delete /root/111/ /tmp/111_dest/

sending incremental file list

deleting new.txt


sent 110 bytes  received 13 bytes  246.00 bytes/sec

total size is 0  speedup is 0.00


上述输出结果可以看出new.txt被删除掉。

下面 ls /tmp/111_dest/可以看到new.txt已经被删掉

[[email protected] 111]#  ls /tmp/111_dest/

12.tx~  12.txt  12_txt.swp  222  4913  aming3


--exclude用法

先删掉/111_dest/下的所有文件,重新同步过/root/111/

[[email protected] 111]# rm -rf /tmp/111_dest/*

[[email protected] 111]# rsync -avL --exclude "*.txt" /root/111/ /tmp/111_dest/

sending incremental file list

./

12.tx~

12_txt.swp

4913

aming3

222/


sent 265 bytes  received 95 bytes  720.00 bytes/sec

total size is 0  speedup is 0.00


可以看到txt都被过滤掉了,剩余的文件都被同步到了/root/111/里


--exclude支持多个在同一条命令上,命令示意如下。

[[email protected] 111]# rsync -avL --exclude "*.txt" --exclude "aming*" /root/111/ /tmp/111_dest/

sending incremental file list


-P用法

先删掉/tmp/111_dest/

[[email protected] 111]# !rm

rm -rf /tmp/111_dest/*

[[email protected] 111]# rsync -avP /root/111/ /tmp/111_dest/ 

sending incremental file list

./

12.txt

           0 100%    0.00kB/s    0:00:00 (xfer#1, to-check=5/7)

12.tx~

           0 100%    0.00kB/s    0:00:00 (xfer#2, to-check=4/7)

12_txt.swp

           0 100%    0.00kB/s    0:00:00 (xfer#3, to-check=3/7)

4913

           0 100%    0.00kB/s    0:00:00 (xfer#4, to-check=2/7)

aming3

           0 100%    0.00kB/s    0:00:00 (xfer#5, to-check=1/7)

222/


sent 311 bytes  received 114 bytes  850.00 bytes/sec

total size is 0  speedup is 0.00


-u用法

需求:让目标文件更加新,这时候需要用到-u

#cd /tmp/111_dest/

#vi 4913 添加文字内容

1112321321oijiojoiffdl

sdlkasjklwjqewq

1111

333hnjkhk

jk


添加-u选项,

[[email protected] 111_dest]# rsync -avPu /root/111/ /tmp/111_dest/

sending incremental file list

./


sent 113 bytes  received 16 bytes  258.00 bytes/sec

total size is 0  speedup is 0.00

[[email protected] 111_dest]# cat 4913 

1112321321oijiojoiffdl

sdlkasjklwjqewq

1111

333hnjkhk

jk

cat完之后,发现目标文件4913编辑的内容没被覆盖掉,



10.31 rsync通过ssh同步


Linux文件同步工具-rsync


技术分享图片


打开两台虚拟机操作

两台虚拟机能互相通信,分别是1和2号


把1的/etc/passwd 同步到2上,/tmp/aming.txt

[[email protected] 111_dest]# rsync /etc/passwd 192.168.189.129:/tmp/aming.txt

[email protected]'s password: 

bash: rsync: 未找到命令

rsync: connection unexpectedly closed (0 bytes received so far) [sender]

rsync error: remote command not found (code 127) at io.c(605) [sender=3.0.9]

[[email protected] 111_dest]# rsync /etc/passwd 192.168.189.129:/tmp/aming.txt


出现以上报错消息,此报错意思是因为2上面没有安装rsync命令,此时在2号安装即可。

[[email protected] 111_dest]# rsync -av /etc/passwd 192.168.189.129:/tmp/aming.txt

[email protected]'s password: 

sending incremental file list

passwd


sent 1176 bytes  received 31 bytes  268.22 bytes/sec

total size is 1102  speedup is 0.91

上面属于推文件动作


反向操作,把2号的数据,同步到1上

[[email protected] 111_dest]# rsync -avP 192.168.189.129:/tmp/aming.txt /tmp/123.txt

[email protected]'s password: 

receiving incremental file list

aming.txt

        1102 100%    1.05MB/s    0:00:00 (xfer#1, to-check=0/1)


sent 30 bytes  received 1184 bytes  161.87 bytes/sec

total size is 1102  speedup is 0.91

这属于拉文件动作。


指定端口

rsync -av -e "ssh -p 22" test1/ 192.168.189.129:/tmp/aming.txt


以上是关于10.28-10.29 rsync工具介绍及常用选项,rsync通过ssh同步的主要内容,如果未能解决你的问题,请参考以下文章

常用工具——Rsync

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

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

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

10.28 rsync工具介绍 10.29/10.30 rsync常用选项 10.31 rsync通

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