Day17 rsync同步操作(Service06)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Day17 rsync同步操作(Service06)相关的知识,希望对你有一定的参考价值。

一、rsync概述

Remote Synchronize 远程同步
支持本地复制,或与其他SSH,rsync主机同步
端口:873/tcp
官网:http://rsync.samba.org
同步与复制的差异:
同步:增量拷贝,只复制变化的部分
复制:完全拷贝源到目标

二、rsync [选项] 源目录/ 目标目录

只同步源目录下面的文件

2.1 rsync -n 源目录/ 目标目录

测试同步过程,不做实际修改

2.2 rsync -a 源目录/ 目标目录

归档模式,相当于-rlptogD
-r 递归,包括目录/子目录及下面的所有文件
-l 保留符号链接
-p 保留文件的权限
-t 保留文件的时间标记
-o 保留文件的属主标记
-g 保留文件的属组标记
-D 保留设备文件及其他特殊文件

2.3 rsync -avz 源目录/ 目标目录(常用)

传输的时候启用归档模式、显示详细信息及启用压缩解压缩

2.4 rsync --delete 源目录/ 目标目录(危险)

使源目录和目标目录的内容完全相同,即只要是目标目录存在着源目录中不存在的文件,就强制删除这些文件。

2.5 rsync --password-files=密码文件 源目录/ 目标目录

vim /etc/rsync/rsync_pass#创建密码文件
chmod 400 /etc/rsync/rsync_pass#严格限制密码文件的权限

三、rsync [选项] 源目录 目标目录

包括源目录本身及源目录下面的文件都同步
选项和上面一样

四、rsync+SSH同步

服务端要求:开启sshd服务,并提供用户名和密码

4.1 rsync [email protected]:远程目录/

开启远程目录的服务器称之为SSH服务端,该命令可以查看SSH服务端远程目录里面的内容

4.2 与SSH服务端同步目录

4.2.1 rsync [选项] [email protected]:远程目录/ 本地目录

下行方式

4.2.2 rsync [选项] 本地目录 [email protected]:远程目录/

上行方式

五、发布rsync共享(弃用)

5.1 /etc/rsyncd_users.db

rsync帐号文件,名字随意。该文件默认不存在,需要手动创建

5.1.1 rsync帐号文件格式

用户名:密码
每行一条记录

5.1.2 严格控制rsync帐号文件权限

文件权限为600

5.2 /etc/rsyncd.conf

rsync主配置文件,指定目录位置、授权用户、帐号文件位置
vim /etc/rsyncd.conf
输入下面的内容:
[tools] //共享名
path = /usr/src //目录位置
comment = Rsync Test Directory
read only = yes //默认只读
dont compress = .gz .bz2 .tgz .zip //不需要压缩的文件
auth users = ruser //允许谁访问
secrets file = /etc/rsyncd_users.db //账号文件

5.3 systemctl enable rsyncd && systemctl restart rsyncd

重启并设置开机启动rsyncd

六、rsync+inotify实时同步

6.1 优先使用公私钥登录

6.1.1 ssh-keygen

在虚拟机A上生成公私钥

6.1.2 ssh-copy-id [email protected]

拷贝公钥到虚拟机B上

6.2 inotify工具

官网:http://download.sf.net/inotify-tools/
从官网下载源码安装包
tar zxf inotify-tools-3.13.tar.gz
cd inotify-tools-3.13/
./configure
make && make install

6.2.1 inotifywait [选项] 目标文件夹

使用inotifywait工具监控目标文件夹,选项含义如下:
-m 持续监控(捕获一个事件以后不退出)
-r 递归监控、包括子目录及文件
-q 减少屏幕输出
-e 指定监视的事件类型(modify、move、create、delete、attrib等)
-qq 不输出任何信息

6.3 通过脚本结合rsync和inotify对目录进行监控

vim rsync.sh
#!/bin/bash
while inotifywait -rqq /abc#命令运行成功并成功退出,结果就为真。结果为真的话,
                          #while就执行循环
do
rsync -az --delete /abc/ [email protected]:/opt
done

以上是关于Day17 rsync同步操作(Service06)的主要内容,如果未能解决你的问题,请参考以下文章

架构(day06)

Service系统服务:rsync基本用法rsync+SSH同步配置rsync服务端访问rsync共享资源使用inotifywait工具配置Web镜像同步配置并验证Split分离解析

Service6

Linux rsync网站目录同步功能的实现

rsync远程同步(定期同步,实时同步实战!)

rsync同步操作,inotify实时同步,Cobbler平台装机