SSH (от англ. Secure Shell) — криптографический сетевой протокол, используемый для безопасного подключения к удаленному компьютеру. Он обеспечивает защищенный канал связи, используя механизмы шифрования и аутентификации для поддержания конфиденциальности и целостности данных, которыми обмениваются клиент и сервер.
В этой статье мы расскажем, как c помощью сценариев Bash запустить несколько команд на разных удаленных хостах Linux.
Содержание:
- Создание файла с IP-адресами хостов
- Запуск команд на удаленных хостах непосредственно из скрипта
- Запуск команд из файла на удаленных хостах
- Выводы
Создание файла с IP-адресами хостов
Для удобства подключения сразу к нескольким удаленным компьютерам рекомендуется создать текстовый файл, в который нужно записать IP-адреса соответствующих хостов. Например, в файл hosts.txt вставим два IP-адреса:
Читайте также: Как создать файл в Linux.
Запуск команд на удаленных хостах непосредственно из скрипта
Допустим, нам нужно на двух удаленных компьютерах выполнить команды uptime, who и df -h. Для решения этой задачи можно воспользоваться следующим скриптом:
Где:
for server in $(cat server_list.txt); do— цикл for, который перебирает все значения из файлаhosts.txt;echo "Server: $server"— команда, которая выводит на экран IP-адрес удаленного хоста;ssh <username>@$server '...'— команда, которая устанавливает SSH-соединение с сервером, используя имя пользователя<username>, и выполняет указанные команды;&— специальный символ в конце предыдущей команды, который выполняет каждую команду в фоновом режиме, позволяя скрипту продолжать итерации по серверам, не дожидаясь завершения каждого сеанса SSH.
Перед запуском скрипта ему нужно назначить права на исполнение. Сделать это можно следующим образом:
Чтобы выполнить сценарий, воспользуйтесь командой:
Читайте также: Как найти все неудачные попытки входа по SSH в Linux.
Запуск команд из файла на удаленных хостах
Используя возможности операционной системы Linux, Вы можете дополнительно создать файл, в котором будут содержаться команды, а затем в скрипте считать их для выполнения на удаленных серверах. К примеру, запишем в текстовый документ команды uptime, who и df -h:
Важно: рекомендуем Вам писать команды через символ ;. Иначе придется вводить пароль к удаленному компьютеру для выполнения каждой из утилит, или же настраивать беспарольный доступ к хостам.
Далее Вам нужно использовать следующий скрипт Bash, чтобы считать команды из файла и запустить их на удаленных серверах:
Где:
commands_file— переменная, в которую сохраняется название файла с командами;while IFS= read -r server; do— цикл, считывающий IP-адреса из файла;while IFS= read -r command; do— цикл, считывающий команды из файла;ssh <username>@$server "$command"— команда, которая устанавливает SSH-соединение с сервером, используя указанное имя пользователя<username>, и выполняет команду из файла;done < "$commands_file" и done < "hosts.txt"— строки, с помощью которых IP-адреса серверов и команды из файлов передаются в циклы для выполнения.
Чтобы запустить скрипт, снова примените следующую команду:
Выводы
Теперь Вы знаете, как выполнять несколько команд одновременно на нескольких серверах Linux. Использование показанных скриптов поможет автоматизировать процесс системного администрирования операционной системы.
Спасибо за время, уделенное прочтению статьи!
Если возникли вопросы — задавайте их в комментариях.
Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!
Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Cisco, курсы по кибербезопасности, полный курс по кибербезопасности, курсы DevNet / DevOps (программируемые системы) от Академии Cisco, курсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).
Курсы Cisco, Linux, кибербезопасность, DevOps / DevNet, Python с трудоустройством!
- Поможем стать экспертом по сетевой инженерии, кибербезопасности, программируемым сетям и системам и получить международные сертификаты Cisco, Linux LPI, Python Institute.
- Предлагаем проверенную программу с лучшими учебниками от экспертов из Cisco Networking Academy, Linux Professional Institute и Python Institute, помощь сертифицированных инструкторов и личного куратора.
- Поможем с трудоустройством и стартом карьеры в сфере IT — 100% наших выпускников трудоустраиваются.
- Проведем вечерние онлайн-лекции на нашей платформе.
- Согласуем с вами удобное время для практик.
- Если хотите индивидуальный график — обсудим и реализуем.
- Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
- Всем, кто боится потерять мотивацию и не закончить обучение, предложим общение с профессиональным коучем.
- отредактировать или создать с нуля резюме;
- подготовиться к техническим интервью;
- подготовиться к конкурсу на понравившуюся вакансию;
- устроиться на работу в Cisco по специальной программе. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.





























