我正在使用以下命令将文件传输rsync
到仅一个连接的主机:
rsync -az -e ssh /path/to/source 192.168.8.8:/path/to/destination
这是静态 IP 地址的情况。但在其他情况下,有多个系统使用 DHCP 连接。
我试过了:
rsync -az -e ssh /path/to/source 192.168.8.*:/path/to/destination
但它显示错误
ssh: could not resolve the hostname 192.168.8.*: Name or service not known
答案1
通配符和简单的正则表达式(例如ls /usr/bin/x[bc]*
)仅适用于本地文件系统。
通配符无法知道您要将文件夹复制到哪个远程主机。您需要一个循环来实现这一点:
for i in $(seq 8 18); do; \
rsync -az -e ssh /path/to/source 192.168.8.$i:/path/to/destination; \
done
这会将 复制source
到从 192.168.8.8 到 192.168.8.18 的所有主机。
答案2
rsync
一次只能复制到一个目的地,就像ssh
每次调用只能连接到一个目的地。
不过,你可能想看看这个包密码(用于并行 SSH),它还提供并行 rsync:
- Parallel rsync (parallel-rsync, upstream calls it prsync), efficiently
copies files to multiple hosts in parallel