Я использую следующую команду для передачи файла с помощью 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
rsync может копировать только одно место за раз, например ssh может подключаться только к одному адресату за вызов.
Однако вы можете посмотреть пакет pssh ( для параллельного SSH), который также обеспечивает параллельный rsync:
- Parallel rsync (parallel-rsync, upstream calls it prsync), efficiently
copies files to multiple hosts in parallel
Подстановочные знаки и простое регулярное выражение (например, 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.
rsync может копировать только одно место за раз, например ssh может подключаться только к одному адресату за вызов.
Однако вы можете посмотреть пакет pssh ( для параллельного SSH), который также обеспечивает параллельный rsync:
- Parallel rsync (parallel-rsync, upstream calls it prsync), efficiently
copies files to multiple hosts in parallel
Подстановочные знаки и простое регулярное выражение (например, 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.