Назад | Перейти на главную страницу

Копирование файлов с сервера на набор машин

Во-первых, я не обученный профессионал в области сетевых технологий, и я мало о нем знаю. У меня есть некоторые знания о сценариях оболочки GNU / Linux. Однажды мне захотелось скопировать большой заархивированный файл на несколько компьютеров в моей лаборатории, и мне пришлось выполнять там другие задачи. Я использую DHCP для своих систем.

Ищете лучший способ сделать это.

Извините, если этот вопрос не относится к этому вопросу или является полной ерундой.

http + wget FTW.

Настройте веб-сервер на одном центральном хосте, затем используйте wget для загрузки файла.

Func - отличный инструмент для копирования файла на несколько машин, а также выполнения команд на нескольких машинах, разработанный RedHat и сообществом. Отлично подходит для управления кластерами серверов и т. Д. Однако я не уверен, что он безупречно работает с DHCP, вам нужен подписанный сертификат для связи с клиентами, но он проходит тестирование, если это соответствует вашим потребностям.

Есть несколько способов выполнить копирование / передачу файлов между системами:

  • scp
  • кто-л.
  • ftp (или любой из его более безопасных вариантов)
  • нфс
  • http
  • и т. д. и т. д ....

Все сводится к тому, что установлено в системах, и к вашему уровню комфорта с различными опциями. Существуют варианты "многоадресной рассылки", если ситуации копирования "один-ко-множеству" возникают достаточно часто, чтобы рассмотреть эти технологии / решения.

Ткань кажется вашим решением:

http://docs.fabfile.org/en/1.2.1/index.html

Стандартный метод в Unix раньше был rdist и сегодня он все еще доступен в большинстве репозиториев. Однако сегодняшняя проблема заключается в том, что мы используем SSH, а не RSH, поэтому управление ключами и паролями может быть более неудобным.

  1. Создайте список ваших целевых серверов, например list.txt:

    ip1 port1 username1 password1
    ip2 port2 username2 password2
    ...
    
  2. Установить sshpass на клиенте.
  3. Создать сценарий оболочки 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
    
  4. Сделайте его исполняемым и запустите с:

    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