安装rsync+inotify实时同步备份服务器

安装rsync备份服务器;【873端口】
yum –y install rsync【./configure --prefix=/usr/local/rsync --disable-ipv6  make  make install】
rsync传输模式:三种【本地数据传输、通过远程shell进行数据传输、守护进程推送daemon】
本地数据传输 :rsync 选项参数 源目录 目标目录  rsync –avz /opt /tmp
通过远程shell进行数据传输
拉取 :rsync [option] [user]  host:src [dest]
抓取:rsync –avz –P –e ‘ssh –p 22’ test001@192.168.1.179:/tmp/oldboy  /tem/
本地推送到远端:rsync –avz –P oldboy –e ‘ssh –p 22’ test001@192.168.1.179:/tmp
【同步文件时目标属性不变】【显示同步过程】【通过ssh的通道传输数据】【主机用户、地址、路径】【本地路径】
-vzrtopDL相当于-avz –progress相当于-P【一般用-avz】
注意:-e:使用信道协议 目录加斜线表示推送这个目录下的文件不包括这个目录
 
守护进程推送daemon daemon【rsync.conf】
服务器配置rsync
【手动生成配置文件:rsyncd.conf、密码配置文件:rsyncd.pas、欢迎界面rsyncd.motd】
# vi /etc/rsyncd.conf
log file = /usr/local/rsync/var/rsyncd.log  //日志文件
pid file = /usr/local/rsync/var/rsyncd.pid  //pid文件路径
lock file = /usr/local/rsync/var/rsyncd.lock //指定lock文件
secrets file = /usr/local/rsync/etc/rsyncd.pas  //指定用户密码对文件
motd file = /usr/local/rsync/etc/rsyncd.motd  //指定欢迎消息文件
uid = root  //rsync以什么用户身份启动
gid = root  //rsync以什么用户组身份启动
use chroot = no  //模块的最大并发连接数量,以保护服务器,超过设置值,连接请求将被暂时限制
max connections = 30  //最大连接数
timeout = 600  //超出时间
 
 [bak]  //模块【可以添加多个模块】
path = /home /testSyn //需要同步的目录
Ignore error【表示出现错误忽略错误】
comment = www bak  //描述信息,可以任意填写
read only = no  //设置为no,表示客户端可以上传。如果设置为yes,表示只读
write only = no //设置为no,表示客户端可以下载。
list = yes  //这里设置IP或不让同步
hosts allow = 192.168.0.0/16,192.168.10.0/24  //允许的IP段
auth users = root  //认证的用户,服务器必须存在这个系统用户
【模块[oldboy]、path、ignor errors、readonly=false、list=false、hostallow、hostdeny、auth_user、secrets file=认证加密文件】
 
修改密码配置
# vi /etc/rsyncd.pas(用户密码对文件,用“:”隔开):root:abc123,
修改权限# chmod 600 /etc/rsyncd.pas  //权限必须为600,否则会出错
配置欢迎消息 # vi /etc/rsyncd.motd: welcome to rsync 161
启动rsync:/opt/rsync/bin/rsync --daemon --config=/opt/rsync/etc/rsync.conf,加入到/etc/rc.d/rc.local开机启动
客户端配置:【格式:rsync -参数 认证的用户[auth users]@IP::模块 密码文件】
设置访问密码并赋予600权限:echo “abc123”>/etc/rsyncd.pas
本地推送到远端:
rsync –avz –P  /tem/oldboy rsync_back@10.0.0.178::oldboy/   --passwd.file=/etc/rsync.passwd
抓取:rsync –avz –P rsync:// rsync_back@10.0.0.178:/oldboy/tmp/   --passwd.file=/etc/rsync.passwd
【双冒号加模块,单冒号加路径和前面的rsync://】
用—delete作为推送时,本地和服务端实现数据同步,目录都相同,不同的删除,慎用
拉取:rsync –avz –P  rsync_backup@10.0.0.114::oldboy/etc/rsync.password
/tmp  --passwd.file=/etc/rsync.passwd
添加多个模块:相同的参数放在前面,后面的模块添加模块路径
设置自动化:#vim /usr/sbin/rsync.sh【chmod 770】【00 * * * * /bin/sh /usr/sbin/rsyncd.sh】
注意:关闭防护墙iptable、selnux、文件权限
 
Rsync+inodify实现远程同步命令:
确保rsync服务端配置完成,客户端能推送到服务端:
客户端推送:
rsync –avzP  --timeout=100 /data/www rsync_backup@10.0.0.12::www  --passwd.file=/etc/rsync.passwd
推送成功部署inotify:ls –l  /proc/sys/fs/inotify出现三个文件表示能配置inotify
max_queued_evnets   分配给inotify instance中可排队的event的数目的最大值
max_user_instances 每一个real user ID可创建的inotify instatnces的数量上限
max_user_watches 每个inotify instatnces可监控的最大目录数量
 
下载inotify安装:./configure –prefix=/usr/local/inotify
配置事件监控脚本:IP地址、同步目录、模块、虚拟用户名、密码、安装路径,进行判断不存在返回错误
#!/bin/bash
#para
host01=192.168.1.160  #inotify-slave的ip地址
src=/backup/        #本地监控的目录
dst=backup         #inotify-slave的rsync服务的模块名
user=rsync_backup      #inotify-slave的rsync服务的虚拟用户
rsync_passfile=/etc/rsync.password   #本地调用rsync服务的密码文件
inotify_home=/usr/local/inotify-3.14    #inotify的安装目录
#judge
if [ ! -e "$src" ] \
|| [ ! -e "${rsync_passfile}" ] \
|| [ ! -e "${inotify_home}/bin/inotifywait" ] \
|| [ ! -e "/usr/bin/rsync" ];
then
echo "Check File and Folder"
exit 9
fi
${inotify_home}/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f' -e close_write,delete,create,attrib $src \
| while read file
do
#  rsync -avzP --delete --timeout=100 --password-file=${rsync_passfile} $src $user@$host01::$dst >/dev/null 2>&1
cd $src && rsync -aruz -R --delete ./  --timeout=100 $user@$host01::$dst --password-file=${rsync_passfile} >/dev/null 2>&1
done
exit 0
执行脚本sh inotify.sh &   ps –ef|grep inotify
进入同步目录查看情况 ,创建时两边都生效。
测试:创建100个文件 for f in `echo {100..200}`;do touch $f;done

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值