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

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

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

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

Lekensteyn прав – вы, вероятно, должны вытаскивать файлы с сервера, а не нажимать их на клиентов с сервера.

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

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