Linux系统中的rsync服务

本节主要学习了rsync服务的概述,特性,应用场景,数据同步方式,rsync传输模式,rsync的应用,rsync的命令,rsync+inotfy实时同步


目录

一、概述

二、特性

1.快速

2.安全

三、应用场景

四、数据的同步方式

五、rsync传输模式

六、rsync应用

1、安装

2、监听端口号

七、rsync命令

1、格式—rsync [选项] 原始位置 目标位置

①作为远程命令

②作为rsync服务

2、选项

3、举例

4、配置文件

                            /etc/rsyncd.conf

5、守护进程

①配置

②创建用户

③创建认证用户的密码

④准备模块目录

⑤重启服务

⑥客户端远程传输

⑦通过密码文件实现免密传输

⑧练习

八、rsync+inotfy实时同步

1、服务器端

2、开发客户端

①安装inotify工具

②配置内核参数

③ inotifywait -mrq -e modify,create,move,delete /var/www/html

④编写脚本

⑤赋予执行权限

⑥写入文件


一、概述

rsync是linux 下一个远程数据同步工具
他可通过LAN/WAN快速同步多台主机间的文件和目录,并适当利用rsync 算法减少数据的传输
会对比两个文件的不同部分,传输差异部分,因此传输速度相当快
rsync可拷贝、显示目录属性,以及拷贝文件,并选择性的压缩及递归拷贝

二、特性

1.快速

第一次传输全部,下一次传输差异

rsync在传输过程中可以实行压缩和解压缩,使用更少的带宽

2.安全

可以使用scp、ssh等方式传输

直接通过socket连接

支持匿名传输、方便进行网站镜像

三、应用场景

                     增量同步           备份迁移

四、数据的同步方式

数据备份:拉取(下载)pull
数据恢复:推送(上传)push

五、rsync传输模式

本地传输本地同步数据,类似于cp
远程传输远程同步数据,类似于scp
守护传输通过模块化的方式实现批量传输

六、rsync应用

1、安装

yum -y install rsync如果已经安装,直接启动
systemctl start rsyncd

2、监听端口号

                                  TCP/873

七、rsync命令

1、格式—rsync [选项] 原始位置 目标位置

①作为远程命令

拉取rsync [OPTION...] [USER@]HOST:SRC... [DEST]
推送rsync [OPTION...] SRC... [USER@]HOST:DEST

②作为rsync服务

拉取rsync [OPTION...] [USER@]HOST::SRC... [DEST]
rsync [OPTION...] rsync://[USER@]HOST[:PORT]/SRC... [DEST]
推送rsync [OPTION...] SRC... [USER@]HOST::DEST
rsync [OPTION...] SRC... rsync://[USER@]HOST[:PORT]/DEST

2、选项

-a归档模式,递归并保留对象属性,等同于-rlptgoD
-v-verbose           显示同步过程的详细信息
-z在传输文件时进行压缩

3、举例

本地rsync  -avz  abc/  /opt
rsync  -avz  /abc  /opt
远程rsync -avz root@192.168.2.7:/etc/hostname  /root/
rsync -avz  /root/hostname root@192.168.2.7:/etc/hostname

本地

 远程(客户机登录操作)

4、配置文件

                            /etc/rsyncd.conf

全局

配置

address-独立运行时,用于指定服务器运行的 IP 地址,默认本地所有IP
port指定 rsync 守护进程监听的端口号,默认 873
pid filersync 的守护进程将其 PID 写入指定的文件
log file指定 rsync 守护进程的日志文件,而不将日志发送给 syslog
syslog facility指定 rsync 发送日志消息给 syslog 时的消息级别
socket options指定自定义 TCP 选项
lockfile指定rsync的锁文件存放路径
timeout超时时间

 

模块配置path指定当前模块的同步路径,该参数是必须指定的
comment给模块指定一个描述
use chroot 在服务运行时要不要把他锁定在家目录,默认为 true
uid和gid指定rsync运行用户和用户组,默认nobody
max connections最大并发连接数,0为不限制
lock file指定支持 max connections的锁文件。默认/var/run/rsyncd.lock
list 指定列出模块列表时,该模块是否被列出。默认为 true
read only  只读选择,默认true
write only只写选择,不让客户端从服务器上下载文件。默认false
ignore errors忽略IO错误,默认true
ignore nonreadable指定 rysnc 服务器完全忽略那些用户没有访问权限的文件。
dont compress用来指定那些在传输之前不进行压缩处理的文件。
hosts allow指定哪些主机客户允许连接该模块。默认值为 *
hosts deny指定哪些主机客户不允许连接该模块
auth users指定用于上传的用户名
secrets files指定密码文件

5、守护进程

①配置

uid=rsync
gid=rsync
fake super=yes  # 用于允许非root用户,在备份目录创建文件
list=false# 默认true,允许查看本机有哪些模块
auth users=rsync_backup# 用于指定认证用户
read only = false
max connections=4 # 允许最大连接数
read only=false# 默认yes,模块目录只读权限
ignore errors # 屏蔽错误报错
timeout=900 # 指定rsync传输超时时间
[backup]
path=/backup

②创建用户

            useradd rsync -s /sbin/nologin -M

③创建认证用户的密码

           echo 'rsync_backup:123456' >/etc/rsync.passwd

           chmod 600 /etc/rsync.passwd

④准备模块目录

           mkdir /backup

           chown rsync.rsync /backup

⑤重启服务

          systemctl restart rsyncd

⑥客户端远程传输

          rsync -avz /etc/hosts rsync_backup@192.168.2.62::backup

服务器查看

⑦通过密码文件实现免密传输

vim /etc/rsync.passwd密码
chmod   600 /etc/rsync.passwd

rsync -avz /etc/hosts rsync_backup@192.168.2.62::backup --password-file /etc/rsync.passwd

客户端操作

 服务器查看

⑧练习

1、使用认证用户为jx_名字缩写,认证密码为班级编号
2、模块名称为juexing
3、客户端创建文件user.txt,内容为所有的用户信息
4、自行修改文件内容,在服务器上实现同步

1、修改配置文件

 2、创建用户并设置密码,修改权限

3、客户端输入 cat /etc/passwd > /user.txt

4、服务端重启服务

5、客户端查看

 服务器查看

6、修改客户端user.txt

 服务器查看

八、rsync+inotfy实时同步

1、服务器端

①安装网站服务,启动,但是不写首页文件

②修改主配置文件/etc/rsyncd.conf

uid = root
gid = root
[wwwroot]
         path = /var/www/html
        comment = backup export area
        read only = false
       hosts allow = 192.168.1.0/24

2、开发客户端

①安装inotify工具

 inotify-tools
tar xf  inotify-tools-3.14.tar.gz
./configure && make && make install

②配置内核参数

vim /etc/sysctl.conf
fs.inotify.max_user_instances = 1024
fs.inotify.max_queued_events = 16384
fs.inotify.max_user_watches=1048576
sysctl -P

 

③ inotifywait -mrq -e modify,create,move,delete /var/www/html

④编写脚本

vim /opt/inotify_rsync.sh
#!/bin/bash
INOTIFY_CMD="inotifywait -mrq -e modify,create,attrib,move,delete /var/www/html/"
RSYNC_CMD="rsync -azH --delete  /var/www/html/192.168.115.130::wwwroot"
$INOTIFY_CMD | while read DIRECTORY EVENT FILE
do
$RSYNC_CMD
done

⑤赋予执行权限

                     chmod +x inotify_rsync.sh

⑥写入文件

vim /etc/rc.local

                  /root/inotify_rsync.sh

客户端设置


 服务器查看

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值