通过rsync的同步文件
点点寒彬 2020-10-14 17:14:19
Linux
rsync
背景
这次要做的是一个文件同步的功能,在页面修改了某些文件之后,需要能够自动发布到其他机器。这里就需要一个同步服务。
经过搜索发现,rsync
能够很好的满足要求。记录一下使用的情况。
前提
所有涉及到同步的服务,都必须要启动rsync
的服务.
执行
ps aux | grep rsync
输出
/usr/bin/rsyncsys --daemon --address={ip} --config=/etc/rsyncd.conf
1
2
3
4
5
6
2
3
4
5
6
如果没有的话,请找相关的文档进行服务的安装和启动。
使用
rsync
可以在多台机器中同步文件,在我目前的使用场景中,需要从一台机器同步文件到多台机器。相当于是一个push的动作。命令是:
rsync -avzP {本机文件的地址} {用户名}@{ip}::[模块名]
1
具体的参数我就不列了,网络上有非常多的资料。
本机文件的地址:这里指的是需要同步文件的路径
用户名:进行同步的用户名
ip:需要往那个机器同步
模块名:这个模块名是配置文件中的节点
- 模块名
这个模块名,指的是目的机器的rsyncd.conf
配置文件中的模块名。比如
[node]
path=/data/server/xxx
ignore errors = no
read only = no
1
2
3
4
2
3
4
这里的node
就是模块名。
要注意,这个是目的机器的配置文件。
其他补充
- 免密
如果需要免密,则需要在rsyncd.secrets
文件中增加用户名和密码。例如:root:root
这个配置,是源服务的配置文件,不是目的机器的配置文件。
- 拉取文件的方式同步
上文说的其实是从一台机器推送文件到其他机器。rsync
还支持从其他机器拉取文件到本机.使用命令如下:
rsync -avzP {用户名}@{ip}::[模块名] {远端机器文件的地址}
1