栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

rsync 远程同步

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

rsync 远程同步

目录

        一、rsnyc简介

        1.1 概述

        1.1.1 常用同步方式

        1.1.2  rsnyc同步方式

        1.1.3 rsnyc端口以及运行模式

        1.2 rsync常用命令

        二、搭建rsync

        2.1 实验环境

         2.2 实验搭建

        三、inotify 辅助工具

       3.1 工具简介

         3.2 inotifywait命令格式


        一、rsnyc简介

        1.1 概述

        rsync是一个开源的快速备份工具,可以在不同主机之间镜像同步整个目录树,支持增量备份,并保持链接和权限,且采用优化的同步算法,传输前执行压缩,因此非常适用于异地备份、镜像服务器等应用非常灵活的方式来实现文件的传输复制 。

        在远程同步任务中,负责发起rsync同步操作的客户机称为发起端,而负责响应来自客户机的rsync同步操作的服务器称为同步源。在同步过程中,同步源负责提供文件的原始位置,发起端应对该位置具有读取权限。

        并且可以不进行改变原有数据的属性信息,实现数据的备份迁移特性。 rsync软件适用于unix/linux/windows等多种操作系统平台

        1.1.1 常用同步方式

        全量备份:将原有的数据全部传送 把原来的文件和新的文件一起统一传送全量复制,效率低

        增量备份:传输数据之前通过一些算法通过你有的数据和我有的数据进行对比,把不一样的数据通过网络传输增量复制,效率高

        1.1.2  rsnyc同步方式

        当rsnyc接受到数据请求同步时,rsnyc将数据划分为数据块,再将其压缩。

        1.1.3 rsnyc端口以及运行模式

        rsync监听瑞口:873

        rsync运行模式:c / s

        1.2 rsync常用命令

命令格式:rsync[选项]       原始位置    目标位置 

常用选项:a v z

命令格式:rsync -avz 用户名@主机地址::共享模块名

-r递归模式,包含目录及子目录中的所有文件
-l对于符号链接文件仍然复制为符号链接文件
-v显示同步过程的详细信息
-z在传输文件时进行压缩
-a归档模式,递归并保留对象属性
-p保留文件的权限标记
-t保留文件的时间标记
-g保留文件的属组标记(仅超级用户使用)
-o保留文件的属主标记(仅超级用户使用)
-H保留硬链接文件
-A保留ACL属性信息
-D保留设备文件及其他特殊文件
--delete删除目标位置有而原始位置没有的文件
--checksum根据对象的校验和来决定是否跳过文件0.2

        二、搭建rsync

        2.1 实验环境

rsync服务器 :192.168.162.100 

客户机:192.168.162.111

         2.2 实验搭建
##rsync服务器与客户机关闭防火墙
[root@localhost ~]# systemctl stop firewalld.service
[root@localhost ~]# setenforce 0
##rsnyc服务器安装将其更新(默认安装)
[root@lppdff ~]# rpm -q rsync 
[root@lppdff ~]# yum install -y rsync
##修改配置文件
[root@lppdff ~]# vim /etc/rsyncd.conf 
uid = root
gid = root
use chroot = yes
#禁锢在源目录
address = 192.168.162.111
#监听地址
port 873
#监听端口号 tcp/udp 873
log file = /var/log/rsyncd.log
#日志地址
pid file = /var/run/rsyncd.pid
#存放进程ID的文件位置
hosts allow = 192.168.162.0/24
#允许访问的客户机地址

[ftp]
#共享模块名称
path = /var/www/html
#原目录实际路径
comment = web service
#备注
read only = yes
#是否只读
dont comperss = *.gz *.bz2 *.tgz *.zip *.rar *.z
#同步时不再压缩的文件类型
auth users = backuper
#授权账户,多个账号以空格分隔
secrets file = /etc/rsyncd_users.db
#为备份账户创建数据文件
[root@lppdff ~]# vim /etc/rsyncd_users.db
backuper:123123
#建立同步用户密码


#权限设为600
[root@lppdff ~]# chmod 600 /etc/rsyncd_users.db
##创建实际目录
[root@lppdff ~]# mkdir -p /var/www/html
[root@lppdff ~]# chmod +r /var/www/html
[root@lppdff ~]# ls -ld /var/www/html

##启动rsync
[root@lppdff ~]# rsync --daemon
##查看服务是否启动
[root@lppdff ~]# netstat -anpt |grep rsync


##关闭服务
#杀死进程
[root@lppdff ~]# kill $(cat /var/run/rsyncd.pid)
#删除文件
[root@lppdff ~]#rm -rf /var/run/rsyncd.pid

 验证

##免交互
[root@localhost ~]# echo "123123" > /etc/server.pass
[root@localhost ~]# chmod 600 /etc/server.pass
##删除
[root@localhost qwe]# rsync -avz --delete --password-file=/etc/server.pass backuper@192.168.162.100::ftp /qwe

 

场景:当客户机在同步的文件夹中创建新的文件如果此时客户机再次请求同步将如何

[root@localhost ~]# cd /qwe/
[root@localhost qwe]# ls
a.txt
[root@localhost qwe]# touch b.txt
[root@localhost qwe]# ls
a.txt  b.txt
[root@localhost qwe]# rsync -avz --delete --password-file=/etc/server.pass backuper@192.168.162.100::ftp /qwe
receiving incremental file list
deleting b.txt
./

sent 60 bytes  received 111 bytes  31.09 bytes/sec
total size is 0  speedup is 0.00
[root@localhost qwe]# 

此时如果删除,优先比对源目标具有的,目标没有的,会将其删除

        三、inotify 辅助工具

       3.1 工具简介

        可以监控文件系统的变动情况,并做出通知响应

        调整inotify内核参数(优化)   

         etc/syscti.conf(内核参数配置文件)

inotifywait#用于持续监控,实时输出结果
inotifywatch#用于短期监控,任务完成后再输出结果
max_queue_events#监控事件队列大小
max_user_instances#最多监控实例数
max_user_watches#每个实例最多监控文件数

 

         3.2 inotifywait命令格式

inotifywait[参数]

m持续进行监控
r递归监控所有子对象
q简化输出信息
e指定要监控哪些事件类型

 

##rsnyc服务器关闭只读
[root@lppdff html]# vim /etc/rsyncd.conf
read only = no      #修改只读模式为no

##关闭进程
[root@lppdff html]# kill $(cat /var/run/rsyncd.pid)
##重启进程
[root@lppdff html]# rsync --daemon
[root@lppdff html]# netstat -natp |grep rsync
##客户端调整inotify内核参数
[root@localhost ~]#cat /proc/sys/fs/inotify/max_queued_events 
16384
[root@localhost ~]#cat /proc/sys/fs/inotify/max_user_instances 
128
[root@localhost ~]#cat /proc/sys/fs/inotify/max_user_watches 
8192
##添加参数并刷新
[root@localhost qwe]# vi /etc/sysctl.conf
fs.inotify.max_queued_events = 32768
fs.inotify.max_user_instances = 1024
fs.inotify.max_user_watches = 1048576
[root@localhost qwe]# sysctl -p
[root@localhost qwe]# 


##客户端将安装包放入
[root@localhost qwe]# cd /opt/
[root@localhost opt]# rz -E
rz waiting to receive.
##安装编译环境
[root@localhost opt]# yum install -y gcc gcc-c++
##解包编译
[root@localhost opt]#tar xf inotify-tools-3.14.tar.gz 
[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 ~]# inotifywait -mrq -e modify,create,move,delete /qwe
##可以先执行“inotifywait”命令,然后另外再开启一个新的终端向/qwe目录下添加文件、移动文件,在原来的终端中跟踪屏幕输出结果

##编写触发式同步脚本
#!/bin/bash
INOTIFY_CMD="inotifywait -mrq -e create,delete,move,modify,attrib /qwe"
RSYNC_CMD="rsync -azH --delete --password-file=/etc/server.pass /var/www/html backuper@192.168.162.100::ftp"

$INOTIFY_CMD | while read DIRECTORY EVENT FILE
do
    if [ $(pgrep rsync | wc -l) -le 0 ] ; then
        $RSYNC_CMD
#       echo "${FILE} was rsynced" >>/opt/inotify_rsync.log

    fi
done

 验证

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/680185.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号