Rsync 命令
rsync
表示 remote sync
.
也就是远程同步的意思.
它是用来备份的.
rsync
的特性
- 速度快: 第一次同步的时候会将全部的文件都进行备份, 以后的时候他就回对比改变过的文件, 而使得备份速度很快.
- 安全:
rsync
允许在同步的时候使用ssh协议进行加密数据. - 消耗带宽小: 同步过程中使用压缩技术, 使得传输的数据更小.
- 权限低: 使用
rsync
不需要任何额外的权限.
语法:
$ rsync options source destination
源地址和目的地址既可以是本地也可以时远程服务器, 如果是远程服务器的话还需要指定登录名以及远程服务器地址.
在本地同步两个文件夹
$ rsync -zvr /var/opt/installation/inventory/ /root/temp
building file list ... done
sva.xml
svB.xml
.
sent 26385 bytes
received 1098 bytes
total size is 44867
speedup is 1.63
再上面例子的参数中:
-z
开启压缩-v
输出日志信息-r
递归同步(在文件夹中)
还有一点需要说明, rsync
没有保留原始文件的创建时间信息, 也就是说, 目的地的文件的创建时间与原始文件的创建时间不一致.
保存文件的创建时间
刚说了他不能保留原始文件的创建时间, 这就过来打脸了:
-a
选项可以使得原始文件与备份文件一模一样, 包括创建时间, 属性, 所属用户和所属组, 权限信息等等.
这里我就不演示了, 你可以自己试一下 :D
同步文件到远程服务器
rsync -avz /root/temp/ [email protected]:/home/thegeekstuff/temp/
Password:
building file list ... done
./
rpm/
rpm/Basenames
rpm/Conflictname
sent 15810261 bytes received 412 bytes 2432411.23 bytes/sec
total size is 45305958
speedup is 2.87
同步远程目录的格式为:
rsync -avz [local_path] [username]@[server_ip_address]:[/file_path]
同步远程服务器文件到本地
这个跟上一个是反方向操作.不过命令格式都差不多的:
rsync -avz [username]@[server_ip_address]:[/file_path] [local_path]
没什么特别复杂的地方, 哦对了, 同步都是覆盖操作的, 没有像git那样有记录什么的, 所以还是小心一点咯