当前位置: 首页 > ai >正文

两个Ubuntu机器,设置共享目录实时同步

业务背景:两个Linux机器需要实时更新同步一个指定目录下内容,具体内容如下:

机器A:192.168.1.10

机器B:192.168.1.20

前提两个内网机器可以免密登录

🉑👀参考:两个Ubuntu机器(内网)免密登录设置-CSDN博客

1、安装工具

sudo apt-get update

安装rsync和inotify-tools

rsync:一个快速且灵活的文件复制工具,它可以同步两个目录之间的文件差异,只复制变化的文件部分。
inotify-tools:一个文件系统事件监控机制,允许你监视文件系统的变化,如创建、删除、修改等。

安装命令: 

sudo apt-get install rsync inotify-tools

机器A、B需要都安装这个两个工具 

2、编写脚本sync.sh

#!/usr/bin/env bash# 定义源和目标目录
SOURCE_DIR="/home/software/app/temp"
DEST_HOST="root@192.168.1.20"
DEST_DIR="/home/software/app/temp"
LOG_FILE="/home/software/app/fsync/log/rsync.log"# 首次全量同步
echo "Initial full sync..."
rsync -az --delete --log-file="$LOG_FILE" "$SOURCE_DIR/" "$DEST_HOST:$DEST_DIR"# 监听并同步变更
echo "Watching for changes in $SOURCE_DIR..."inotifywait -mrq \-e create,delete,modify,move \--format '%w%f' \"$SOURCE_DIR" | while read CHANGED_FILE; doecho "Detected change: $CHANGED_FILE"rsync -az --delete --log-file="$LOG_FILE" "$SOURCE_DIR/" "$DEST_HOST:$DEST_DIR"
done

3、运行脚本

可以直接运行

./sync.sh

或者是守护进程运行

nohup ./script.sh > /log/fsync.log 2>&1 &

nohup ./sync.sh > fsync.log 2>&1 &
等同于
nohup ./sync.sh > fsync.log 2>fsync.log &

">"符号用于将命令的`标准输出`重定向到指定的文件中
> fsync.log 表示将终端输出保存到 fsync.log文件中
"2>"表示将命令的`标准错误`输出重定向到指定的文件中
2>&1 表示将命令的标准错误输出重定向到标准输出1中一起输出
& 后台挂起

✅查看进程

ps -ef | grep sync.sh

 或者是

ps -aux | grep "sync.sh"

a: 显示所有程序
u: 以用户为主的格式来显示
x: 显示所有程序,不区分终端机 

若是脚本有格式问题,则安装dos2unix 将脚本转换为 Unix 格式

sudo apt install dos2unix
dos2unix sync.sh

这样再执行脚本就不会报错了!也就可以正常同步目录下的内容了。

http://www.xdnf.cn/news/9025.html

相关文章:

  • React的单向数据绑定
  • 力扣热题-有向图中最大颜色值
  • 二十八、面向对象底层逻辑-SpringMVC九大组件之ViewResolver接口设计
  • ASCII码对应表
  • call的作用是什么,为什么要使用它?
  • AI工具使用的最佳实践,如何通过AI工具提高创作与工作效率
  • react基础知识(下)
  • A-9 OpenCasCade读取STEP文件中的NURBS曲面
  • 知道Metasploit 吗?
  • C 语言学习笔记(指针6)
  • shell之通配符及正则表达式
  • 题目 3334: 蓝桥杯2025年第十六届省赛真题-园艺
  • 解锁MCP:AI大模型的万能工具箱
  • 《狂野时代》获第78届戛纳影展特别奖
  • 用深度学习提升DOM解析——自动提取页面关键区块
  • AtCoder Beginner Contest 407
  • Kubernetes--主机启用防火墙
  • 告别延迟!modbus tcp转profine网关助力改造电厂改造升级
  • mvn-help 插件clean install 后本地mvn库没重新生成jar包
  • Word VBA 教程|一键将 PNG/JPG 图片插入每一页(浮于文字上方,固定大小)
  • 如何把 Microsoft Word 中所有的汉字字体替换为宋体?
  • 鸿蒙OSUniApp 制作悬浮按钮与菜单组件#三方框架 #Uniapp
  • awr报告生成
  • orm详解--查询执行
  • SiteMap Generator:免费、快速、强大的在线网站地图生成工具
  • 高电流测量新突破:借助铜进行温度补偿
  • Vue列表渲染
  • 两阶段法目标检测发展脉络
  • 多模态大模型前沿技术进展与应用实践
  • leetcode617.合并二叉树:迭代法中层序遍历与队列操作的深度解析