- SSH: Execute Remote Command or Script – Linux
- SSH: Execute Remote Command
- Examples
- SSH: Run Multiple Remote Commands
- Examples
- SSH: Run Bash Script on Remote Server
- Example
- 23 Replies to “SSH: Execute Remote Command or Script – Linux”
- Запуск команд или скрипта через SSH
- Запуск команд через SSH
- Запуск нескольких команд через SSH
- Практические примеры использования SSH
- SSH: Запуск Bash Скрипта
SSH: Execute Remote Command or Script – Linux
This is quite a common task for Linux system administrators, when it is needed to execute some command or a local Bash script from a one Linux workstation or a server on another remote Linux machine over SSH.
In this article you will find the examples of how to execute a remote command, multiple commands or a Bash script over SSH between remote Linux hosts and get back the output (result).
This information will be especially useful for ones, who want to create a Bash script that will be hosted locally on a one Linux machine but would be executed remotely on the other hosts over SSH.
Cool Tip: Connect to a remote SSH server without typing a password! Configure a passwordless authentication! Only 3 easy steps! Read more →
SSH: Execute Remote Command
Execute a remote command on a host over SSH:
Examples
Get the uptime of the remote server:
SSH: Run Multiple Remote Commands
Much more often it is required to send multiple commands on a remote server, for example, to collect some data for inventory and get back the result.
There are a lot of different ways of how it can be done, but i will show the most popular of them.
Run multiple command on a remote host over SSH:
$ ssh USER@HOST 'COMMAND1; COMMAND2; COMMAND3'
$ ssh USER@HOST 'COMMAND1 | COMMAND2 | COMMAND3'
Cool Tip: SSH login is too slow? This can be fixed easily! Get rid of delay during authentication! Read more →
Examples
Get the uptime and the disk usage:
$ ssh root@192.168.1.1 'uptime; df -h'
Get the memory usage and the load average:
$ ssh root@192.168.1.1 'free -m | cat /proc/loadavg'
Show the kernel version, number of CPUs and the total RAM:
SSH: Run Bash Script on Remote Server
The equally common situation, when there is some Bash script on a Linux machine and it needs to connect from it over SSH to another Linux machine and run this script there.
The idea is to connect to a remote Linux server over SSH, let the script do the required operations and return back to local, without need not to upload this script to a remote server.
Certainly this can be done and moreover quite easily.
Cool Tip: Want to ROCK? Start a GUI (graphical) application on a remote Linux workstation over SSH! Read more →
Example
Execute the local script.sh on the remote server:
23 Replies to “SSH: Execute Remote Command or Script – Linux”
Hi,
How about executing a command remotely and making sure that it will be killed once i kill my ssh session. or getting of PID of either SSH or the actual command on remote-node via a script.
Something like this I want to achieve:
Example: collecting pcap on remote addr and storing it locally.
$ ssh -t -f "tcpdump -w -" > /tmp/tcp.pcap
$ ssh ADDRESS 'echo "rootpass" | sudo -Sv && bash -s' < BASH_FILE
How do create a scrip to run commands on multiple remote machines?
When the first one gets executed, the response returned to STOUT, and the next one is not executed until I ^C the previous command.
I tried using ‘exit’ command and ‘&’ , neither is working.
Hello everyone,
I am new to linux and trying to learn it. I have task to complete “Get last 3 login details of list of linux machine with date and time.”
Is there any way to achive it? Thanks in advance
You should change these examples to use double quotes – I got tripped up putting variables in these single quotes and took me a while to realise bash treats it as a string…
como puedo hacer que solo me pida una vez la contraseña de mi servidor? hice mi escript y como realizo varias tareas me pide varias veces la contraseña
Can someone help me write a shell script to shutdown a Ubuntu computer?
I’m going to have it run on a Mac, so that it will ssh into the Ubuntu and shut it down. I need it to open Application “Terminal” then ssh name@123.45.67.89, then give it the password.
Then I need it to issue command “sudo poweroff”, and give it the password again.
I know how to do this manually by opening Mac’s Terminal. I just type in “ssh name@123.456.78.9, it asks for the password, I type it in, and it’s connected. Then I just type in “sudo poweroff” and it asks for the password again, I type it in, and bam, it shuts down the Ubunt computer.
The problem is, I need to automate this to do it at a specific time of day. On the Mac, there is what is called “Automator”, and you can set up ICalendar Events to run an “Automator Workflow” with a Shell Script. I just don’t know how to write the Shell Script to do what I can do manually? Any help is appreciated greatly!
I solved this. Here’s what works:
tell application “Terminal”
activate
do script (“ssh test@192.168.1.10“)
delay 6
do script “password” in front window
delay 7
do script “sudo poweroff” in front window
delay 5
do script “password” in front window
end tell
Why when I get a script from somewhere by curl & then pipe to bash to run it on my local server, some commands in a bash functions failed to execute, no error, no code error btw..just the called functions don’t execute.. How do I know my code is ok, because when I output it as a file from curl, I chmod and run it like ./..scriptfile.sh.. Code run fine.. Any idea and how do I resolve this?
This was very helpful for me. I am very new to this and just ordered a VPS yesterday and these guides are really helping me work my way around. I appreciate this simple resource you’ve put together!
how to run a script with sudo previllages on remote server: ssh -tt rundeck@$Batch_Host ‘ bash -s’ < /home/abhishekc/dem.sh i am getting permission denied
Запуск команд или скрипта через SSH
Сегодня рассмотрим примеры для запуска команд или скрипта через SSH соединения. Научимся запускать наши команды/скрипты из одной рабочей станции Linux на другой удаленной Linux машине. Рассмотрим практические примеры использования мощного инструмента SSH в администрировании Linux.
Запуск команд через SSH
Если вы хотите удаленно запустить какую-либо команду на сервере через SSH, то нет ничего проще. Давайте рассмотрим пару примеров.
Узнайте аптайм удаленного сервера:
Узнать проходит ли пинг на удаленном сервере до google DNS:
ssh root@10.5.5.1 'ping 8.8.8.8 -c 5'
Перезагрузить удаленную машину:
Запуск нескольких команд через SSH
В большинстве случаем недостаточно удаленно запустить только одну команду по SSH. Намного чаще необходимо отправить сразу несколько команд на удаленный сервер, например, для сбора информации и получить результат обратно.
Запустить несколько команд на удаленном хосте по SSH:
ssh ПОЛЬЗОВАТЕЛЬ@СЕРВЕР 'КОМАНДА1; КОМАНДА2; КОМАНДА3'
Практические примеры использования SSH
Узнайте аптайм и сколько свободного места на диске:
ssh root@10.5.5.1 'uptime; df -h'
Сколько используется памяти и среднюю нагрузку:
ssh root@10.5.5.1 'free -m ; cat /proc/loadavg'
Узнать версию ядра, количество ядер CPU и сколько всего RAM:
SSH: Запуск Bash Скрипта
Также бывает ситуация, когда на Linux сервере лежит какой-либо скрипт и его необходимо запустить по SSH на другом Linux сервере.
Основная идея заключается в том, чтобы подключиться на удаленный Linux сервер, дать скрипту выполнить свою работу и получить результат, при этом не копируя сам скрипт на удаленный сервер.
Эта задаче безусловно может быть выполнена и при этом довольно просто.
Что если вы хотите выполнить сценарий с аргументом.
Если требуются привилегии sudo, то команда примет вид:
ssh root@10.5.5.1 'echo "passwords" | sudo -Sv && bash -s' < script.sh
- password — пароль для пользователя root на удаленной машине.
- script.sh — файл с вашим скриптом расположенный на станции с которой производите подключение.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
В этой статье рассмотрим пример как можно переименовать сетевые интерфейсы в дистрибутивах Linux. После обновления systemd (частью которого является udev) Читать
В этой статье я расскажу, как настроить резервное копирование с помощью ssh и cron в Linux дистрибутивов. Как нетрудно догадаться, Читать
Сегодня в статье рассмотрим опции сервиса networking в Debian подобных системах таких как Ubuntu, Linux Mint, Elementary OS и т.д. Читать
Не удалось подключиться к libvirt. Требуется установить openssh-askpass или аналогичную программу для соединения с этим узлом. Вот такое сообщение у Читать