Во-первых, я не обученный профессионал в области сетевых технологий, и я мало о нем знаю. У меня есть некоторые знания о сценариях оболочки GNU / Linux. Однажды мне захотелось скопировать большой заархивированный файл на несколько компьютеров в моей лаборатории, и мне пришлось выполнять там другие задачи. Я использую DHCP для своих систем.
Ищете лучший способ сделать это.
Извините, если этот вопрос не относится к этому вопросу или является полной ерундой.
http + wget FTW.
Настройте веб-сервер на одном центральном хосте, затем используйте wget для загрузки файла.
Func - отличный инструмент для копирования файла на несколько машин, а также выполнения команд на нескольких машинах, разработанный RedHat и сообществом. Отлично подходит для управления кластерами серверов и т. Д. Однако я не уверен, что он безупречно работает с DHCP, вам нужен подписанный сертификат для связи с клиентами, но он проходит тестирование, если это соответствует вашим потребностям.
Есть несколько способов выполнить копирование / передачу файлов между системами:
Все сводится к тому, что установлено в системах, и к вашему уровню комфорта с различными опциями. Существуют варианты "многоадресной рассылки", если ситуации копирования "один-ко-множеству" возникают достаточно часто, чтобы рассмотреть эти технологии / решения.
Ткань кажется вашим решением:
Стандартный метод в Unix раньше был rdist
и сегодня он все еще доступен в большинстве репозиториев. Однако сегодняшняя проблема заключается в том, что мы используем SSH, а не RSH, поэтому управление ключами и паролями может быть более неудобным.
Создайте список ваших целевых серверов, например list.txt
:
ip1 port1 username1 password1
ip2 port2 username2 password2
...
Создать сценарий оболочки scp.sh
как показано ниже:
#!/bin/bash
while read line; do
ip=`echo $line | awk '{ print $1 }'`
port=`echo $line | awk '{ print $2 }'`
user=`echo $line | awk '{ print $3 }'`
password=`echo $line | awk '{print $4 }'`
echo $password | sshpass scp -P $port /your/zipped/file $user@$ip:/path/to/somewhere/
done < list.txt
Сделайте его исполняемым и запустите с:
chmod +x scp.sh
./scp.sh
Если вам понадобится выполнить те же задачи позже, я бы предложил установить аутентификацию с открытым ключом ssh и выполнить параллельно с участием пшш, что-то вроде этого:
cat list.txt
ip1:port1 username1
ip2:port2 username2
...
pscp -h list.txt /your/zipped/file /path/to/somewhere