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…...
Kerberos身份认证原理与企业级排错实战指南
1. 这不是“另一个登录框”,而是一套精密运转的身份验证齿轮系统很多人第一次听说 Kerberos,是在公司内网登录邮箱或访问内部系统时,看到那个带小盾牌图标的弹窗——“正在使用 Kerberos 协议进行身份验证”。于是下意识觉得:“哦…...
高性能Windows流媒体服务器部署:5大核心技术与3种实战架构深度解析
高性能Windows流媒体服务器部署:5大核心技术与3种实战架构深度解析 【免费下载链接】srs-windows 项目地址: https://gitcode.com/gh_mirrors/sr/srs-windows 在Windows平台上构建专业级流媒体服务系统,需要综合考虑协议兼容性、性能优化和部署架…...
第二周(第12周)
1.单电源供电的二阶低通滤波器2.功率放大电路...
智慧无人机巡检-无人机可见光红外数据集 无人机多模态检测数据集 红外与可见光检测数据集
智慧无人机巡检-无人机可见光红外数据集,已完成标注,可导出各种常用数据集,yolo,voc,coco等格式。可见光33000张,红外16100张,目标一张一个 无人机可见光红外目标数据集项目详细信息数据集名称无…...
ROS Noetic实战:从bag包里‘抠’出雷达点云和IMU数据的保姆级教程(Ubuntu 20.04)
ROS Noetic实战:从bag包里提取雷达点云和IMU数据的完整指南(Ubuntu 20.04)在机器人开发中,ROS bag文件就像是一个装满珍贵数据的宝箱,而雷达点云和IMU数据则是其中最闪亮的宝石。作为一名长期与ROS打交道的开发者&…...
别再死记硬背了!用5个生活化比喻彻底搞懂Linux进程的fork、exec和wait
别再死记硬背了!用5个生活化比喻彻底搞懂Linux进程的fork、exec和wait想象你正在厨房准备一顿大餐。菜谱上写着"切菜"、"炒菜"、"装盘"等步骤,但突然发现需要同时处理多道菜品——这时候,你会本能地让家人分工…...
基于ATtiny84的智能冰箱监控器:低功耗温度与门状态监测方案
1. 项目概述:一个装在树莓派盒子里的智能冰箱管家如果你家里有台老冰箱,或者对食物储存温度特别在意,总担心冰箱门没关严或者突然断电导致内部升温,那么这个自己动手做的“冰箱看门狗”项目就太适合你了。它本质上是一个高度定制化…...
深度解析网络设备权限管理工具:中兴光猫工厂模式与Telnet服务完整指南
深度解析网络设备权限管理工具:中兴光猫工厂模式与Telnet服务完整指南 【免费下载链接】zteOnu A tool that can open ZTE onu device factory mode 项目地址: https://gitcode.com/gh_mirrors/zt/zteOnu 在当今网络设备管理领域,获取设备完整控制…...
Matlab,plot绘图如何添加边框
matlab生成的图——编辑(E)——坐标区属性(A)——框样式——Box,勾选效果:...
LVGL多页面开发避坑:用内部Timer替代轮询,解决页面切换时的内存踩踏问题
LVGL多页面开发中的内存安全实践:用Timer机制替代轮询的工程解决方案 在嵌入式UI开发中,LVGL因其轻量级和跨平台特性成为热门选择。但当项目复杂度提升到多页面交互时,开发者往往会遇到一个棘手问题:如何在频繁切换页面的同时保证…...
