CentOS 7 搭建lsyncd实现文件实时同步 —— 筑梦之路
在 CentOS 7 上搭建 lsyncd(Live Syncing Daemon)以实现文件的实时同步,可以按照以下步骤进行操作。lsyncd 是一个基于 inotify 的轻量级实时同步工具,支持本地和远程同步。以下是详细的安装和配置步骤:
1. 系统准备
1.1 更新系统软件包
首先,确保你的系统软件包是最新的:
sudo yum update -y
1.2 安装 EPEL 仓库
lsyncd 通常在 EPEL(Extra Packages for Enterprise Linux)仓库中提供,因此需要先安装 EPEL 仓库:
sudo yum install epel-release -y
2. 安装 lsyncd
2.1 安装 lsyncd
使用 yum 安装 lsyncd:
sudo yum install lsyncd -y
2.2 验证安装
安装完成后,可以通过以下命令检查 lsyncd 版本,确认安装成功:
lsyncd --version
3. 配置 SSH 密钥认证(用于远程同步)
如果需要将文件同步到远程服务器,需要配置 SSH 密钥认证,以便 lsyncd 可以无密码登录到远程服务器。
3.1 生成 SSH 密钥对
在源服务器上生成 SSH 密钥对:
ssh-keygen -t rsa -b 2048
按提示操作,通常可以直接按回车键使用默认设置。
3.2 复制公钥到目标服务器
将生成的公钥复制到目标服务器的 ~/.ssh/authorized_keys
文件中:
ssh-copy-id username@remote_host
将 username
和 remote_host
替换为实际的用户名和目标服务器地址。
3.3 测试 SSH 连接
确保可以通过 SSH 无密码登录到目标服务器:
ssh username@remote_host
如果没有提示输入密码,说明配置成功。
4. 配置 lsyncd
4.1 创建配置文件
lsyncd 的主配置文件通常位于 /etc/lsyncd/lsyncd.conf.lua
。可以使用以下命令创建或编辑该文件:
sudo nano /etc/lsyncd/lsyncd.conf.lua
4.2 配置示例
以下是一个基本的配置示例,用于将本地目录 /path/to/source
同步到远程服务器的 /path/to/destination
目录:
settings {logfile = "/var/log/lsyncd/lsyncd.log",statusFile = "/var/run/lsyncd/lsyncd.status",statusInterval = 20,
}sync {default.rsyncssh,source = "/path/to/source/",host = "remote_host",targetdir = "/path/to/destination/",user = "username",ssh = {port = 22,},rsync = {archive = true,compress = true,verbose = true,},delay = 5,
}
配置说明:
- settings: 全局设置
logfile
: 日志文件路径statusFile
: 状态文件路径statusInterval
: 状态刷新间隔(秒)
- sync: 同步配置
default.rsyncssh
: 使用 rsync 通过 SSH 进行同步source
: 本地源目录host
: 目标服务器地址targetdir
: 目标服务器上的目标目录user
: 目标服务器上的用户名ssh
: SSH 配置,可以指定端口等rsync
: rsync 配置选项archive
: 归档模式,保留符号链接、权限等信息compress
: 压缩传输数据verbose
: 显示详细输出
delay
: 延迟时间(秒),防止频繁触发同步
4.3 保存并退出
保存文件并退出编辑器(在 nano 中按 Ctrl + O
保存,Ctrl + X
退出)。
5. 创建日志和状态目录
根据配置文件中的路径,创建相应的日志和状态目录:
sudo mkdir -p /var/log/lsyncd
sudo mkdir -p /var/run/lsyncd
sudo chown lsyncd:lsyncd /var/log/lsyncd
sudo chown lsyncd:lsyncd /var/run/lsyncd
6. 启动并设置 lsyncd 开机自启
6.1 启动 lsyncd
启动 lsyncd 服务:
sudo systemctl start lsyncd
6.2 设置 lsyncd 开机自启
设置 lsyncd 服务开机自启:
sudo systemctl enable lsyncd
6.3 检查服务状态
检查 lsyncd 服务状态,确保其正在运行:
sudo systemctl status lsyncd
7. 测试同步
7.1 创建测试文件
在源目录 /path/to/source/
中创建一个测试文件:
sudo touch /path/to/source/test_file.txt
7.2 验证同步
登录到目标服务器,检查目标目录 /path/to/destination/
中是否出现 test_file.txt
文件:
ls /path/to/destination/
如果文件存在,说明同步成功。
8. 注意事项
- 防火墙配置:确保源服务器和目标服务器之间的防火墙允许 SSH 连接(默认端口为 22)。
- SELinux:如果启用了 SELinux,可能需要配置相应的策略以允许 lsyncd 进行文件操作。可以考虑暂时将 SELinux 设置为宽松模式进行测试:
但在生产环境中,建议正确配置 SELinux 策略。sudo setenforce 0
- 权限问题:确保运行 lsyncd 的用户对源目录和目标目录具有适当的读写权限。
- 日志监控:定期检查 lsyncd 的日志文件
/var/log/lsyncd/lsyncd.log
以监控同步状态和错误信息。
通过以上步骤,你可以在 CentOS 7 上成功搭建 lsyncd,实现文件的实时同步。如果在配置过程中遇到问题,可以参考 lsyncd 的官方文档或相关社区资源获取更多帮助。
相关文章:

CentOS 7 搭建lsyncd实现文件实时同步 —— 筑梦之路
在 CentOS 7 上搭建 lsyncd(Live Syncing Daemon)以实现文件的实时同步,可以按照以下步骤进行操作。lsyncd 是一个基于 inotify 的轻量级实时同步工具,支持本地和远程同步。以下是详细的安装和配置步骤: 1. 系统准备 …...

java定时任务备份数据库
文章目录 前言一、定时任务备份二、分享两个windows运行项目脚本总结 前言 数据库备份 程序中数据库备份可以有效避免因为意外,导致数据丢失,因此数据备份显得尤为重要。 一、定时任务备份 定时任务类,要在配置类或启动类开启 EnableScheduling Data Sl4j Servic…...

Vue.js 传递路由参数和查询参数
Vue.js 传递路由参数和查询参数 在 Vue.js 开发中,Vue Router 提供了灵活的方式来处理路由参数和查询参数,使得组件能够根据不同的路径或查询条件渲染相应的内容。 路由参数 路由参数(也称为路径参数)是 URL 路径的一部分&…...

2025数学建模美赛|F题成品论文
国家安全政策与网络安全 摘要 随着互联网技术的迅猛发展,网络犯罪问题已成为全球网络安全中的重要研究课题,且网络犯罪的形式和影响日益复杂和严重。本文针对网络犯罪中的问题,基于多元回归分析和差异中的差异(DiD)思…...

私有包上传maven私有仓库nexus-2.9.2
一、上传 二、获取相应文件 三、最后修改自己的pom文件...

企业信息化4:免费开源的财务管理系统
前言: 一个完整的财务管理系统不局限于传统的记账和核算工具,而是一整套包含了公司财务战略规划制订、编制各种财务计划、预算管理、资金管理、资产管理、税务管理的完整解决方案,从而实现对公司整体经营状况进行财务分析并定期汇报ÿ…...

PyCharm配置Python环境
1、打开PyCharm项目 可以从File-->Open-->选择你的项目路径-->OK,或者直接点击Open,找到项目路径-->OK,如图所示(点击Ok后可能有下面的弹窗,选择“Trust Project”即可,然后选择“New Window”打开项目) …...

蓝桥杯3522 互质数的个数 | 数论
题目传送门 首先根据a^b得出需要使用欧拉函数φ,根据欧拉函数的性质: φ ( a b ) a b − 1 ∗ φ ( a ) φ ( n ) n ∗ ( 1 − 1 / p 1 ) ∗ ( 1 − 1 / p 2 ) ∗ . . . ∗ ( 1 − 1 / p k ) ,其中 p i 为 n 的质因数 φ(a^b)a^{b-1}*φ(…...

Effective C++ 规则49:了解 new-handler 的行为
1、背景 在 C 中,new 运算符用于动态分配内存。然而,当内存分配失败时,程序默认会抛出一个 std::bad_alloc 异常。为了更灵活地处理这种情况,C 提供了一种机制,允许开发者自定义内存分配失败时的行为。这就是 new-han…...

头像生成小程序搭建(免费分享)
如下图为小程序页面的基本效果,下面将介绍该小程序的功能 页面template代码如下: <template><view class"avatar-containner"><block v-if"!showCropper"><image class"pageback" src"../../s…...

手撕Diffusion系列 - 第九期 - 改进为Stable Diffusion(原理介绍)
手撕Diffusion系列 - 第九期 - 改进为Stable Diffusion(原理介绍) 目录 手撕Diffusion系列 - 第九期 - 改进为Stable Diffusion(原理介绍)DDPM 原理图Stable Diffusion 原理Stable Diffusion的原理解释Stable Diffusion 和 Diffus…...

MySQL 基础学习(2): INSERT 操作
在这篇文章中,我们将专注于 MySQL 中的 INSERT 操作,深入了解如何高效地向表中插入数据,并探索插入操作中的一些常见错误与解决方案。 一、基础 INSERT 语法 在 MySQL 中,INSERT 操作用于向表中插入新记录,基本语法如…...

openstack 客户端命令行简介
openstack 客户端命令行简介 基本用法常用命令分类**身份认证(Keystone)**常用命令 **计算服务(Nova)**常用命令: **网络服务(Neutron)**常用命令: **块存储服务(Cinder&…...

Oracle查看数据库表空间使用情况
Oracle RAC环境查看表空间使用情况 查询字段释义: NEED_ADDFILE,--是否需增加表空间文件 TABLESPACE_NAME,--表空间名称 TABLESPACE_FILE_COUNT, --表空间当前数据文件数量 NOW_FILEENABLE_BLOCKS,--表空间文件当前数据块数 NOW_FILEENABLE_BYTES_GB,--表空间文件当…...

[护网杯 2018]easy_tornado1
题目 、 依次点击文件查看 /flag.txt flag in /fllllllllllllag /welcome.txt render /hints.txt md5(cookie_secretmd5(filename)) tornado模板注入 报cookie /error?msg{{handler.settings}} cookie_secret: 6647062b-e68d-4406-90d3-06e307fa955c} 使用python脚本…...

关于java实现word(docx、doc)转html的解决方案
最近在研究一些关于文档转换格式的方法,因为需要用在开发的一个项目上,所以投入了一些时间,给大家聊下这块逻辑及解决方案。 一、关于word转换html大致都有哪些方法? (1)使用 Microsoft Word 导出 其实该…...

【8】思科IOS AP升级操作
1.概述 本文主要针对思科AP的升级操作进行记录,思科的AP目前主要分为IOS和COS AP,IOS AP是我们常见的AP3502/AP1602/AP2702等等型号的AP,而COS AP是AP2802/3802等型号的AP。当然这里所指的都是一些室内AP,如AP1572等室外AP也同样适用。本文先对IOS AP的升级操作进行总结,…...

【ROS2】RViz2界面类 VisualizationFrame 详解
1、简述 VisualizationFrame 继承自 QMainWindow 和 WindowManagerInterface; 窗口顶部是常规布局:菜单栏 和 工具栏 窗口中心是 RenderPanel,用来渲染3D画面 周围是dock区域,包括:DisplaysPanel、ViewsPanel、TimePanel、SelectionPanel 和 ToolPropertiesPanel Windo…...

2025年01月24日Github流行趋势
项目名称:shadPS4 项目地址url:https://github.com/shadps4-emu/shadPS4项目语言:C历史star数:15576今日star数:653项目维护者:georgemoralis, psucien, squidbus, raphaelthegreat, DanielSvoboda项目简介…...

Gradle buildSrc模块详解:集中管理构建逻辑的利器
文章目录 buildSrc模块二 buildSrc的使命三 如何使用buildSrc1. 创建目录结构2. 配置buildSrc的构建脚本3. 编写共享逻辑4. 在模块中引用 四 典型使用场景1. 统一依赖版本管理2. 自定义Gradle任务 3. 封装通用插件4. 扩展Gradle API 五 注意事项六 与复合构建(Compo…...

【Airsim 仿真】查找配置文件 settings json 的路径优先级
Airsim 查找配置文件 settings.json 的路径优先级 参考官方文档 Settings - AirSim 文件格式要求 settings.json 文件采用常规的 JSON 格式。在首次启动时,AirSim 会在用户的主文件夹中创建一个没有设置的 settings.json 文件(待测试)。为…...

【FreeRTOS 教程 四】队列创建与发布项目到队列
目录 一、FreeRTOS队列: (1)队列介绍: (2)用户模型说明: (3)阻塞队列: 二、队列管理 API: (1)uxQueueMessagesWaiti…...

STM32项目分享:智能厨房安全检测系统
目录 一、前言 二、项目简介 1.功能详解 2.主要器件 三、原理图设计 四、PCB硬件设计 PCB图 五、程序设计 六、实验效果 七、资料内容 项目分享 一、前言 项目成品图片: 哔哩哔哩视频链接: STM32智能厨房安全检测系统 (资料分…...

2025美赛数学建模MCM/ICM选题建议与分析,思路+模型+代码
2025美赛数学建模MCM/ICM选题建议与分析,思路模型代码,详细更新见文末名片 一、问题A:测试时间:楼梯的恒定磨损(Archaeological Modeling) 适合专业:考古学、历史学、数学、机械工程 难度:中等…...

高并发问题的多维度解决之道
…...

Ubuntu环境 nginx 源码 编译安装
ubuntu 终端 使用 wget 下载源码 sudo wget http://nginx.org/download/nginx-1.24.0.tar.gz解压刚下载的源码压缩包 nginx-1.24.0.tar.gz sudo tar -zxvf nginx-1.24.0.tar.gz 解压完成 产生 nginx-1.24.0 目录 进入该目录 cd ./nginx-1.24.0 目录下有一个可执行文件 con…...

K8S中的数据存储之基本存储
基本存储类型 EmptyDir 描述:当 Pod 被调度到节点上时,Kubernetes 会为 Pod 创建一个空目录,所有在该 Pod 中的容器都可以访问这个目录。特点: 生命周期与 Pod 绑定,Pod 删除时,数据也会丢失。适用于临时…...

编码器和扩散模型
目录 摘要abstract1.自动编码器2.变分编码器(VAE)3.论文阅读3.1 介绍3.2 方法3.3 结论 4.总结参考文献 摘要 本周学习了自动编码器(AE)和变分自动编码器(VAE)的基本原理与实现,分析其在数据降维…...

PAT甲级-1024 Palindromic Number
题目 题目大意 一个非回文数,加上它的翻转数所得的和,进行k次,有可能会得到一个回文数。给出一个数n,限制相加次数为k次,如果小于k次就得到回文数,那么输出该回文数和相加的次数;如果进行k次还…...

FS8405 Release FS0B
复位场景:FS8405正常工作后,RSTB后期产生拉低复位信号。 1 故障与PGOOD、RSTB和FS0B引脚的联系 FS8405出现故障时,会对PGOOD、RSTB和FS0B引脚产生不同的影响,具体影响如下: 橙色标记,反应是不可配置的。…...