Linux 服务器集群下同步目录文件 - rsync

简介: Linux 服务器集群下同步目录文件 - rsync

remote synchronize是一个远程数据同步工具,可通过 LAN/WAN 快速同步多台主机之间的文件。也可以使用 rsync 同步本地硬盘中的不同目录。

rsync 是用于替代 rcp 的一个工具,rsync 使用所谓的 rsync算法 进行数据同步,这种算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快。

rsync 基于inotify 开发

一、客户端 - 主动拉取文件(不实时)

1. 安装

两端安装

yum install -y rsync

2. 服务端配置

创建密码文件

vi /etc/rsync.password
或者
echo "hello:123" > /etc/rsync.password
# 账号:密码
hello:123

修改密码文件权限

chmod 600 /etc/rsync.password

修改配置文件

vi /etc/rsyncd.conf
uid = root
gid = root
use chroot = no
max connections = 200
hosts allow = *
timeout = 600
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
ignore errors
read only = false
list = false
host deny = 0.0.0.0/32
# rsyncd 权限用户
auth users = hello
secrets file = /etc/rsync.password
transfer logging = yes
#Module definitions
# 映射路径编号 拉取时需要 编号
[www]
path = /usr/local/openresty/nginx/html/

创建监控目录

mkdir -p /data/www

启动服务

rsync --daemon

3. 客户端配置

创建密码文件(客户端只需要密码)

vi /etc/rsync.password
或者
echo "123" > /etc/rsync.password

修改密码文件权限

chmod 600 /etc/rsync.password

客户端同步数据

# hello 为服务端用户名
# 192.0.0.110 为服务端地址
# www 为服务端 文件路径编号
rsync -zvaP --password-file=/etc/rsync.password hello@192.0.0.110::www /usr/local/openresty/nginx/html/

二、主服务器 - 主动推送至客户端(实时同步)

实时同步

rsync + inotify-tools 或 rsync+sersync

1. 安装

两端安装

yum install -y rsync

2. 客户端配置

创建密码文件

vi /etc/rsync.password
或者
echo "hello:123" > /etc/rsync.password
# 账号:密码
hello:123

修改密码文件权限

chmod 600 /etc/rsync.password

修改配置文件

vi /etc/rsyncd.conf
uid = root
gid = root
use chroot = no
max connections = 200
hosts allow = *
timeout = 600
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
ignore errors
read only = false
list = false
host deny = 0.0.0.0/32
# rsyncd 权限用户
auth users = hello
secrets file = /etc/rsync.password
transfer logging = yes
#Module definitions
# 映射路径编号 拉取时需要 编号
[www]
path = /usr/local/openresty/nginx/html/

启动服务

rsync --daemon

3. 服务端配置

sersync 的方式监控目录中变化的数据,通过rsync客户端推送给rsync daemon

在数据源创建密码文件

vi /etc/rsync.password 
密码 123
或 echo “123” > /etc/rsync.password
chmod 600  /etc/rsync.password

下载sersync 并解压

wget https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/sersync/sersync2.5.4_64bit_binary_stable_final.tar.gz
tar xf sersync2.5.4_64bit_binary_stable_final.tar.gz 
cd GNU-Linux-x86/
mkdir -p  /opt/sersync/{logs,conf,bin}
cp sersync2 /opt/sersync/bin
cp confxml.xml /opt/sersync/conf/
cd /opt/sersync/conf/

编辑sersync 配置文件

vi confxml.xml 
xml中:
<localpath watch="需要监控的目录" >
  <remote ip="IP地址" name=“客户端 路径编号 即 www ” />
    ... 可 remote 多个
<auth start="true" users="客户端rsync用户名 即 hello" passwordfile="服务端密码文件路径" />

启动sersync

/opt/sersync/bin/sersync2 -d -r -o ./confxml.xml

测试

cd /需要监控的目录
touch {1,2,3,4,5,6}
目录
相关文章
|
1月前
|
Java
java小工具util系列5:java文件相关操作工具,包括读取服务器路径下文件,删除文件及子文件,删除文件夹等方法
java小工具util系列5:java文件相关操作工具,包括读取服务器路径下文件,删除文件及子文件,删除文件夹等方法
75 9
|
1月前
|
Linux
在 Linux 系统中,“cd”命令用于切换当前工作目录
在 Linux 系统中,“cd”命令用于切换当前工作目录。本文详细介绍了“cd”命令的基本用法和常见技巧,包括使用“.”、“..”、“~”、绝对路径和相对路径,以及快速切换到上一次工作目录等。此外,还探讨了高级技巧,如使用通配符、结合其他命令、在脚本中使用,以及实际应用案例,帮助读者提高工作效率。
93 3
|
1月前
|
存储 Linux Windows
linux常用目录
/sbin s就是super User的意思,这里存放的是系统管理员使用的系统管理程序。 /home 存放普通用户的主目录,在Linux中每个用户都有一个自己的目录,一版该目录名是以用户的账号命名的。 /root 该目录为系统管理员,也称为超级权限者的用户主目录。 /lib 系统开机所需要最基本的动态连接共享库,其作用类似于windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。 /etc 所有的系统管理所需要的配置文件和子目录。 /usr 这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program fies目录。 /bo
44 2
|
2天前
|
Linux
linux查看目录下的文件夹命令,find查找某个目录,但是不包括这个目录本身?
通过本文的介绍,您应该对如何在 Linux 系统中查看目录下的文件夹以及使用 `find` 命令查找特定目录内容并排除该目录本身有了清晰的理解。掌握这些命令和技巧,可以大大提高日常文件管理和查找操作的效率。 在实际应用中,灵活使用这些命令和参数,可以帮助您快速定位和管理文件和目录,满足各种复杂的文件系统操作需求。
23 8
|
1月前
|
缓存 Ubuntu Linux
Linux环境下测试服务器的DDR5内存性能
通过使用 `memtester`和 `sysbench`等工具,可以有效地测试Linux环境下服务器的DDR5内存性能。这些工具不仅可以评估内存的读写速度,还可以检测内存中的潜在问题,帮助确保系统的稳定性和性能。通过合理配置和使用这些工具,系统管理员可以深入了解服务器内存的性能状况,为系统优化提供数据支持。
39 4
|
1月前
|
运维 监控 网络协议
运维工程师日常工作中最常用的20个Linux命令,涵盖文件操作、目录管理、权限设置、系统监控等方面
本文介绍了运维工程师日常工作中最常用的20个Linux命令,涵盖文件操作、目录管理、权限设置、系统监控等方面,旨在帮助读者提高工作效率。从基本的文件查看与编辑,到高级的网络配置与安全管理,这些命令是运维工作中的必备工具。
136 3
|
1月前
|
NoSQL Linux PHP
如何在不同操作系统上安装 Redis 服务器,包括 Linux 和 Windows 的具体步骤
本文介绍了如何在不同操作系统上安装 Redis 服务器,包括 Linux 和 Windows 的具体步骤。接着,对比了两种常用的 PHP Redis 客户端扩展:PhpRedis 和 Predis,详细说明了它们的安装方法及优缺点。最后,提供了使用 PhpRedis 和 Predis 在 PHP 中连接 Redis 服务器及进行字符串、列表、集合和哈希等数据类型的基本操作示例。
67 4
|
1月前
|
Linux Python
Linux 中某个目录中的文件数如何查看?这篇教程分分钟教会你!
在 Linux 系统中,了解目录下文件数量是常见的需求。本文介绍了四种方法:使用 `ls` 和 `wc` 组合、`find` 命令、`tree` 命令以及编程实现(如 Python)。每种方法都附有详细说明和示例,适合不同水平的用户学习和使用。掌握这些技巧,可以有效提升系统管理和日常使用的效率。
570 6
|
1月前
|
运维 监控 安全
盘点Linux服务器运维管理面板
随着云计算和大数据技术的迅猛发展,Linux服务器在运维管理中扮演着越来越重要的角色。传统的Linux服务器管理方式已经无法满足现代企业的需求,因此,高效、安全、易用的运维管理面板应运而生。
|
2月前
|
监控 Linux Shell