Как удаленно запустить скрипт linux

Копирование файлов и запуск команд через SSH

Подключение к серверу посредством SSH – один из основных методов управления *nix серверами. Довольно часто возникает необходимость загрузить файл на удаленный сервер, либо выгрузить, и других средств кроме SSH-подключения нет. К счастью, копирование файлов через защищенное соединение – одна из штатных функций этого протокола и реализуется с помощь отдельной команды scp в Linux-системах, либо с помощью pscp.exe, входящей в состав SSH-клиента Putty для операционной системы Windows.

Работаем на ОС семейства Linux

Используем следующий формат команд:

scp [модификатор] [источник] [место_назначения]

Если в качестве источника или места назначения указывается удаленный сервер, то формат параметра такой:

После запуска команды потребуется ввести пароль от указанной учетной записи удаленного сервера.

Если собрать все вместе, то скопировать локальный файл /home/user/file.tgz в домашний каталог пользователя root удаленного сервера 123.123.123.123 можно командой:

scp /home/user/file.tgz root@123.123.123.123:/root

Чтобы скачать этот же файл с удаленного сервера:

scp root@123.123.123.123:/root/file.tgz /home/user

За одну операцию можно скопировать несколько файлов, для этого необходимо указать их в качестве источника, разделив пробелом – местом назначения будет считаться последний указанный параметр. Например, загрузить файлы file1.tgz и file2.tgz из локального каталога на удаленный сервер позволит команда:

scp file1.tgz file2.tgz root@123.123.123.123:/root

Для копирования каталога потребуется задействовать модификатор команды r. Копируем локальный каталог /home/user/dir на удаленный сервер:

scp –r /home/user/dir root@123.123.123.123:/root

В тех случаях, когда SSH-сервер работает на нестандартном порту, поможет опция P. Если нужно подключиться через порт 10022:

scp –P 10022 /home/user/file.tgz root@123.123.123.123:/root

Чтобы узнать какие еще модификаторы поддерживает команда, можно просто запустить scp без параметров и прочитать краткую справку.

Работаем на ОС семейства Windows

При использовании операционной системы Windows и Putty в качестве клиента, формат команды остается тот же, меняется только название исполняемого файл и используется синтаксис указания путей к файлам и каталогам Windows при указании источника или места назначения. Запускаем командную строку (cmd.exe) или PowerShell, переходим в каталог, где расположен файл pscp.exe вводим команду:

pscp.exe C:Tempfile.tgz root@123.123.123.123:/root

В случае запуска из какой-либо другой папки понадобится указать полный путь к pscp.exe. Если в каком-либо из путей присутствуют пробелы, используются двойные кавычки — “Путь к файлу”:

“C:Program FilesPuttypscp.exe” C:Tempfile.tgz root@123.123.123.123:/root

Как и в случае с scp, запустив pscp.exe без параметров, можно увидеть краткую справку по синтаксису команды и перечень поддерживаемых модификаторов.

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

Протокол SSH, помимо работы в интерактивном режиме, поддерживает также разовый запуск команд или скриптов на удаленном сервере.

Работаем на ОС семейства Linux

ssh [пользователь]@[сервер] ‘[команда]’

При запросе вводим пароль указанного пользователя и в консоли получаем вывод команды, если таковой имеется.

Читайте также:  M audio firewire 410 drivers windows 10

Например, получим информацию об установленной на удаленном сервере операционной системе:

ssh root@123.123.123.123 ‘uname -a’

Чтобы запустить несколько команд за одно подключение, можно использовать символ “;” в качестве разделителя. Проверим сетевые настройки и активные сетевые подключения на удаленном сервере:

ssh root@123.123.123.123 ‘ifconfig; netstat -anp tcp’

В случае, если потребуется запустить на удаленном сервере локальный файла сценария, потребуется в SSH-подключении вызвать командный интерпретатор в режиме исполнения сценария (например, bash с ключом -s), и на стандартный ввод передать ему файл сценария. Выглядеть эта конструкция будет так:

ssh root@123.123.123.123 ‘bash -s’

В результате локальный файл /home/user/myscript.sh исполнится на удаленном сервере.

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

Работаем на ОС семейства Windows

Если мы подключаемся к удаленному серверу с компьютера, работающего на операционной системе Windows, то нам снова потребуется обратиться к терминальному клиенту Putty, в состав которого входит исполняемый файл plink.exe. Работать с этим файлом необходимо из командной строки (cmd.exe) или из PowerShell.

Для запуска команды на удаленном сервере используется следующий синтаксис:

plink.exe [сервер] -ssh -l [пользователь] “[команда]”

Проверим конфигурацию сетевых интерфейсов:

plink.exe 123.123.123.123 -ssh -l root “ifconfig”

Как и при работе с командой SSH в Linux, plink.exe позволяет использовать “;” в качестве разделителя для запуска нескольких команд:

plink.exe 123.123.123.123 -ssh -l root “ifconfig; netstat -anp tcp”

А запуск команд из локального файла можно реализовать с помощью дополнительного ключа m:

Источник

Как запустить удаленно SSH команды в Linux и показать результат локально

Главное меню » Операционная система Linux » Как запустить удаленно SSH команды в Linux и показать результат локально

Основной синтаксис для запуска удаленной команды SSH в Linux

  • SSH -> это протокол или команда используется для установки соединения с удаленным сервером.
  • USER -> это имя пользователя на удаленном сервере.
  • HOST -> это удаленный хост, на котором вы хотите выполнить удаленную команду.
  • Command -> это команда, которую вы хотите выполнить на удаленном хосте.

Примеры:

  • Допустим, вы хотите узнать детали точки монтирования удаленного сервера.

В приведенном выше примере система запросит у вас пароль вашего имени на удаленном хосте. Так как мы настроили пароль SSH между двумя серверами, система работала без пароля. В случае, если вы хотите настроить пароль SSH между двумя сервера, пожалуйста, прочитайте эту статью.

  • В случае, если вы хотите узнать результат команды бесперебойной работы на удаленном хосте.
  • Даже вы можете перегрузить сервер удаленно.

Запуск удаленной команды SSH в Linux, для остановки или запуска любого процесса или услуги.

  • В случае, если вы хотите остановить процесс HTTPd на удаленном хосте.

Так как в приведенном выше примере команда состоит из более чем одного слова, вы должны всю команду заключить в кавычки «‘».

  • Теперь, чтобы запустить его снова службу HTTPD, используйте команду ниже.
  • Позволяет проверить состояние службы HTTPd удаленно с помощью следующей команды:

Чтобы получить вывод в локальный файл Linux, выполните команду на удаленном хосте.

В случае, если вы хотите получить выход выполненной команды на удаленном хосте, вам необходимо следовать следующему методу.

Здесь, в приведенном выше примере мы выполнили команду использования памяти на удаленном хосте и перенаправили вывод в локальный файл «/tmp/memory.txt». После этого вы можете проверить содержимое файла с помощью команды cat.

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

Источник

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

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

Читайте также:  Epson t50 драйвера windows 10 rus

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • password — пароль для пользователя root на удаленной машине.
  • script.sh — файл с вашим скриптом расположенный на станции с которой производите подключение.

Если есть вопросы, то пишем в комментариях.

Также можете вступить в Телеграм канал, ВК или подписаться на Twitter. Ссылки в шапки страницы.
Заранее всем спасибо.

Источник

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:

Reboot 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:

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:

Get the memory usage and the load average:

Show the kernel version, number of CPUs and the total RAM:

SSH: Run Bash Script on Remote Server

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.

Читайте также:  Windows phone how to use

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:

20 Replies to “SSH: Execute Remote Command or Script – Linux”

Nice Post there..I was wondering what if want to execute the script with an argument.

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.

I was unable to get the proper Pids in this case. Any reply would be helpful.

How to check remote server services which require sudo privilege?

How to check remote server services which require sudo privilege from local script file?

is what I use to send a bash script over the wire with sudo priviliges

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.

useless writing! Where it’s remote script executing example about sudo use?

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

Command $backdoor
$bash -0 $(wich bash)
Whoami..
#root

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

usa ssh-copy-id para copiar la llave

This was very helpful !
Thanks 🙂

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

Источник

Оцените статью