10.28 rsync工具介绍

10.28 rsync工具介绍

yum install -y rsync   //安装rsync

 rsync -av /etc/passwd   /tmp/1.txt     //将文件拷贝到tmp目录 并改名1.txt

 rsync -av /etc/passwd [email protected]:/tmp/1.txt   // 远程拷贝

rsync的命令格式:
rsync [OPTION]... SRC DEST
rsync [OPTION]... SRC [USER@]IP:DEST
rsync [OPTION]... [USER@]IP:SRC DEST
rsync [OPTION]... [USER@]IP::SRC DEST
rsync [OPTION]... SRC [USER@]IP::DEST
OPTION 表示选项,例如 -av,SRC 表示原目录或文件,DEST 表示目标目录或文件,中括号[]里的user@是可以省略的。

对应于以上六种命令格式,rsync有六种不同的工作模式:

  1. 拷贝本地文件。当SRC和DES路径信息都不包含有单个冒号":"分隔符时就启动这种工作模式。如:rsync -a /data /backup
  2. 使用一个远程shell程序(如rshssh)来实现将本地机器的内容拷贝到远程机器。当DST路径地址包含单个冒号":"分隔符时启动该模式。如:rsync -avz *.c foo:src
  3. 使用一个远程shell程序(如rsh、ssh)来实现将远程机器的内容拷贝到本地机器。当SRC地址路径包含单个冒号":"分隔符时启动该模式。如:rsync -avz foo:src/bar /data
  4. 从远程rsync服务器中拷贝文件到本地机。当SRC路径信息包含"::"分隔符时启动该模式。如:rsync -av [email protected]::www /databack
  5. 从本地机器拷贝文件到远程rsync服务器中。当DST路径信息包含"::"分隔符时启动该模式。如:rsync -av /databack [email protected]::www
  6. 列远程机的文件列表。这类似于rsync传输,不过只要在命令中省略掉本地机信息即可。如:rsync -v rsync://192.168.78.192/www

选项

-a 归档模式,表示以递归方式传输文件,并保持所有属性,等同于-rlptgoD, -a选项后面可以跟一个 --no-OPTION 这个表示关闭,-rlptgoD中的某一个例如 -a--no-l 等同于-rptgoD
-r 对子目录以递归模式处理,主要是针对目录来说的,如果单独传一个文件不需要加-r,但是传输的是目录必须加-r选项,类似cp时的-r选项
-v 打印一些信息出来,比如速率,文件数量等,知道同步的过程
-l 保留软链结
-L 向对待常规文件一样处理软链结,如果是原目录或文件中有软连接文件,则加上该选项后将会把软连接指向的目标文件拷贝到目标目录或文件下
-p (小写)保持文件的权限属性
-o 保持文件的属主信息
-g 保持文件的属组信息
-D 保持设备文件信息
-t 保持文件时间属性
--delete 删除目标文件中原文件没有的文件
--exclude 过滤指定文件,如 --exclude "logs"会把文件名包含logs的文件或者目录过滤掉,不同步。文件名可以是万用字符模式(如.txt)
-P (大写)显示同步过程,比如速率,比 -v 更加详细
--progress 在同步的过程中可以看到同步的过程状态,比如统计要同步的文件数量、同步的文件传输速度等等
-u 加上这个选项后,如果目标目录的文件比原目录的文件新,则不同步
-z 传输时压缩

测试: 

将目录root目录111拷贝到tmp/111_dest目录

命令 rsync -av /root/111/ /tmp/111_dest/ ,将原目录/root/ 下的目录 /111/ 同步到 /tmp/ 目录下并且更改名称为 /111_dest/ 目录。-av 在这边的作用就是包含拷贝目录、软链接、属主、属组、文件权限等选项,可视化拷贝过程。
lys3这边是软链接文件,指向了原文件 /tmp/lys2

a选项里面的l起的作用,保留了软链接文件。与 l 相对应的就是 L,接着来操作一下 L 选项,输入命令 rsync -avL /root/111/ /tmp/111_dest/,这边输入L就相当于把 a 选项里面的 l 覆盖掉

在文件 /tmp/lys2 上面输入内容,再同步一下目录,接着查看目录 /tmp/111_dest/lys3 的内容,会发现就是文件 lys2 上的内容。这个就是 L 选项的作用,可以把软链接指向的原文件拷贝到目标文件

在目录 /tmp/111_dest/ 目录下,新建一个文件 new.txt,然后使用同步命令 --delete 选项,命令执行的过程中出现了 deleting new.txt ,删除了这个文件,然后就看到新建的 new.txt 文件没有了。这就是 --delete 的作用。 rsync -avL  --delete  /root/111/   /tmp/111_dest/

命令 rsync -avL --exclude ".txt" /root/111/ /tmp/111dest/ ,执行的过程中看不到后缀 .txt 的文件,结果也确实没有出现 .txt 的文件。多个的情况,输入命令 rsync -avL --exclude ".txt" --exclude "lys" /root/111/ /tmp/111dest/

-P  显示显示同步过程,比如速率

-u 加上这个选项后,如果目标目录的文件比原目录的文件新,则不同步

猜你喜欢

转载自my.oschina.net/u/3803395/blog/1809236