哇~真的是你呀!今天是LINUX中的RSYNC服务

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

一、概述


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

二、特性


1)快速:

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

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


2)安全:

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

   直接通过socket连接

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


3)应用场景:增量同步、备份迁移


4)数据的同步方式:数据备份:拉取(下载)pull

                                 数据恢复:推送(上传)push

三、rsync传输模式


1)本地传输:  本地同步数据,类似于cp

2)远程传输:远程同步数据,类似于scp

3)守护进程: 通过模块化的方式实现批量传输

四、rsync应用


安装

yum -y install rsync

( 如果已经安装,直接启动 systemctl start rsyncd)

监听端口号TCP/873

五、格式


rsync [选项] 原始位置 目标位置


1)作为远程命令

   拉取

   

rsync [OPTION...] [USER@]HOST:SRC... [DEST]

   推送

   

rsync [OPTION...] SRC... [USER@]HOST:DEST


2)作为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


3)选项

   -a

       归档模式,递归并保留对象属性,等同于-rlptgoD

   -v

       -verbose           显示同步过程的详细信息

   -z

       在传输文件时进行压缩


4)举例

   本地

   

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

 

六、配置文件



  全局配置

       address    独立运行时,用于指定服务器运行的 IP 地址,默认本地所有IP

       port       指定 rsync 守护进程监听的端口号,默认 873

       pid file     rsync 的守护进程将其 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

           指定密码文件

七、守护进程传输


1.配置

   uid=rsync

   gid=rsync

   fake super=yes     # 用于允许非root用户,在备份目录创建文件

   list=false              # 默认true,允许查看本机有哪些模块

   auth users=rsync_backup  # 用于指定认证用户

   secrets file=/etc/rsync.passwd  # 指定认证用户密码

   read only = false

   max connections=4                 # 允许最大连接数

   read only=false                       # 默认yes,模块目录只读权限

   ignore errors                          # 屏蔽错误报错

   timeout=900                          # 指定rsync传输超时时间

   [backup]

   path=/backup




2.操作


1)创建用户

useradd rsync -s /sbin/nologin -M


2)创建认证用户的密码

 

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


3)准备模块目录

 

mkdir /backup
    chown rsync.rsync /backup

4)重启服务

 

systemctl restart rsyncd

5)客户端远程传输

 

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

6)通过密码文件实现免密传输

   vim /etc/rsync.passwd   123456

chmod   600 /etc/rsync.passwd

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

回到服务器验证

八、rsync+inotfy实时同步


1.服务器端

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

   2)修改主配置文件

 

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

2.开发客户端

 1)  安装inotify工具

   

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

   2)配置内核参数

 

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

   3)

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

   4)编写脚本

   

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

   5)赋予执行权限

   

chmod +x inotify_rsync.sh

  6)写入文件

   

vim /etc/rc.local
            /root/inotify_rsync.sh

总结


我们在进行配置时有以下几点要注意:1.我们在修改主配置文件时要仔细避免书写错误、以及我们模块的路径要书写正确,否则会出现找不到模块的错误。2.在配置完成后需要修改我们的模块属主、属组;以及密码文件的权限否则会出现文件传输错误,没有权限的问题。3.注意我们环境是否配置正确如果没有关闭防火墙、seliux则会出现找不到网关的错误。


 


目录
相关文章
|
7天前
|
Linux 应用服务中间件 Shell
linux系统服务二!
本文详细介绍了Linux系统的启动流程,包括CentOS 7的具体启动步骤,从BIOS自检到加载内核、启动systemd程序等。同时,文章还对比了CentOS 6和CentOS 7的启动流程,分析了启动过程中的耗时情况。接着,文章讲解了Linux的运行级别及其管理命令,systemd的基本概念、优势及常用命令,并提供了自定义systemd启动文件的示例。最后,文章介绍了单用户模式和救援模式的使用方法,包括如何找回忘记的密码和修复启动故障。
25 5
linux系统服务二!
|
7天前
|
Linux 应用服务中间件 Shell
linux系统服务!!!
本文详细介绍了Linux系统(以CentOS7为例)的启动流程,包括BIOS自检、读取MBR信息、加载Grub菜单、加载内核及驱动程序、启动systemd程序加载必要文件等五个主要步骤。同时,文章还对比了CentOS6和CentOS7的启动流程图,并分析了启动流程的耗时。此外,文中还讲解了Linux的运行级别、systemd的基本概念及其优势,以及如何使用systemd管理服务。最后,文章提供了单用户模式和救援模式的实战案例,帮助读者理解如何在系统启动出现问题时进行修复。
25 3
linux系统服务!!!
|
19天前
|
Unix Linux
Linux | Rsync 命令:16 个实际示例(下)
Linux | Rsync 命令:16 个实际示例(下)
29 3
Linux | Rsync 命令:16 个实际示例(下)
|
11天前
|
Linux 数据库
Linux服务如何实现服务器重启后的服务延迟自启动?
【10月更文挑战第25天】Linux服务如何实现服务器重启后的服务延迟自启动?
66 3
|
11天前
|
关系型数据库 MySQL Linux
Linux系统如何设置自启动服务在MySQL数据库启动后执行?
【10月更文挑战第25天】Linux系统如何设置自启动服务在MySQL数据库启动后执行?
58 3
|
25天前
|
安全 Linux Shell
Linux | Rsync 命令:16 个实际示例(上)
Linux | Rsync 命令:16 个实际示例(上)
55 0
Linux | Rsync 命令:16 个实际示例(上)
|
30天前
|
Ubuntu Linux 网络安全
Linux中服务管理问题
【10月更文挑战第4天】
22 2
|
1月前
|
应用服务中间件 Linux Shell
Linux 配置 Nginx 服务的详细步骤,绝对干货
Linux 配置 Nginx 服务的详细步骤,绝对干货
67 0
|
2月前
|
NoSQL Linux Redis
Linux Redis 服务设置开机自启动
【9月更文挑战第2天】在 Linux 系统中,可使用两种方法设置 Redis 开机自启动:一是通过创建 `redis.service` 文件并利用 systemd 进行管理,包括定义服务参数和启动脚本;二是编辑 `/etc/rc.local` 文件,在其中添加启动命令。推荐使用 systemd 方法,因为它更符合现代 Linux 系统的设计理念。设置完成后,可通过 `sudo systemctl status redis.service` 检查服务状态。
264 3
|
2月前
|
编解码 Linux 开发工具
Linux平台x86_64|aarch64架构RTMP推送|轻量级RTSP服务模块集成说明
支持x64_64架构、aarch64架构(需要glibc-2.21及以上版本的Linux系统, 需要libX11.so.6, 需要GLib–2.0, 需安装 libstdc++.so.6.0.21、GLIBCXX_3.4.21、 CXXABI_1.3.9)。
下一篇
无影云桌面