Я использую следующую команду для передачи использования файла rsync
только к одному связанному хосту:
rsync -az -e ssh /path/to/source 192.168.8.8:/path/to/destination
Дело обстоит так статического IP addesss. Но в другом случае существует больше чем одна система, соединенная с помощью 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
Подстановочные знаки и простой regex (например. 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