Сегодня рассмотрим примеры для запуска команд или скрипта через SSH соединения. Научимся запускать наши команды/скрипты из одной рабочей станции Linux на другой удаленной Linux машине. Рассмотрим практические примеры использования мощного инструмента SSH в администрировании Linux.

Запуск команд через SSH

Если вы хотите удаленно запустить какую-либо команду на сервере через SSH, то нет ничего проще. Давайте рассмотрим пару примеров.

Узнайте аптайм удаленного сервера:

ssh root@10.5.5.1 'uptime'

Узнать проходит ли пинг на удаленном сервере до google DNS:

ssh root@10.5.5.1 'ping 8.8.8.8 -c 5'

Перезагрузить удаленную машину:

ssh root@10.5.5.1 'reboot'

Запуск нескольких команд через SSH

В большинстве случаем недостаточно удаленно запустить только одну команду по SSH. Намного чаще необходимо отправить сразу несколько команд на удаленный сервер, например, для сбора информации и получить результат обратно.

Запустить несколько команд на удаленном хосте по SSH:

ssh ПОЛЬЗОВАТЕЛЬ@СЕРВЕР 'КОМАНДА1; КОМАНДА2; КОМАНДА3'

можно и так:

ssh ПОЛЬЗОВАТЕЛЬ@СЕРВЕР << EOF
КОМАНДА1
КОМАНДА2
КОМАНДА3
EOF

Практические примеры использования SSH

Узнайте аптайм и сколько свободного места на диске:

ssh root@10.5.5.1 'uptime; df -h'

Сколько используется памяти и среднюю нагрузку:

ssh root@10.5.5.1 'free -m ; cat /proc/loadavg'

Узнать версию ядра, количество ядер CPU и сколько всего RAM:

ssh root@10.5.5.1 << EOF
uname -a
lscpu  | grep "^CPU(s)"
grep -i memtotal /proc/meminfo
EOF

SSH: Запуск Bash Скрипта

Также бывает ситуация, когда на Linux сервере лежит какой-либо скрипт и его необходимо запустить по SSH на другом Linux сервере.

Основная идея заключается в том, чтобы подключиться на удаленный Linux сервер, дать скрипту выполнить свою работу и получить результат, при этом не копируя сам скрипт на удаленный сервер.

Эта задаче безусловно может быть выполнена и при этом довольно просто.

ssh root@10.5.5.1 'bash -s' < script.sh

Что если вы хотите выполнить сценарий с аргументом.

ssh root@10.5.5.1 'bash -s' < script.sh --argument

или

ssh root@10.5.5.1 'bash -s' < "script.sh --argument"

Если требуются привилегии sudo, то команда примет вид:

ssh root@10.5.5.1 'echo "passwords" | sudo -Sv && bash -s' < script.sh
  • password — пароль для пользователя root на удаленной машине.
  • script.sh — файл с вашим скриптом расположенный на станции с которой производите подключение.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

3 2 голоса
Рейтинг статьи

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам:

Продолжая пользование настоящим сайтом Вы выражаете своё согласие на обработку Ваших персональных данных (файлов cookie) с использованием трекеров "Google Analytics" и "Yandex.Metrics". Порядок обработки Ваших персональных данных, а также реализуемые требования к их защите, содержатся в Политике конфиденциальности.
Принять