以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