rsync是数据备份工具。不仅可以远程同步数据,而且可以本地同步数据(类似与cp),但不同于cp的一点是,它不会覆盖以前的数据(如果数据已经存在),而是先判断已经存在的数据和新数据的差异,只有数据不同时才会把不相同的部分覆盖。 rsync工具安装:yum install -y 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常用选项 -a:包含-rtplgoD -r:同步目录时要加上,类似cp时的-r选项 -v:同步时显示一些信息,让我们知道同步的过程 -l:保留软连接 -L:加上该选项后,同步软链接时会把源文件给同步 -p:保持文件的权限属性 -o:保持文件的属主 -g:保持文件的属组 -D:保持设备文件信息 -t:保持文件的时间属性 –delete 删除DEST中SRC没有的文件 –exclude 过滤指定文件,如–exclude “logs”会把文件名包含logs的文件或者目录过滤掉,不同步 -P:显示同步过程,比如速率,比-v更加详细 -u:加上该选项后,如果目标文件中的文件比源文件新,则不同步 -z:传输时压缩(远程同步的时候可以节省带宽,提高速度)
把root下的111目录同步到tmp下并且改名111_dest: rsync -av /root/111/ /tmp/111_dest/
加上-L选项后,同步软连接文件时会把源文件同步: rsync -avL /root/111/ /tmp/111_dest/
同步时删除目标目录111_dest中源目录111没有的文件: rsync -avL –delete /root/111/ /tmp/111_dest/
同步时过滤掉文件名或目录名为.txt,不同步(支持写多个exclude,但不支持同一个exclude有多个条件): rsync -avL –exclude “*.txt” /root/111/ /tmp/111_dest/
-P选项是显示同步过程,比如速率,比-v更加详细,u选项如果目标文件中的文件比源文件新,则不同步: rsync -avPu /root/111/ /tmp/111_dest/
rsync通过ssh方式同步,将test1目录同步到IP为192.168.133.132的机器上的tmp目录下并改名为test2: rsync -avP test1/ 192.168.133.132:/tmp/test2/
将192.168.133.132的机器上的tmp目录下的test2目录同步到本机上并改名为test1: rsync -avP 192.168.133.132:/tmp/test2/ test1/
指定远程机器的端口: rsync -av -e “ssh -p 22” test1/ 192.168.133.132:/tmp/test2/