远程同步

rsync工具

rsync工具介绍

这是一款快速增量备份工具:
·Remote Sync,远程同步
·支持本地复制,或者与其他SSH、rsync主机同步
·官方网站:rsync官网

配置rsync备份源

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

##图形化界面系统已经装了rsync了,最小化是没有的。
[root@oracle ~]# yum -y install rsync
[root@oracle ~]# vim /etc/rsyncd.conf
##里面有模板,可以直接用,也可以在最后面自己写
uid = nobody
gid = nobody
use chroot = yes
address = 20.0.0.88
port 873
log file = /var/log/rsyncs.log
pid file = /var/run/rsyncd.pid
hosts allow = 20.0.0.0/24

[wwwroot]
path = /var/www/html
comment = lzy
read only = yes
dont compress = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2
auth users = backuper
secrets file = /etc/rsyncd_users.db

[root@oracle ~]# vim /etc/rsyncd_users.db ##在里面新增一条自己设置的登录用户和密码格式如下
backuper:As123
[root@oracle ~]# chmod 600 /etc/rsyncd_users.db  ##设置权限
[root@oracle ~]# rsync --daemon  ##启动服务
[root@oracle ~]# netstat -anpt |grep rsync
tcp        0      0 20.0.0.88:873           0.0.0.0:*               LISTEN      104399/rsync

rsync命令用法(发起端)

常用选项
-a:归档模式,递归并保留对象属性,等同于-rlptgoD
-v:显示同步过程的详细(verbose)信息
-z:在传输文件时进行压缩(compress)
-H:保留硬连接文件
-A:保留ACL属性信息
–delete:删除目标位置有而原始位置没有的文件
–checksum:根据对象的校验和来决定是否跳过文件

配置源的两种表示方法
格式1:用户名@主机地址::共享模块名
格式2: rsync://用户名@主机地址/共享模块名
[root@localhost ~]# rsync -avz backuper@20.0.0.88::wwwroot /root
[root@localhost ~]# rsync -avz rsync://backuper@20.0.0.88/wwwroot /root

我这边用第一种方法演示:
目标机器:

[root@localhost ~]# rsync -avz backuper@20.0.0.88::wwwroot /var/www/html/
Password: ##输入密码
receiving incremental file list
./

sent 27 bytes  received 47 bytes  16.44 bytes/sec
total size is 0  speedup is 0.00

rsync源的免交互处理

使用–password-file=密码文件位置

##这边要自己建
[root@localhost ~]# cat /etc/server.pass 
As123
[root@localhost ~]# rsync -avz --delete --password-file=/etc/server.pass backuper@20.0.0.88::wwwroot /var/www/html/
receiving incremental file list

sent 20 bytes  received 40 bytes  120.00 bytes/sec
total size is 0  speedup is 0.00

缺点

定期同步的不足
执行备份的时间固定,延迟明显、实时性差
当同步源长期不变化时,密集的定期任务是不必要的

inotify工具

关于inotify

在这里插入图片描述

rsync+inotify实时同步(发起端)

[root@localhost ~]# vim /etc/sysctl.conf 
##最下面加入下面三条
fs.inotify.max_queued_events = 16384
fs.inotify.max_user_instances = 1024
fs.inotify.max_user_watches = 104857
##解释
max_queue_events:监控事件队列大小
max_user_instances:最多监控实例数
max_user_watches:每个实例最多监控文件数
[root@localhost opt]# sysctl -p
##重新加载
##把压缩包放到随便啥目录里面
[root@localhost abc]# ll
-rw-r--r-- 1 root root 358772 Oct 23 12:22 inotify-tools-3.14.tar.gz
[root@localhost abc]# tar zxvf inotify-tools-3.14.tar.gz -C /opt/
[root@localhost abc]# cd /opt/
[root@localhost opt]# cd inotify-tools-3.14/
[root@localhost inotify-tools-3.14]# ./configure
[root@localhost inotify-tools-3.14]# make && make install
[root@localhost inotify-tools-3.14]# inotifywait -mrq -e modify,create,attrib,move,delete /var/www/html/
##正在监控,另外再开启一个新的终端设置
[root@localhost ~]# cd /var/www/html
[root@localhost html]# echo "this is test" > test
##去看一下监控
[root@localhost inotify-tools-3.14]# inotifywait -mrq -e modify,create,attrib,move,delete /var/www/html/
/var/www/html/ CREATE test
/var/www/html/ MODIFY test

##最后去写个脚本
[root@localhost inotify-tools-3.14]# vim /opt/inotify.sh
#!/bin/bash

INOTIFY_CMD="inotifywait -mrq -e modify,create,attrib,move,delete /var/www/html/"
RSYNC_CMD="rsync -azH --delete --password-file=/etc/server.pass /var/www/html/ backuper@20.0.0.88::wwwroot/"
$INOTIFY_CMD | while read DIRECTORY EVENT FILE
do
        if [ $(pgrep rsync | wc -l) -le 0 ] ; then
                $RSYNC_CMD
        fi
done

##然后给两台机器的同步目录权限都设置为777再把源机器/etc/rsyncd.conf设置的只读关了
[root@localhost inotify-tools-3.14]# chmod 777 /var/www/html
[root@oracle ~]# chmod 777 /var/www/html
[root@oracle ~]# vim /etc/rsyncd.conf 
read only = no
#因为改了配置文件所以要重新启动
[root@oracle ~]# netstat -anpt |grep rsync
tcp        0      0 20.0.0.88:873           0.0.0.0:*               LISTEN      104399/rsync
[root@oracle ~]# kill -9 104399
##再把之前的PID文件删掉
[root@oracle ~]# rm -rf /var/run/rsyncd.pid
[root@oracle ~]# rsync --daemon

去执行发起端的脚本
然后再去发起端同步目录建文本
最后看看源主机有没有

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值