温馨提示×

Ubuntu inotify如何实现文件夹同步

小樊
44
2025-09-27 15:48:59
栏目: 智能运维

在Ubuntu系统中,使用inotify可以实现文件夹的实时同步。以下是使用inotify-tools和rsync实现文件夹同步的步骤:

  1. 安装inotify-tools: 打开终端,输入以下命令安装inotify-tools:
sudo apt-get update sudo apt-get install inotify-tools 
  1. 创建一个脚本文件: 创建一个名为sync_folders.sh的脚本文件,用于存放同步命令。在终端中输入以下命令:
nano sync_folders.sh 
  1. 编辑脚本文件: 在打开的编辑器中,输入以下内容:
#!/bin/bash # 源文件夹和目标文件夹路径 SOURCE_DIR="/path/to/source/folder" TARGET_DIR="/path/to/target/folder" # 使用inotifywait监控源文件夹的变化,并使用rsync进行同步 inotifywait -m -r -e create,delete,modify --format '%w%f' "${SOURCE_DIR}" | while read FILE do rsync -avz --delete "${SOURCE_DIR}/" "${TARGET_DIR}" done 

/path/to/source/folder替换为你要监控的源文件夹路径,将/path/to/target/folder替换为你要同步到的目标文件夹路径。

  1. 保存并退出编辑器: 按Ctrl + X,然后按Y,最后按Enter键保存并退出编辑器。

  2. 为脚本文件添加执行权限: 在终端中输入以下命令:

chmod +x sync_folders.sh 
  1. 运行脚本: 在终端中输入以下命令运行脚本:
./sync_folders.sh 

现在,每当源文件夹发生变化时,inotify都会检测到,并使用rsync将更改同步到目标文件夹。

注意:这个脚本会一直运行,直到你手动停止它。如果你想在后台运行它,可以使用nohup命令:

nohup ./sync_folders.sh & 

这样,即使关闭终端,脚本也会继续运行。

0