温馨提示×

Ubuntu inotify与rsync结合使用

小樊
43
2025-09-14 23:04:39
栏目: 智能运维

在Ubuntu系统中,inotifyrsync可以结合使用以实现高效的文件同步

inotify是Linux内核提供的一种文件系统事件监控机制,可以实时监控文件或目录的变化,如创建、删除、修改等。rsync是一个强大的文件同步工具,可以在本地或远程之间同步文件。

要结合使用inotifyrsync,你可以使用inotifywait命令(需要安装inotify-tools包)来监控文件变化,并通过管道将事件传递给rsync命令进行同步。

以下是一个简单的示例,当监控目录/path/to/source中的文件发生变化时,将自动同步到远程目录/path/to/destination

#!/bin/bash

SOURCE_DIR="/path/to/source"
DEST_DIR="/path/to/destination"
REMOTE_USER="remote_user"
REMOTE_HOST="remote_host"

inotifywait -m -r -e create,delete,modify --format '%w%f' "${SOURCE_DIR}" | while read FILE
do
    rsync -avz --delete "${SOURCE_DIR}/" "${REMOTE_USER}@${REMOTE_HOST}:${DEST_DIR}/"
done

在这个示例中:

  • -m:监控模式,持续监控文件变化。
  • -r:递归监控子目录。
  • -e:指定要监控的事件,如创建、删除、修改。
  • --format '%w%f':自定义输出格式,只显示发生变化的文件路径。
  • rsync命令的参数:
    • -a:归档模式,保留文件属性。
    • -v:详细输出。
    • -z:压缩传输。
    • --delete:删除目标目录中源目录不存在的文件。

请根据实际需求修改示例中的路径、用户名和主机名。将此脚本保存为sync.sh,并通过chmod +x sync.sh使其可执行。然后运行脚本即可实现实时同步。

0