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)的主要内容,如果未能解决你的问题,请参考以下文章
Service系统服务:rsync基本用法rsync+SSH同步配置rsync服务端访问rsync共享资源使用inotifywait工具配置Web镜像同步配置并验证Split分离解析