ubuntu

Ubuntu inotify与rsync结合使用方法

小樊
36
2025-09-23 08:51:36
栏目: 智能运维

在Ubuntu系统中,inotify是一个Linux内核子系统,它可以监控文件系统事件,如文件的创建、修改、删除等。而rsync是一个用于在本地和远程之间同步文件的工具。将inotifyrsync结合使用,可以在文件发生变化时自动触发rsync进行文件同步。

以下是使用inotifywaitinotify的一个用户空间工具)与rsync结合使用的方法:

  1. 首先,确保已经安装了inotify-tools包。如果没有安装,请运行以下命令进行安装:
sudo apt-get update
sudo apt-get install inotify-tools
  1. 创建一个名为sync.sh的脚本文件,并添加以下内容:
#!/bin/bash

# 源目录和目标目录
src_dir="/path/to/source/directory"
dest_dir="/path/to/destination/directory"

# 使用inotifywait监控源目录中的文件变化
inotifywait -m -r -e create,modify,delete --format '%w%f' "${src_dir}" | while read file
do
  # 当检测到文件变化时,使用rsync进行同步
  rsync -avz --delete "${src_dir}/" "${dest_dir}"
done

请将/path/to/source/directory/path/to/destination/directory替换为实际的源目录和目标目录路径。

  1. 为脚本文件添加可执行权限:
chmod +x sync.sh
  1. 运行脚本:
./sync.sh

现在,每当源目录中的文件发生变化时,inotifywait会检测到这些变化,并触发rsync进行文件同步。

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

nohup ./sync.sh &

这将在后台运行脚本,并将输出重定向到nohup.out文件。

0
看了该问题的人还看了