首页 > 其他分享 >rsync和inotify-tools实现文件实时同步

rsync和inotify-tools实现文件实时同步

时间:2024-10-30 19:19:52浏览次数:6  
标签:脚本 rsync inotify Server ssh 服务器 tools tongbu

rsync和inotify-tools实现文件实时同步

一、环境准备

  1. 服务器设置
    • 确定一台源服务器(假设为 Server A)和多台目标服务器(假设为 Server B、Server C 等),确保它们之间网络连通,并且能够互相通过 SSH 访问。
    • 在每台服务器上安装inotify - toolsrsync软件包。在 CentOS 系统中,可以使用yum install inotify - tools rsync - y命令进行安装。

二、配置无密码 SSH 登录

  1. 在源服务器上生成 SSH 密钥对
    • 在源服务器(Server A)上,使用ssh - keygen - t rsa命令生成 SSH 密钥对,一路回车采用默认设置即可。这将在~/.ssh目录下生成id_rsa(私钥)和id_rsa.pub(公钥)两个文件。
  2. 将公钥分发到目标服务器
    • 对于每台目标服务器,将源服务器的公钥添加到目标服务器的authorized_keys文件中,以实现无密码登录。
    • 例如,将公钥复制到 Server B 的命令为:ssh -copy-id - i ~/.ssh/id_rsa.pub user@ServerB,其中user是在 Server B 上的登录用户名,需要根据实际情况替换。同样的操作需要对每台目标服务器执行。 直接输入这条命令即可自动生成

三、创建同步脚本

  1. 在源服务器上创建脚本文件
    • 在源服务器(Server A)上创建一个脚本文件,例如/usr/local/bin/tongbu.sh,内容如下:
#!/bin/bash

# 源文件夹,根据实际情况修改
SOURCE_DIR="/temp"
# 目标服务器列表,格式为 "user@server_ip:/destination/folder",根据实际情况修改
TARGET_SERVERS=(
    "[email protected]:/temp"
    "user@ServerC:/destination/folder"
    # 如果有更多目标服务器,依次添加在此处
)
# rsync命令参数,-avz表示归档、详细输出、压缩传输
RSYNC_CMD="rsync -avz"

inotifywait -m -r -e create,delete,modify,move $SOURCE_DIR | while read -r DIRECTORY EVENT FILE; do
    for TARGET_SERVER in "${TARGET_SERVERS[@]}"; do
        $RSYNC_CMD --delete $SOURCE_DIR $TARGET_SERVER
        echo "Syncing: $SOURCE_DIR to $TARGET_SERVER due to $EVENT on $FILE"
    done
done
  1. 赋予脚本执行权限
    • 在源服务器上,使用chmod +x /usr/local/bin/tongbu.sh命令赋予脚本可执行权限。

四、启动同步脚本

  1. 手动启动脚本
    • 在源服务器上,通过/usr/local/bin/tongbu.sh命令手动启动同步脚本,开始实时同步文件夹到多台目标服务器。
  2. 设置开机自启
    • 若要使脚本在源服务器开机时自动启动,可以创建一个systemd服务。在源服务器上创建/etc/systemd/system/tongbu.service文件,内容如下:

复制

[Unit]
Description=Multi - Server Real - Time Folder Sync Service
After=network.target

[Service]
ExecStart=/usr/local/bin/tongbu.sh   
Restart=always

[Install]
WantedBy=multi - user.target
  • 根据路径不同改Execstart的脚本路径即可
  • 然后在源服务器上依次执行以下命令:
    • systemctl daemon - reload
    • systemctl enable tongbu
    • systemctl start tongbu
通过ssh传输,出现无法同步问题 排查权限、ssh网络、服务器资源,这个脚本也有详细输出 rsync默认用的873端口

标签:脚本,rsync,inotify,Server,ssh,服务器,tools,tongbu
From: https://blog.csdn.net/weixin_67274256/article/details/143372640

相关文章

  • 使用rsync批量部署
    使用rsync批量部署......
  • VMware Tools的作用
    VMwareTools是VMware虚拟机中的一种增强工具,它提供了一系列驱动程序和应用程序,用于改善虚拟机的性能和用户体验。安装VMwareTools后,用户可以享受更流畅的鼠标和显示器体验,以及更好的虚拟硬件性能。主要功能优化鼠标和显示器体验:VMwareTools通过提供虚拟设备驱动,如VM......
  • 利用samtools flagstat 对bam文件统计比对率的时候看的是哪个mapping rate
     001、在samtoolsflagstat对bam的统计结果中,一共有三个比对率的结果: 002、比对率结果应该以哪个为准?答案是:以3为准 003、以山羊、绵羊的fastq数据,绵羊的参考基因组进行比对测试a、如果以primarymapped对比,基本看不出两者的差异(其中S是sheep,G是goat) b、如果以......
  • samtools flagstat参数对比对的bam文件进行统计
     001、命令samtoolsflagstatsample_name.sorted.bam>sample_name.flagstat.txt##基本命令  a、生成的文件是一个包含16行的文本文件: 002、(base)[b20223040323@admin2workdir]$catAsiatic1.flagstat.txt##查看统计结果622520785+0intotal......
  • Awesome Tools,程序员常用高效实用工具、软件资源精选,办公效率提升利器!
    ✨前言在当今这个技术日新月异的时代,开发者只有持续学习,才能紧跟时代的浪潮。为了助力开发者在高效学习与工作中实现平衡(告别996的束缚),众多卓越且实用的开发工具应运而生,它们如同强大的助力器,极大地提升了我们的工作效率与创造力。GtiHub开源地址(欢迎关注持续更新):https://......
  • 群晖存储怎么设置Rsync
    服务器端设置Rsync共享在群晖管理端启用Rsync共享新增Rsync用户客户端使用客户端往服务器端发送文件前面参数是本地文件夹或文件后面参数是远程的文件或文件夹#rsync-av/etc/[email protected]::Backup/客户端从服务器端拉取文件反过来即可#rsync-a......
  • Tools_py
    #Tools.pyimportreimportsubprocessfromfunctoolsimportpartialimportrequestsfromparselimportSelectorsubprocess.Popen=partial(subprocess.Popen,encoding='utf-8')importexecjsdefzip_():name_list=['黎明','大军']pr......
  • [Tools] 使用 Advanced Installer 打包 PC Client 安装包
    AdvancedInstallerhttps://www.advancedinstaller.com/操作步骤1.创建Professional模板2.设置ProductDetails3.在 FilesandFolders下,添加应用所有文件/文件夹。  如果需要可以给文件/文件夹配置操作权限,例如为单机数据库 "SQLite"添加写权限,防止应用安......
  • 通过DevTools逃离Chrome沙盒(CVE-2024-6778和CVE-2024-5836)
    介绍这篇博文详细介绍了如何发现CVE-2024-6778和CVE-2024-5836的,这是Chromiumweb浏览器中的漏洞,允许从浏览器扩展(带有一点点用户交互)中进行沙盒逃逸。简而言之,这些漏洞允许恶意的Chrome扩展在你的电脑上运行任何shell命令,然后可能被用来安装一些更糟糕的恶意软件。攻击者......
  • Linux文件实时自动同步方案(基于inotify) 支持自定义目录、 不限主机数量、支持增删改
    实现细节可以直接跳到第3节3.实现细节关键词:自动同步Linux自动同步 Linux实时同步master同步slave master与slave文件实时同步 目录1.引言背景介绍方案概述方案特点2.技术选型inotifyrsyncShell脚本3.实现细节3.1前置配置1.权限设置2.安装inotify......