文章目录
rsync远程同步
Rsync的官方站点位于http://rsync.samba.org
1. 作用和介绍:
rsync 是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件。rsync使用所谓的“rsync算法”来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快。
1.1 rsync功能:
- 作为命令,实现本地-远程文件同步
- 作为服务,实现本地-远程文件同步
1.2 rsync特点:
- 可以镜像保存整个目录树和文件系统
- 可以保留原有的权限(permission,mode),owner,group,时间(修改时间,modify time),软硬链接,文件acl,文件属性(attributes)信息等
传输效率高,使用同步算法,只比较变化的
支持匿名传输,方便网站镜像;也可以做验证,加强安全
1.3 rsync同类服务:
- sync 同步:刷新文件系统缓存,强制将修改过的数据块写入磁盘,并且更新超级块。
- async 异步:将数据先放到缓冲区,再周期性(一般是30s)的去同步到磁盘。
rsync 远程同步:remote synchronous
1.4 rsync格式
rsync [OPTION] … SRC DEST
rsync [OPTION] … SRC [user@]host:DEST
rsync [OPTION] … [user@]host:SRC DEST
rsync [OPTION] … SRC [user@]host::DEST
rsync [OPTION] … [user@]host::SRC DEST
1.5 rsync常用选项
-a | 包含-rtplgoD |
---|---|
-r | 同步目录时要加上,类似cp时的-r选项 |
-v | 同步时显示一些信息,让我们知道同步的过程 |
-l | 保留软连接 |
-L | 加上该选项后,同步软链接时会把源文件给同步 |
-p | 保持文件的权限属性 |
-o | 保持文件的属主 |
-g | 保持文件的属组 |
-D | 保持设备文件信息 |
-t | 保持文件的时间属性 |
–delete | 删除DEST中SRC没有的文件 |
–exclude | 过滤指定文件,如–exclude “logs”会把文件名包含logs的文件或者目录过滤掉,不同步 |
-P | 显示同步过程,比如速率,比-v更加详细 |
-u | 加上该选项后,如果DEST中的文件比SRC新,则不同步 |
-z | 传输时压缩 |
2. 配置rsync源服务器
2.1 配置备份源的基本思路
指备份操作的远程服务器,也称为备份源
建立rsyncd.conf配置文件、独立的账号文件;服务账号远程登录使用rsync的相关功能,服务账号是自定义的
启用rsync的–daemon模式
2.2 配置文件-rsyncd.conf
需手动建立,语法类似于Samba配置
认证配置auth users、secrets file, 不加则为匿名
2.3 rsync账号文件的作用
采用“用户名:密码”的记录格式,每行一个用户记录;独立的账号数据,不依赖于系统账号
需要对应配置文件模块(使用不同的账号+功能模块,就可以使用不同的同步策略/方式
在使用同步时,我们需要指定账号+功能模块来指定我们同步的策略
2.4 启用rsync服务
通过–daemon独自提供服务
执行kill $(cat /var/run/rsyncd.pid)关闭rsync服务
2.5 配置源的两种表示方法
格式一
用户名@主机地址: :共享模块名.
rsync -avz backuper@192.168.35.40::wwwroot /root
格式二
rsyne://用户名@主机地址/共享模块名
rsync -avz rsync:/ /backuper@192.168.35.40::/wwwroot /root
2.6 配置
服务端:修改rsync配置文件
vim /etc/rsyncd.conf
uid = root ##修改为root
gid = root ##修改为root
[wwwroot]
read only = no ##关闭只读,上行同步需要可写权限
kill 'cat /var/run/rsyncd.pid'
netstat -natp | grep rsync
rsync --daemon ##启动rsync
netstat -natp | grep rsync ##验证是否开启
![在这里插入图片描述](https://img-blog.csdnimg.cn/3e0352fa9389411eb0bbb0d847064223.png
客户端修改inotify内核参数
vim /etc/sysctl.conf
fs.inotify.max_queued_events = 32768 ##监控时间队列,默认为16384
fs.inotify.max_user_instances = 1024 ##最多监控实例数,默认为128
fs.inotify.max_user_watches = 1048576 ##每个实例最多监控文件数,默认为8192
当要监控的目录、文件数据量较多或者变化频繁时,建议加大参数值
sysctl -p ##刷新生效