陈奇网络工作室

rsync远程同步

系统运输

内容要点

一. rsync简介

二.关于inotify

三. rsync配置示例

一. rsync简介

1、关于rsync

快速增量备份工具

远程同步,远程同步

支持本地复制或与其他SsH、rsync主机同步

官方网站: http://rsync.samba.org

2、配置rsync源服务器

rsync同步源

备份操作中的远程服务器,也称为备份源

配置rsync源

基本的想法

rsyncd.conf配置文件,创建独立的帐户文件

启用rsync的-daemon模式

适用例

用户backuper,允许下行同步

的目录是/var/www/html/

配置文件rsyncd.conf

必须手动创建。 语法类似于Samba配置

认证设定为auth users、secrets file,否则为匿名

rsync帐户文件

使用“用户名:密码”的记录格式,每行一条用户记录

独立帐户数据,不依赖系统帐户

启用rsync服务

守护进程独自提供服务

运行kill $(cat /var/run/rsyncd.pid )退出rsync服务

3、使用rsync备份工具

rsync命令的使用方法

rsync [可选]原始位置目标位置

常用选项

-a :递归保留对象属性的归档模式。 与-rlptgoD相同

-v )显示同步进程详细信息

-z :在文件传输期间压缩( compress )

-H :保存硬连接文件

- a :保存ACL属性信息

delete :删除位于目标位置但不在原始位置的文件

checksum :根据对象的校验和确定是否跳过文件

设置源的两种显示方式

格式1 :用户名@主机地址:共享模块名称

格式2: rsync://用户名@主机地址/共享模块名称

4、rsync实时同步

缺乏定期同步

备份运行时间固定,延迟明显,实时性差

如果同步源长期不变,则不需要密集的定期任务

实时同步的优点

如果同步源发生更改,请立即开始备份

除非对同步源进行了更改,否则不会执行备份

二.关于inotify

Linux内核的信息机制

由2.6.144版提供

可以监视文件系统的更改并发出通知响应

辅助软件:信息工具

rsync信息实时同步

调整信息内核参数

max_queue_events :监视队列大小

max_user_instances :最大监视实例数

max_user_watches :每个实例的最大监视文件数。 必须配置为大于监视对象的总文件数

安装信息工具辅助功能

inotifywait :用于持续监视并实时输出结果

常用选项

-m :继续监视

-r :递归监视所有子对象

-q :输出信息简化

-e :指定要监视的事件类型

inotifwatch :用于短期监视,在任务完成后输出结果

通过信息等待启动rsync同步操作

使用while、read持续获取监视结果

从结果进一步判断,可以决定执行什么样的操作

三.安置范例

实验环境

rsyncd服务器IP地址: 192.168.144.128

客户端IP地址: 192.168.144.129

在rsyncd服务器上修改配置文件

[root@rsyncd ~]# rpm -q rsync

rsync-3.0.9-18.el7.x86_64

[ root @ rsyncd~] # vim/etc/rsyncd.conf

uid=nobody //匿名用户

gid=nobody

use chroot=yes //被困房屋的目录

pidfile=/var/run/rsyncd.PID//PID文件路径

地址=192.168.144.128//设置监听地址

端口=873//端口号

log file=/var/log/rsyncd.log //日志文件路径

hosts allow=192.168.144.0/24 //允许访问地址段

dont compress=*.gz *.tgz *.zip *.z *.z *.rpm *.deb *.bz2//不需要压缩的类型

[wwwroot] //共享模块名称

path=/var/www/html //共享文件路径

comment= www.kgc.com //定义名称

只读=是//只读权限

auth users=backuper //验证用户名

secrets file=/etc/rsyncd _ users.db//密码文件

: wq

[ root @ rsyncd~] # vim/etc/rsyncd _ users.db//创建密码文件

backuper:123123 //编辑用户名:密码

: wq

[ root @ rsyncd~] # chmod 600/etc/rsyncd _ users.db//更改权限

[ root @ rsyncd~~ ] # rsync-- daemon//rsync启动服务

[ root @ rsyncd~] # netstat-ntap|grep rsync//视口

TCP 0192.168.144.128:8730.0.0.0:* listen 36346/rsync

[ root @ rsyncd~~ ] #关闭systemctlstopfirewalld.service//防火墙

[root@rsyncd ~]# setenforce 0

[ root @ rsyncd~] # yuminstallhttpd-y//httpd服务安装

[ root @ rsyncd~] # CD/var/www/html /

[ root @ rsyncd html ] # echothisistestwebindex.html//编辑网页信息

[root@rsyncd html]# cd ./

[ root @ rsyncd www ] # chmod 777 html//释放目录权限,方便用户操作

在客户端服务器上,拉取同步源的rsyncd

[ root @ client~] #关闭systemctlstopfirewalld.service//防火墙

[ root @ client~] #关闭setenforce0///selinux

[ root @ client~] #检查是否安装了rpm-q rsync//rsync服务

rsync-3.0.9-18.el7.x86_64

[ root @ client~] # yuminstallhttpd-y//httpd服务安装

[root@client ~]# cd /var/www/

[ root @ client www ] # chmod 777 html//释放目录权限

[ root @ client www ] # rsync-avz backuper @ 192.168.144.128: wwwroot/var/www/html//接收共享模块

密码://输入密码

[ root @ client www ] # cathtml/index.html//确认是否要同步信息

this is test web

[ root @ client www ] # RM-RF html/index.html

[ root @ client www ] # vim/etc/server.pass//创建本地密码文件

123123

[ root @ client www ] # chmod 600/etc/server.pass//更改权限

[ root @ client www ] # rsync-avz-- delete-- password-file=/etc/server.pass backuper @ 192.168.144.128:128

在客户端上安装inotify

[ root @ client www ] # vim/etc/sysctl.conf//修改内核参数文件

fs.inotify.max _ queued _ events=16384//队列

fs.inotify.max _ user _ instances=1024//每个队列的实例数

fs.inotify.max _ user _ watches=1048576//每个实例的文件数

[root@client www]# sysctl -p ##加载

[ root @ client www ] # mount.CIFS//192.168.100.8/lnmp-C7/mnt///挂载

passwordforroot @//192.168.100.3/lnmp-C7 :

[root@client www]# cd /mnt/

将[ root @ client mnt ] # tarzxvfinotify-tools-3.14.tar.gz-c/opt//inotify解压到/opt下

[root@client mnt]# cd /opt/

[ root @ client opt ] # CD inotify-tools-3.14 /

[ root @ client inotify-tools-3.14 ] # yuminstallgccgcc-cmake-y///安装环境

[ root @ client inotify-tools-3.14 ] #./configure//配置

[ root @ client inotify-tools-3.14 ] # make make install//编译安装

[ root @ client inotify-tools-3.14 ] # inotify wait-mrq-emodify,create,move,delete /var/www/html///启动监视器

重新启动客户端终端

[ root @ client~] # CD/var/www/html /

[root@client html]# touch abc

[root@client html]# rm -rf abc

回到监视的终端看

/var/www/html/CREATE abc

/var/www/html/DELETE abc //显示监视器信息

在客户端上编写脚本,并通过inotifywait启动rsync同步操作脚本

[ root @ client inotify-tools-3.14 ] # CD/opt /

[root@client opt]# vim inotify.sh

#! /bin/bash

inotify _ cmd=inotify wait-mrq-emodify,create,move,delete /var/www/html/

rsync _ cmd=rsync-avz-- delete-- password-file=/etc/server.pass/var/www/html/backuper @ 192.168。

$ inotify _ cmd|whilereaddirectoryeventfile

do

if[$(pgreprsync|WC-L )-le 0 ] ); then

$RSYNC_CMD

fi

[ root @ client opt ] # chmodxinotify.sh//添加执行权限

在rsyncd服务器上修改配置文件

[ root @ rsyncd www ] # vim/etc/rsyncd.conf

只读=否//关闭只读权限

[ root @ rsyncd www ] # netstat-natp|grep rsync

TCP 0192.168.144.128:8730.0.0.0:* listen 36346/rsync

[root@rsyncd www]# kill -9 36346 //退出服务

[ root @ rsyncd www ] # netstat-natp|grep rsync

[ root @ rsyncd www ] # RM-RF/var/run/rsyncd.PID//删除PID文件

[ root @ rsyncd www ] # rsync--重新启动daemon//rsync服务

在客户端上运行inotify脚本文件

[root@client opt]# ./inotify.sh

重新启动客户端终端

[ root @ client html ] #添加echothisistesttest.txt//文本

显示监视服务终端信息

[root@client opt]# ./inotify.sh

发送增量文件列表

//

rsync:failedtosettimeson/. ( inwwroot ):Operation not permitted (1)1) )。

test.txt

sent 121 bytes received 30 bytes 302.00 bytes/sec

total size is 30 speedup is 0.20

ryn cerror:some files/attrswerenottransferred ( seepreviouserrors ( code 23 ) atmain.c ) 1052 ) [sender=3.0.9] )

发送增量文件列表

sent 66 bytes received8bytes 148.00 bytes/sec

total size is 30 speedup is 0.41

在rsync服务器上显示

[root@rsyncd www]# cd html/

[root@rsyncd html]# ls

index.html test.txt //同步

详情请访问云服务器、域名注册、虚拟主机的问题,请访问西部数码代理商官方网站: www.chenqinet.cn

相关推荐

后台-系统设置-扩展变量-手机广告位-内容页底部广告位3