Rsync 命令

rsync 表示 remote sync.

也就是远程同步的意思.

它是用来备份的.

rsync的特性

  • 速度快: 第一次同步的时候会将全部的文件都进行备份, 以后的时候他就回对比改变过的文件, 而使得备份速度很快.
  • 安全: rsync允许在同步的时候使用ssh协议进行加密数据.
  • 消耗带宽小: 同步过程中使用压缩技术, 使得传输的数据更小.
  • 权限低: 使用rsync不需要任何额外的权限.

语法:

  1. $ rsync options source destination

源地址和目的地址既可以是本地也可以时远程服务器, 如果是远程服务器的话还需要指定登录名以及远程服务器地址.

在本地同步两个文件夹

  1. $ rsync -zvr /var/opt/installation/inventory/ /root/temp
  2. building file list ... done
  3. sva.xml
  4. svB.xml
  5. .
  6. sent 26385 bytes
  7. received 1098 bytes
  8. total size is 44867
  9. speedup is 1.63

再上面例子的参数中:

  • -z 开启压缩
  • -v 输出日志信息
  • -r 递归同步(在文件夹中)

还有一点需要说明, rsync没有保留原始文件的创建时间信息, 也就是说, 目的地的文件的创建时间与原始文件的创建时间不一致.

保存文件的创建时间

刚说了他不能保留原始文件的创建时间, 这就过来打脸了:

-a选项可以使得原始文件与备份文件一模一样, 包括创建时间, 属性, 所属用户和所属组, 权限信息等等.

这里我就不演示了, 你可以自己试一下 :D

同步文件到远程服务器

  1. rsync -avz /root/temp/ thegeekstuff@192.168.200.10:/home/thegeekstuff/temp/
  2. Password:
  3. building file list ... done
  4. ./
  5. rpm/
  6. rpm/Basenames
  7. rpm/Conflictname
  8. sent 15810261 bytes received 412 bytes 2432411.23 bytes/sec
  9. total size is 45305958
  10. speedup is 2.87

同步远程目录的格式为:

  1. rsync -avz [local_path] [username]@[server_ip_address]:[/file_path]

同步远程服务器文件到本地

这个跟上一个是反方向操作.不过命令格式都差不多的:

  1. rsync -avz [username]@[server_ip_address]:[/file_path] [local_path]

没什么特别复杂的地方, 哦对了, 同步都是覆盖操作的, 没有像git那样有记录什么的, 所以还是小心一点咯

扩展阅读