文章目录
RSYNC 服务基础配置
关于RSYNC
1. 关于RSYNC
- 一款 快速增量备份工具
- Remote SYnc ,远程同步
- 支持本地赋值,或者与其他SSH,rsync主机同步
- 官方网站 :
- 单向备份 是最好的,
2. 概述
- Rsync 是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件,也可以使用Rsync同步本地硬盘的不同目录
- Rsync 是用于取代rcp 的一个工机具,Rsync 使用Rsync 算法,来达到童虎,这个算法只传输两个文件的不同部分,
- 通过校验和的 来实现 文件同步
- Rsync 支持大多数系统,win也是(cwRsync ,Sync2Nas)
3. 特点
- 能更新整个目录和树和文件系统
- 有选择性的保持符号链接、硬链接、文件属于、权限、设备、时间等
- 对于安装来说,无任何特殊权限要求
- 能用rsh,ssh或直接端口作为传输端口
- 支持匿名rsync同步文件,是理想的镜像工具
4. 同步源与发起端
-
rsync 同步源
-
指备份操作的远程服务器,也称备份源
-
主要包括 : rsync ,SSh
-
-
同步的优缺点:
- 定期同步不足:
- 指定备份的时间固定,延迟明显,实时性差
- 实时同步
- 同步源发生变化,就会开始同步,
- 定期同步不足:
命令
1. 命令格式
2. 用法
搭建同步源
1. 基于SSH同步源
- 客户机:
下载 :setfac1 设置权限工更加的安全rsync -avz server@IP:/var/www/html/* /client/ssh上传:rsync -avz /client/ssh username@IP:/var/www/html/*
1. 基于Rsync 同步源
-
要写配置文件
address = iP #监听网卡port 873 # 端口号pid file = /var/run/rsyncd.pid #pid文件log file = /var/log/rsyncd.log # 日志文件[share] comment = soft #描述信息 path = /server/rsync #共享目录 read only = yes #设定制度 dont compress = *.gz *.bz2 *.zip#设置哪些文件不进行压缩 auth users = wang #虚拟用户 secrets file = /etc/rsyncd_users.db #用户名密码的文件(像搭建 ftp的虚拟用户)
-
写 rsyncd_users.db 文件
wang:123456
-
rsync 配置文件 /etc/xinetd.d/rsync
- 设置自动启动
-
启动
- rsync --demon
-
客户机连接同步
- 有两种书写格式
- rsync -avz wang@IP ::share /client/rsync/
- 如果这块显示认证失败
- 是服务端的密码认证的文件,需要设置为600权限
- chmod 600 /etc/rsyncd_users.db
-
客户机上传:显示权限不足
- 因为虚拟用户是nobody用户,需要通过服务器设置这个实际目录的权限
- setfac1 -m u:nobody:rwx /server/rsync/
实现免密码验证
1. ssh-通过密钥对
- 生成密钥对
- ssh-kcygen -t rsa
- ssh-copy-id server@ip #上传服务器
2. 基于Rsync同步源
- 变量 ¥RSYNC_PASSWORD
- 给这个变量赋值的密码,,,记得升级为全局
inotify(实时工具)
1. 第三方安装make等等
2. 内核参数(/etc/systl.conf )
- max_queue_events :监控队列大小
- max_user_instances : 最多监控实例数
- max_user_watches : 每个实例最多监控文件数
- 一般足够用
- 每个系统都是不一样的
3. 监控
-
inotifywait : 用于持续监控,实时输出结果
-
inotifywatch : 用于短期监控,任务完成后再出结果
-
通过脚本来检测文件变化,实时传输
-
例子
a = "/usr/local/bin/inotifywait -mrq -e create /var/www/html"b = "/usr/bin/rsync -avz /var/www/html/* 客户端IP:/同步目录"$a | while read directory event filedo $bdone
unsion 支持双向同步
1. inotify+unsion
-
unsion 需要制定参数
- make UISTYLE=text 命令行模式
- THREADS=true 多进程模式
- STATIC=true 静态模式
-
unsion 只需要将 unison 复制到/usr/local/bin/ (可以执行的地方)
-
脚本(lizi)
a = "/usr/local/bin/inotifywait -mrq -e create,delete /server1"b = "/usr/local/unison -batch /server1/ ssh://192/168.1.1//server2"$a | while read directory event filedo $bdone