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

0 Comments
ssh-logo

Сегодня рассмотрим примеры для запуска команд или скрипта через 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.

Переименовываем сетевые интерфейсы в Linux
network-logo

В этой статье рассмотрим пример как можно переименовать сетевые интерфейсы в дистрибутивах Linux. После обновления systemd (частью которого является udev) Читать

Резервное копирование базы данных и сайта по SSH в Linux
backup-wordpress

В этой статье я расскажу, как настроить резервное копирование с помощью ssh и cron в Linux дистрибутивов. Как нетрудно догадаться, Читать

Опции сервиса network/interfaces для использовании на Ubuntu | Linux Mint
network-logo

Сегодня в статье рассмотрим опции сервиса networking в Debian подобных системах таких как Ubuntu, Linux Mint, Elementary OS и т.д. Читать

[РЕШЕНО] Не удалось подключиться к libvirt. Требуется установить openssh-askpass | KVM
kvm-logo

Не удалось подключиться к libvirt. Требуется установить openssh-askpass или аналогичную программу для соединения с этим узлом. Вот такое сообщение у Читать

5 1 голос
Рейтинг статьи

Подписаться
Уведомление о
guest

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

0 комментариев
Inline Feedbacks
Просмотреть все комментарии

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

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