rsync - 你极可能会用到的文件同步工具

rsync 是 Unix 系统中一个经常使用的设备间文件同步工具,用好它必定会提高你不少效率。
git

rsync

此次仍是跟你们分享一个服务端相关的知识,就当是一块儿扩展认知吧,也说不定在某些时候正好能帮到你。此次跟你们聊得是一个叫作 rsync 的工具, 从它的名字能够看出,是一个专门用于在不一样机器上面同步文件的工具。swift

rsync 分为服务端和客户端。 在服务端通常是以 daemon 守护进程的方式运行,监听客户端发送过来的文件。 在客户端, rsync 用于向开启 daemon 进程的服务器同步文件。vim

服务端配置

使用它须要在服务端和客户端同时进行配置。 咱们首先来看服务端的配置。 服务器

若是你的服务端操做系统没有预装 rsync, 能够经过操做系统的包管理工具安装。 现代的类 Unix 系统大多数的包管理系统都很是完善,使用效率大幅提升。微信

以个人实验环境 CentOS 7 为例, 使用 yum 包管理工具安装:markdown

$ yum install rsync复制代码

安装完成后,须要编辑 rsync 的配置文件:编辑器

$ vim /etc/rsyncd.conf复制代码

使用 vim 编辑器打开这个文件,而后输入以下内容:工具

[document]
	path = /usr/share/document
	list = true
	uid = root
	gid = root
	read only = false
复制代码

这是 rsync 最简单的一种配置方式,首先一对中括号的 [document] 表明配置节点的名称。 紧接着几个属性:oop

path: 该节点对应的文件路径。
list: 表示该节点是否可被发现。
uid: 指定传输到这里文件所属的用户。
gid: 指定传输到这里的文件所属的组。
read only: 该目录是否只读。ui

配置完这些选项以后,运行这条命令,则可开启 rsync 服务:

$ rsync --daemon复制代码

到这里服务端的配置就完成了, 这里是最简单的配置,关于 rsync 更完整的配置项,你们能够参考这里 www.gsp.com/cgi-bin/man…

客户端配置

服务端配置完成之后,咱们就能够在客户端操做文件同步了, 首先执行命令:

$ export RSYNC_PASSWORD=""复制代码

这个命令给 rsync 设置环境变量,设置服务器的登陆密码。固然,你也能够不设置这个环境变量,这样在进行文件同步的时候,你就须要手工的输入密码。

接下来执行这条命令,就能够将本地的文件同步到服务端了:

rsync -azv ./ root@222.112.23.21::document --delete --exclude '.git'复制代码

这几个参数咱们逐一讲解一下。

-a 参数: 是 archive 模式的缩写,这个模式是一系列参数的组合,通常文件同步都会带上它。
-z 参数: 对传输的文件进行压缩。
-v 参数: 输出详细日志。

这三个参数通常使用 -azv 组合写出。 紧接着这个参数是要同步的本地目录, 这里输入 ./ 表明当前目录。

而后接着写出远程服务器的用户名和 ip 地址, 在冒号后面是 rsync 模块名称 document, 在前面的配置文件中我们设置过,还记得不?

—delete 参数表示,删除远程服务器存在,但本地目录不存在的文件。 加入你在本地删除了一个文件,想把这个文件的删除也同步到远程服务器,就须要加上这个参数。

—exclude 是排除选项,在这个参数中指定的文件,不会计入 rsync 文件同步列表中。 咱们这个例子中忽略了 .git 目录,也就是 git 版本控制系统的隐藏目录。

执行这条命令后,咱们当前目录以及子目录中的全部文件就都会同步到咱们指定的远程服务器中了。

结语

rsync 是一个很是方便的文件同步工具。 相比于咱们更熟悉的 ftp 模式, rsync 的同步方案更加自动化。 好比你在开发一个小型的 Web App,就很是推荐使用 rsync 上传你的程序文件。 除了进行服务器的文件同步, rsync 其实还支持更多的场景,只要涉及多个设备文件同步的问题, 都是 rsync 合适的场景。

若是你以为这篇文章有帮助,还能够关注微信公众号 swift-cafe,会有更多个人原创内容分享给你~

本站文章均为原创内容,如需转载请注明出处,谢谢。
相关文章
相关标签/搜索