Rsync文件同步 2021-12-23 14:57:00 编程 Linux 暂无评论 544 次阅读 1752字 修改时间:2022-02-10 16:01:26 不知道你有没有这样的需求,当你的服务器越来越多,而又想对所有服务器进行数据做定时的统一备份, 一方面可以将数据保存两份,保证数据安全,另一方面也方便对数据的统一管理。 像传统的ftp备份功能比较单一,例如不能增量备份等。而Rsync是个不错的选择,功能强大,性能好,安全,轻量级,使用简单 **以Centos为例,安装Rsync,默认传输端口为`873`,记得开防火墙** ```bash yum install -y rsync ``` **开启 daemon** ```bash rsync --daemon ``` **rsync 开机自动启动** ```bash echo "/usr/bin/rsync --daemon" >> /etc/rc.local ``` ------------ 现在我们假设用服务器A作为服务端,服务器B做为客户端,客户端每天定时像服务端增量拉取数据,可以如下配置 ### 服务器A(服务端,ip:192.168.0.1) ** 1.创建用户名、密码文件 ** ```bash echo "user1:123456" > /etc/rsyncd.passwd ``` **2.修改文件权限为600(`必须`)** ```bash chmod 600 /etc/rsyncd.passwd ``` **3.修改配置文件** ```bash vim /etc/rsyncd.conf ``` ```bash # file1为模块名称,每个目录可以配置一个同步模块 [file1] # 需要同步的文件目录 path = /app/backup/ ignore errors = yes read only = no write only = no # 允许访问的ip,相当于是一个ip白名单,可以是ip地址段 hosts allow = 192.168.0.2/24 hosts deny = * list = false uid = root gid = root # 授权给某个用户 auth users = user1 # 传输的密码文件,在上面创建的密码 123456 secrets file = /etc/rsyncd.passwd ``` 到此为止,服务端全部配置完毕,修改完配置文件记得要重启rsync ### 服务器B(客户端,ip:192.168.0.2) **1.配置用户和密码文件,注意这个要和服务端保存一致** ```bash echo "user1:123456" > /etc/rsyncd.passwd ``` **2.修改密码文件权限(`必须`)** ```bash chmod 600 /etc/rsyncd.passwd ``` **3.拉取文件** ```bash rsync -avz user1@192.168.0.1::file1 /app/target --password-file=/etc/rsyncd.passwd ``` **参数解释** - **user1** 即auth users中授权的用户 - **-a** --archive,多参数集合,也叫归档模式,可以拷贝文件的属性、权限啥的 - **-v** --verbose,显示输出过程 - **-z** --compress,压缩 - **file1** 即服务端配置文件中的同步模块名称 - **/app/target** 同步到本地的目录 更多参数和说明可以使用 `rsync -help` 获取 ok,到此为止就已经全部配置完了,是不是很简单呢,这也只是比较简单的用法,rsync还支持很多功能 详细用法可以参考官网或者其他文章: https://www.ruanyifeng.com/blog/2020/08/rsync.html https://rsync.samba.org/ 标签: Linux
评论已关闭