Запуск команд на удаленном компьютере через SSH-подключение
Протокол SSH, помимо работы в интерактивном режиме, поддерживает также разовый запуск команд или скриптов на удаленном компьютере под управлением ОС семейства Linux.
Синтаксис команды запуска удаленной команды:
ssh [пользователь]@[сервер] '[команда]'
Если доступ по ssh реализован по ключевой паре, то команда выполнится немедленно. Если нет, то при запросе вводим пароль указанного пользователя и в консоли получаем вывод команды, если таковой имеется.
Например, получим информацию об установленной на удаленном сервере операционной системе:
ssh my_name@192.168.1.77 'uname -a'
Чтобы запустить несколько команд за одно подключение, можно использовать символ “;” в качестве разделителя. Проверим время работы удаленного компьютера, его загрузку и запросим все активные сетевые подключения на удаленном компьютере:
ssh my_name@192.168.1.77 'uptime; netstat -anp tcp'
В случае, если потребуется запустить на удаленном сервере локальный файл скрипта, то потребуется в SSH-подключении вызвать командный интерпретатор в режиме исполнения сценария (например, bash с ключом -s), и на стандартный ввод передать ему файл скрипта. Команда запуска локального скрипта на удаленном компьютере будет выглядеть примерно так:
ssh my_name@192.168.1.77 'bash -s' < /home/user/anycript.sh
В результате скрипт в локальном файл /home/user/anyscript.sh исполнится на удаленном сервере.