rsync工具介绍
rsync同步工具(可以实现把一个文件拷贝到另一台机器,或者另一个目录,类似于cp命令但是又不同,当需要同步的源新增加了东西,可以只同步新增加的文件,而不需要整个覆盖。)
把/etc/passwd拷贝到tmp目录下并改名1.txt如下(其中选项a包含了很多选项,v是可视化。)rsync -av /etc/passwd /tmp/1.txt
把passwd拷贝到如下ip的一台机器的root用户下的tmp目录,并改名1.txt,之后需要输入对方密码。(不加用户名默认就是当前的用户名)rsync -av /tmp/1.txt root 192.168.188.128:/tmp/2.txt
同时我们也可以把远程的机器的文件或者目录拷贝到本地,就是将源目录和目标目录调一下位置(OPTION就是选项如-av,SRC原目录,DEST目标目录、文件)([email protected]不写的话就是当前终端的用户)rsync [OPTION] … [[email protected]]host:SRC DEST
rsync常用选项
-a 包含-rtplgoD
-L演示(如果使用大L就会自动隐藏小l的效果)把root下的huang文件同步到/tmp/下,并改名为huang_yangrsync -avL /root/huang/ /tmp/huang_yang
--delte删除DEST中SRC没有的文件
我们先在/tmp/huang_yang/下再创建个文件,让他比原文件多点内容,然后看下是不是比原文件多点内容touch /tmp/huang_yang/huang.txt
我们再使用--delte同步一次,然后查看多出来的文件还在不在rsync -avL --delete /root/huang/ /tmp/huang_yang/
很明显,我们刚才创建的huang.txt已经没有了
--exclude,过滤指定文件
我们同步时,不同步.txt文件rsync -avL --exclude "*.txt" /root/huang/ /tmp/huang_yang/
我们可以看到1.txt文件没有被同步
想要过滤多个文件时,可以写多个--exclude,一个--exclude后面不能写多个条件
比如我们过滤.txt和.tarrsync -avL --exclude "*.txt" --exclude "*.tar" /root/huang/ /tmp/huang_yang/
.txt和.rat都未被同步过来
-P(大写)显示详细同步过程rsync -avP /root/huang/ /tmp/huang_yang/
-u加上该选项后,如果DEST中的文件比SRC新,则不 同步
/root/huang目录下和/tmp/huang_yang都有yang文件,然后我们给/tmp/huang_yang的yang添加内容,然后使用带-u的命令,可以看到同步之后/tmp/huang_yang的yang并没有被覆盖。
我们先给/tmp/huang_yang/yang里添加一个名为2.txt的文档
然后对比一下两个yang目录可以看到,/tmp/huang_yang/yang里有个2.txt ,/huang/yang里没有2.txt
我们进行同步一下看rsync -avPu /root/huang/ /tmp/huang_yang/
然后我们可以看到现在/tmp/huang_yang/yang/里还有2.txt
rsync通过ssh同步
rsync命令默认没有安装,需要安装rsync包。(两台都要安装)
rsync通过ssh方式同步rsync -av test1/ 192.168.133.132:/tmp/test2/
rsync通过ssh方法同步:
将passwd同步到192.168.133.132机器上去,并改名aming.txtrsync etc/passwd/ 192.168.133.132:/tmp/aming.txt
将192.168.133.132机器上的aming.txt同步到本机上的tmp目录下,并改名为123.txtrsync -avP 192.168.133.132:/tmp/aming.txt /tmp/123.txt
如果对方机器并不是22端口,你可以使用如下方法指定端口rsync -av -e "ssh -p 22" test1/ 192.168.133.132:/tmp/test2/
原文地址:http://blog.51cto.com/13658403/2116234