系统运输
关于rsync
快速增量备份工具
远程同步,远程同步
支持本地复制或与其他SSH、rsync主机同步
配置rsync源服务器
rsync同步源
备份操作中的远程服务器,也称为备份源
配置rsync源
基本的想法
rsync.conf配置文件,创建独立的帐户文件
启用rsync的--daemon模式
适用例
用户backuper,允许下行同步
操作的目录为/var/www/html
配置文件rsyncd.conf
必须手动创建。 语法类似于Samba配置
身份验证设置auth users、secrets file,否则为匿名
rsync帐户文件
以“用户名:密码”的记录格式,每行一条用户记录
独立帐户数据,不依赖系统帐户
启用rsync服务
- -通过--daemon独自提供服务
运行kill $(cat /var/run/rsync.pid )退出rsync服务
使用rsync备份工具
rsync命令的使用方法
rsync [可选]原始位置目标位置
常用选项
-a :用于归档模式、递归保留对象属性等-rlptgoD
-v :显示同步进程的详细信息
-z :传输文件时压缩
-H :保存硬连接文件
- a :保存ACL属性信息
--delete :删除位于目标位置但不在原始位置的文件
--checksum :根据对象的校验和确定是否跳过文件
设置源的两种显示方式
格式1 :用户名@主机地址:共享模块名称
格式2:rsync://用户名@主机地址/共享模块名称
rsync实时同步
缺乏定期同步
执行备份的时间固定,延迟明显,实时性差
如果同步源长期不变,则不需要密集的定期任务
实时同步的优点
如果同步源发生更改,请立即开始备份
除非对同步源进行了更改,否则不会执行备份
关于inotify (安装在启动器上)
Inotify是Linux的一个特性,它监视文件系统操作,如读取、写入和创建。 Inotify响应迅速,使用非常简单,比cron任务的繁忙轮询效率要高得多。
能够监视文件系统的变化,进行通知应答;
辅助软件:信息工具
实验环境
rsyncd服务器192.168.13.128
客户端服务器192.168.13.129
1 .在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.13.128 # #监听地址
端口=873 # #端口号
log file=/var/log/rsyncd.log ##日志文件路径
允许访问hosts allow=192.168.13.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 # #密码文件
[ root @ rsyncd~] # vim/etc/rsyncd _ users.db # #创建密码文件
backuper:123123 ##用户名:密码
[ root @ rsyncd~] # chmod 600/etc/rsyncd _ users.db # #授予root用户读写权限
[ root @ rsyncd~] # rsync-- daemon # # rsync启动服务
[ root @ rsyncd~] #显示netstat-ntap|grep rsync # #端口
TCP 0192.168.13.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/# #赋予最大权限,允许任何用户进行操作
2 )在客户端服务器上,抽取同步源的rsyncd
[ root @ client~] #关闭systemctlstopfirewalld.service # #防火墙
[root@client ~]# setenforce 0
检查是否安装了[ 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.13.128: ww root/var/www/html /
拉出##共享模块
Password: ##输入密码
[ 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.13.128:www
#指定本地密码文件,删除位于目标位置但不在原始位置的文件,避免交互
3、在客户端安装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.3/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
4 )在客户端编写脚本,通过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 # #赋予执行权限
#确保服务器端和客户端的权限都最大
5 .在rsyncd服务器上修改配置文件
[ root @ rsyncd www ] # vim/etc/rsyncd.conf
只读=否# #关闭只读
[ root @ rsyncd www ] # netstat-natp|grep rsync
TCP 0192.168.13.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启动服务
6 .在客户端上运行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
7 .在rsync服务器上查看
[root@rsyncd www]# cd html/
[root@rsyncd html]# ls
index.html test.txt ##同步完成
#删除也已同步
谢谢你读给我听!
详情请访问云服务器、域名注册、虚拟主机的问题,请访问西部数码代理商官方网站: www.chenqinet.cn