栏目树
|- Node.js |- fnm——node.js快捷管理工具 |- 服务端 |- linux下实现实时文件同步 |- 数据库 |- mysql |- MySQL函数:NOW( |- mysql的SQL语句中having的作用 |- PHP |- 使用Chokidar-CLI+PHP脚本,实现文件实时同步 |- 用PHP实现图片批量压缩 |- Linux |- nohup 执行的命令,进程在当前会话结束会跟随关闭 |- inotifywait结合php脚本,实现实时同步服务器文件(豆包方案) |- linux下挂载ntfs分区 |- 禁用密码登录SSH |- 前端开发 |- HTML+CSS |- CSS嵌套 |- 字间距 |- 段落缩进样式 |- 开发工具 |- 手搓VSCode-Cli |- Eclipse启动时提示Not implemented [WebView2 runtime not found] |- Eclipse/Zend studio匿名类代码不提示的解决办法 |- Eclipse/Zend studio 将windows风格换行(\r\n)替换为Unix风格换行( |- vscode使用编辑器显示空格、制表符 |- Eclipse下指定命名空间的根目录 |- Git |- 使用指定的私钥从ssh协议的git仓库克隆项目 |- 从某个tag处创建分支,再合并到当前分支 |- 远程使用SSH协议时,使用指定的私钥的配置方法 |- 堡垒机是什么 |- windows |- windows 11 右键菜单改为windows 10风格 |- windows 11 下新开的CMD窗口自动使用原窗口的多标签 |- VM里linux挂载共享目录 |- win 11使用win10风格的鼠标右键菜单 |- windows 11自带的录屏工具 |- windows 11新机首次进入系统,不想登录微软账号 |- win10下批处理脚本可以用哪些变量 |- 小乌龟git拉阿里云效的仓库报错fatal: protocol error: bad line length character: Welc |- 好码收藏 |- openspout——读写表格的利器
linux下实现实时文件同步

步骤


  1. 安装 inotify-tools 和 rsync
    • Debian/Ubuntu
bash
sudo apt-get update sudo apt-get install inotify-tools rsync 

  • CentOS/RHEL
bash
sudo yum install inotify-tools rsync 

  1. 配置 SSH 密钥认证(可选但推荐)
    • 生成 SSH 密钥对:
bash
ssh-keygen -t rsa 

  • 将公钥复制到目标服务器:
bash
ssh-copy-id user@destination_server_ip 

  1. 编写监控脚本
    • 创建一个名为 sync_monitor.sh 的脚本:

bash

#!/bin/bash 

# 源目录 

SOURCE_DIR="/path/to/source/config/files" 

# 目标服务器和目录 

DESTINATION="user@destination_server_ip:/path/to/destination/config/files"

# 监控源目录的变化 

inotifywait -m -r -e create,delete,modify,move $SOURCE_DIR | while read path action file; do 

# 当文件发生变化时,使用 rsync 进行同步 

    rsync -avz --delete $SOURCE_DIR/ $DESTINATION 

done


  1. 赋予脚本执行权限
bash
chmod +x sync_monitor.sh 

  1. 运行脚本
bash
./sync_monitor.sh 

为了让脚本在后台持续运行,可以使用 nohup 命令:
bash
nohup ./sync_monitor.sh &