要在两个服务器之间进行实时文件同步,可以考虑以下几种解决方案:

  1. 使用 rsync 和 inotifywait:
    使用 rsync 结合 inotifywaitinotifywait 监控服务器 A 上的文件系统变化,每当检测到变化时,rsync 将文件同步到服务器 B。这种方法对于几乎实时的同步非常高效。脚本示例:

    bash

    #!/bin/bash
    SRC="/要同步的路径"
    DEST="user@serverB:/目标路径"
    inotifywait -m -r -e modify,create,delete $SRC | while read path action file; do
    rsync -avz $SRC $DEST
    done
  2. Lsyncd:
    Lsyncd(实时同步守护进程)是一种更高级的工具,它使用 rsync 进行同步,并使用 inotify 实时监控变化。它易于配置并作为后台守护进程运行。
  3. lftp:
    尽管 lftp 不是专门的实时同步工具,但你可以使用它的 mirror 命令和 --continue 选项在服务器 A 和 B 之间进行频繁的同步。然而,这不是一个实时解决方案,需要定期执行。lftp 的使用示例:

    bash

    lftp -e "mirror --reverse --delete --continue --verbose /本地目录 /远程目录; bye" -u user,password serverB

    注意: 虽然 lftp 可能有用,但它不提供实时同步。对于实时同步,rsyncinotifywaitLsyncd 是更好的选择。