Как я могу распространить файл по нескольким системам в сети?

В моей сети более 60 систем Ubuntu. Я хочу скопировать файлы из одной системы в другие системы Ubuntu. Все IP-адреса перечислены в текстовом файле.

Итак, какую команду я могу использовать для выполнения задачи? Какие-нибудь программы bash?

3
задан 21 March 2011 в 22:53

3 ответа

предположим, что у вас есть IP-адреса в файле с именем ips.txt, каждый IP в строке. создайте файл с именем, например * scp_all.sh * и скопируйте в него следующий текст:

#!/bin/bash

while read LINE ; do
    scp $1 root@$LINE:$1
done < ips.txt

и выполните его следующим образом:

./scp_all.sh /home/yaroo/Desktop/1.jpg

это действительно простой сценарий, хотя он предполагает, что ваше имя пользователя на всех компьютерах является пользователем root, он не хранит пароль, и вы должны вводить его каждый раз, и у него нет обработчика исключений. если вы хотите изменить адрес получателя, измените вторую $ 1 в команде scp на $ 2 и используйте скрипт следующим образом:

./scp_all.sh /home/yaroo/Desktop/1.jpg /home/yaroo/Downloads/just_copied.jpg

Я сказал, что вам нужно ввести ваш пароль для каждого компьютера, но если вы решили использовать этот скрипт регулярно, вы можете решить эту проблему с помощью этого простого 6-шагового решения, описанного здесь . удачи; -)

0
ответ дан 21 March 2011 в 22:53

Лекенштейн прав: вы, вероятно, должны извлекать файлы с сервера, а не отправлять их клиентам с сервера.

Если вы собираетесь делать это регулярно (особенно с большим количеством файлов), я бы настроил rsync или систему контроля версий , такую ​​как git , а не FTP, так что клиенты должны загружать только то, что изменилось.

0
ответ дан 21 March 2011 в 22:53

(обновление с более раннего комментария) Вы также можете обратиться к системе управления конфигурацией, такой как Puppet , bcfg2 или Chef для управления распространением файлов. по сети.

0
ответ дан 21 March 2011 в 22:53

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

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