系统运输
内容要点
一. 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