rsync

目录

概念

下行同步实验(服务端同步到客户端)

在客户端免密交互

在客户端做定时任务

上行同步实验(客户端同步到服务端)

先做inotify-tools实现监控

同步


概念

rsync就是远程同步,它分为上行和下行,跟scp相似。它是开源的快速备份的工具,一般是系统自带的。可以在不同主机之间同步整个目录。

上行:客户端同步到服务端

下行:服务端同步到客户端

服务端:在远程同步的任务中,负责发起rsync的叫做发起端

客户端:在远程同步的任务中,负责响应的同步请求的叫做客户端

rsync的特点:

1.支持拷贝文件,链接文件等等

2.可以同步整个目录

3.可以支持保留源文件或者目录的权限等等

4.可以实现增量同步

同步方式:

1.完整备份

2.增量备份

常用的选项:

1. -a 归档模式,保留权限

2. -v 显示同步的详细过程

3. -z 压缩,在传输的过程中对文件进行压缩

4. -H 同步硬链接

5. --delete 同步删除文件

6. -l 同步连接文件

7. -r 递归,所有

下行同步实验(服务端同步到客户端)

192.168.233.11 服务端

192.168.233.12 客户端

在服务端

vim /etc/rsyncd.conf

uid = root
gid = root
use chroot = yes
#是否紧固在源目录
address = 192.168.233.11
#监听地址
port 873
# max connections = 4
pid file = /var/run/rsyncd.pid
log file = /var/log.rsyncd.log
hosts allow = 192.168.233.0/24
#允许访问的客户端的IP地址
dont compress = *.gz *.bz2 *.tgz *.zip *.rar *.z
#在传输过程中,不再进行压缩的文件类型
[test]
#共享模块的名称,后续通过模块的名称来进行同步
path = /opt/test
#源目录,就是同步的目录
#comment = test
#备注信息
read only = no
#源目录,客户端可以读也可以写
auth users = backuper
#授权登录的账户名称
secrets file = /etc/rsyncd_users.db
#授权登录用户的密码文件

vim /etc/rsyncd_users.db

backuper:123456

chmod 600 /etc/rsyncd_users.db

mkdir /opt/test

chmod 777 /opt/test

systemctl restart rsyncd

netstat -antp | grep 873

在客户端

rsync -avz backuper@192.168.233.11::test /opt/

注:第一次是全量备份,第二次就是增量备份

在客户端免密交互

echo "123456" > /etc/server.pass

chmod 600 /etc/server.pass

rsync -avz --password-file=/etc/server.pass backuper@192.168.233.11::test /opt/

此时就不需要输入密码

在客户端做定时任务

crontab -e

上行同步实验(客户端同步到服务端)

先做inotify-tools实现监控

inotify watch 监控变化

inotify wait 监控修改,创建,移动,删除,属性修改(权限修改,所有者,所在组)如果发生变动,立即输出结果

实验步骤

把inotify-tools-3.14.tar拖入客户端

tar -xf inotify-tools-3.14.tar.gz

yum -y install make

cd inotify-tools-3.14/

./configure

make -j 4 && make install

cd /opt/

mkdir xy102

chmod 777 xy102

cd xy102/

touch 123 

在开一个终端客户端

inotifywait -mrq -e modify,create,move,delete,attrib /opt/xy102

m:持续监控

r:递归整个目录 ,只要有变化包含子目录的变化全部记录

q:简化输出的信息

e指定监控的时间

同步

在客户端

vim inotify.sh

#!/bin/bash
inotify_cmd="inotifywait -mrq -e modify,create,attrib,move,delete /opt/xy102"
rsync_cmd="rsync -azH --delete --password-file=/etc/server.pass /opt/xy102 backuper@192.168.233.11::test/"
$inotify_cmd | while read DIRECTORY EVENT FILE
##while判断是否接收到监控记录
do
    if [ $(pgrep rsync | wc -l) -le 0 ]
   then
        $rsync_cmd
    fi
done

chmod 777 inotify.sh

./inotify.sh

在服务端会同步

如果客户端修改,服务端也会同步保证两边一致

  • 20
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值