九五从零开始的运维之路(其二十三)

简介: rsync服务是一个可靠、高效和安全的文件同步和备份工具,它可以帮助用户轻松地管理和保护数据。无论是个人用户还是企业用户,都可以从rsync服务中获得许多好处。

前言

本篇将简述的内容:Linux系统下的rsync服务


一、概述

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


二、特性

快速:

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

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


安全:

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

直接通过socket连接

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


应用场景:

增量同步

备份迁移


数据的同步方式:

数据备份:拉取(下载)

数据恢复:推送(上传)


rsync传输模式

本地传输

本地同步数据,类似于cp

远程传输

远程同步数据,类似于scp

守护进程

通过模块化的方式实现批量传输


三、应用安装

配置基础环境


yum -y install rsync


如果已经安装,直接启动

systemctl start rsyncd


监听端口号

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]
1

推送


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


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


2.选项

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

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

-z在传输文件时进行压缩


举例

本地


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


3.配置文件

/etc/rsyncd.conf


(一)全局配置

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 指定密码文件

4.守护进程传输

(一)配置文件

uid=rsync uid指定认证用户

gid=rsync gid指定认证用户

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 模块路径

(二)创建认证用户

useradd rsync -s /sbin/nologin -M


(三)创建认证用户的密码

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


 chmod 600 /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
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.服务器端配置

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

修改主配置文件



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


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

编写开机自启脚本


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
1

写入文件


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


总结

rsync服务是一个可靠、高效和安全的文件同步和备份工具,它可以帮助用户轻松地管理和保护数据。无论是个人用户还是企业用户,都可以从rsync服务中获得许多好处。

目录
相关文章
|
11月前
|
运维 Java 应用服务中间件
九五从零开始的运维之路(其十九)
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。 Tomcat虚拟主机是通过linux或windows操作系统下进行独立运行的一个网站发布容器,他是一种在单一主机或主机群上,实现多网域服务的方法,可以运行多个网站或服务的技术。
78 0
|
11月前
|
SQL 运维 关系型数据库
|
11月前
|
运维 关系型数据库 MySQL
九五从零开始的运维之路(其三十五)
MHA(MasterHigh Availability)是一套优秀的MySQL高可用环境下故障切换和主从复制的软件。 MHA 的出现就是解决MySQL 单点的问题。 MySQL故障切换过程中,MHA能做到0-30秒内自动完成故障切换操作。 MHA能在故障切换的过程中最大程度上保证数据的一致性,以达到真正意义上的高可用。
66 2
|
11月前
|
监控 Linux 网络安全
Linux系统下的keepalived双机热备
在一个 LVS 服务集群中通常有主服务器(MASTER)和备份服务器(BACKUP)两种角色的服务器,但 是对外表现为一个虚拟 IP,主服务器会发送 VRRP 通告信息给备份服务器,当备份服务器收不到 VRRP消息的时候,即主服务器异常的时候,备份服务器就会接管虚拟 IP,继续提供服务,从而保证了高可用性。
149 0
|
11月前
|
运维 负载均衡 算法
九五从零开始的运维之路(其三十六)
(一)四层负载均衡器 四层负载均衡器也称为 4 层交换机,主要通过分析 IP 层及 TCP/UDP 层的流量实现基于 IP 加端口的负载均衡,如常见的 LVS、F5 等;
59 0
|
11月前
|
存储 缓存 NoSQL
九五从零开始的运维之路(其三十二)
本篇将简述的内容:Linux系统下的Redis基础
67 0
|
11月前
|
存储 运维 Linux
九五从零开始的运维之路(其三十一)
计划任务是在指定的时间间隔内自动执行的任务。在Linux系统中,常用的计划任务工具是crond(cron daemon)。用户可以通过创建计划任务来定期执行指定的命令或脚本。
58 0
|
11月前
|
存储 运维 关系型数据库
九五从零开始的运维之路(其二十九)
数据库备份是指将数据库中的数据、表格、视图、存储过程、触发器等信息备份到另一个地方,以便在数据库丢失或损坏时进行恢复。数据库备份是数据库管理中必不可少的一项工作,通过备份可以保护数据库中的数据和业务
70 0
|
11月前
|
运维 关系型数据库 MySQL
九五从零开始的运维之路(其二十八)
数据库用户权限管理是数据库系统中非常重要的一个方面,它用于控制不同用户访问和操作数据库的权限范围。数据库用户权限管理可以保护敏感数据和数据库结构,确保只有被授权的用户才可以操作和使用数据库,防止数据被修改或泄露,并最大程度地保证数据库的安全。为了保护数据库的安全性,合理管理MySQL服务用户的权限是至关重要的。
50 0
|
11月前
|
存储 SQL 运维
九五从零开始的运维之路(其二十七)(1)
排序查询:排序查询是通过SQL查询语句将所查询的结果按照指定的排序方式排列 升序(默认):ASC
159 0