Как я могу rsync для всех удаленных подключенных хостов?

Я использую следующую команду для передачи файла с помощью 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
2
задан 8 March 2018 в 11:47

4 ответа

rsync может копировать только одно место за раз, например ssh может подключаться только к одному адресату за вызов.

Однако вы можете посмотреть пакет pssh ( для параллельного SSH), который также обеспечивает параллельный rsync:

- Parallel rsync (parallel-rsync, upstream calls it prsync), efficiently copies files to multiple hosts in parallel
0
ответ дан 17 July 2018 в 19:18

Подстановочные знаки и простое регулярное выражение (например, 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.

1
ответ дан 17 July 2018 в 19:18

rsync может копировать только одно место за раз, например ssh может подключаться только к одному адресату за вызов.

Однако вы можете посмотреть пакет pssh ( для параллельного SSH), который также обеспечивает параллельный rsync:

- Parallel rsync (parallel-rsync, upstream calls it prsync), efficiently copies files to multiple hosts in parallel
0
ответ дан 23 July 2018 в 20:03

Подстановочные знаки и простое регулярное выражение (например, 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.

1
ответ дан 23 July 2018 в 20:03
  • 1
    Да, я подумал, что делать то же самое. Я выполнил сценарий по требованию. Просто хотел знать, работает ли он с помощью подстановочных знаков или нет с помощью одной команды. – d a i s y 8 March 2018 в 13:01
  • 2
    Ну, нет ... wildcards, а также простое регулярное выражение работает только с локальной файловой системой – Simon Sudler 8 March 2018 в 13:16

Другие вопросы по тегам:

Похожие вопросы: