Rsync远程同步

Rsync远程同步
1、定义
上行 客户端同步到服务端

下行 服务端同步到客户端

开源的快速备份的工具,一般是系统自带的。可以在不同主机之间同步整个目录树(目录)

在远程同步的任务中,负责发起rsync叫做发起端,也就是服务端,负责响应的同步请求,就是客户端

2、rsync特点
2.1 支持拷贝文件,链接文件等

2.2 可以同步整个目录

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

2.4 实现增量同步

3、同步方式
3.1 完整备份

3.2 增量备份

4、常用选项
-a 归档模式,保留权限

-v 显示同步的详细过程

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

-H 保留硬链接

–delete 同步删除文件

-l 同步快捷方式

-r 递归,所有

5、实验
test1 192.168.100. 11 客户端

test2 192.168.100.12 服务端

5.1 下行(下载)

同时
systemctl stop firewalld
setenforce 0

test1

rpm -q reync   # 系统自带,可省去安装

vim /etc/rxyncd.conf
uid = root
gid = root
use chroot = yes     # 禁锢在源目录
address = 192.168.100.10    # 监听地址
port 873             # 监听端口
log file = /var/log/rsyncd.log	 # 日志文件位置
pid file = /var/run/rsyncd.pid	 # 存放进程ID的文件位置
hosts allow = 192.168.100.0/24   #允许访问的客户机地址,不加则允许所有
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
# 授权登录账号的密码保存文件
wq!

vim /etc/rsyncd_users.db
backuper:123456
wq!

chmod 600 /etc/rsyncd_users.db  # 权限只能是600

mkdir /opt/test
chmod 777 /opt/test
netstat -antp | grep 873
netstat -antp | grep rsync
systemctl restart rsyncd   # 端口没启动,则重启服务,再启端口
netstat -antp | grep 873

cd /opt/test
echo 123 > 123 
echo 456 > 456

# test2
rsync -avz backuper@192.168.100.11::test /opt
输入密码
cd /opt
ls

免密登录
echo "123456" > /etc/server.pass
chmod 600 /etc/server.pass

# test1
echo 000 > 000

# tets2
rsync -avz --password-file=/etc/server.pass backuoer@192.168.100.11::test /opt  # 免密同步
此时查看/opt下出现000

## 如何定时同步?
创建定时任务
# test2(客户端)
whereis rsync     # /usr/bin/rsync
crontab -e
30 22 * * * /usr/bin/rsync -avz --password-file=/etc/server.pass backuoer@192.168.100.11::test /opt
# 每天十点半免密同步
wq!
systemctl restart crond
systemctl enable crond

5.2 上行(上传)
inotify-tools

inotify 实现监控

inotify watch 监控文件系统的变化

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

test1 192.168.100. 11 客户端

test2 192.168.100.12 服务端

# test2
cd /opt 拖包inotify-tools-3.14.tar.gz
tar -xf inotify-tools-3.14.tar.gz
yum -y install make     # 安装make

cd inotify-tools-3.14/
./configure
make -j 4 && make install 

cd /opt
mkdir xy102
chmod 777 xy102

# test2再开一个终端
inotifywait -mrq -e modify,create,move,delete /opt/xy102

# 返回test2
cd /xy102  
touch 123   # 在/opt/xy02目录下操作,另一个终端会同步监控
---------------------------------------------------------
m 持续监控
r 递归整个目录,只要有变化包含子目录的变化全部记录
q 简化输出的信息
e 指定监控的事件
attrib 属性修改

# 第二个test2
inotifywait -mrq -e modify,create,move,delete,attrib /opt/xy102   # 多一个权限监控


# test2
cd /opt
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.100.11::test/"
# -azH中的H表示同步硬连接,如果要同步软连接,加个l
# --delete
# 使两个文件完全同步,有不相同的删掉,即全同步(即服务器两边内容完全一致)

$INOTIFY_CMD | while read DIRECTORY EVENT FILE
do
    if [ $(pgrep rsync | wc -l) -le 0 ] 
then
        $RSYNC_CMD
    fi
done
wq!

chmod 777 inotify.sh
./inotify.sh

# 在打开一个test2的终端
cd /opt/xy102
touch xy103

# test1
cd /opt/test/xy102
ls # 出现xy103

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值