以RockLinux9下实现进行说明。

1. 安装rsync和inotify

sudo dnf install rsync inotify-tools

2. 服务器之间免密登陆

2.1 生成密钥

ssh-keygen -t ed25519

2.2 拷贝密钥到对端

ssh-copy-id -i <public_key_file(.pub)>

3. 配置同步脚本

  • ssh_port为实际ssh端口,如果是默认的22,可以去掉" -e 'ssh -p $ssh_port'"
  • local_path为本地目录
  • remote_path为远端目录
#!/bin/bash
while inotifywait -r -e create,modify,delete <monitor_path>; do
  rsync -az -e 'ssh -p $ssh_port' --exclude '.*' <local_sync_src_path> <remote_account>@<remote_host_address>:<remote_sync_dest_path>
chmod a+x real-time-sync.sh