Войдите через скрипт на удаленный сервер и выполните набор команд - PullRequest
9 голосов
/ 05 июня 2011

Как я могу войти на удаленный сервер и выполнить набор команд, затем, когда закончите, выйдите и продолжите мой сценарий?

Спасибо.

Ответы [ 3 ]

11 голосов
/ 05 июня 2011

ssh может использоваться для выполнения команды, а не для запуска оболочки удаленного интерактивного входа.Например:

ssh user@host ls

Зарегистрируйтесь на хосте и выполните команду ls.

Вы можете использовать это внутри скрипта bash как обычно:

#!/bin/bash

# do local commands

ssh user@host "ls; grep something file.txt; copy a b"

# do more local commands

На справочной странице ssh статусом выхода будет статус выхода команды удаления или 255, если произошла ошибка.

1 голос
/ 05 июня 2011

Как уже говорили другие, вы можете использовать ssh.Однако, если вы запускаете скрипт, вы можете настроить ssh для входа без пароля.Вы можете сделать это, установив открытый / закрытый ключ с помощью команды ssh-keygen .Также измените разрешение ключевых файлов (id_rsa, id_rsa.pub) на 600 для открытого ключа и 400 для личного ключа для безопасности модификации.chmod 600 id_rsa.pub; chmod 400 id_rsa

В вашей системе вы запускаете ssh-keygen для генерации открытого и закрытого ключей.В Unix / Linux / Mac они находятся в каталоге $HOME/.ssh.(Держите пароль пустым!).Затем вы хотите создать файл с именем authorized_keys на удаленном компьютере в каталоге $HOME/.ssh и скопировать туда свой открытый ключ. Нет необходимости генерировать ключи шифрования на удаленном компьютере.

Теперь, когда вы вводите ssh или scp на удаленном компьютере, вам не нужно вводить пароль.

1 голос
/ 05 июня 2011

Небольшой вариант с более простым форматированием кода с использованием ssh и bash -s:

echo '
globchar="*"
ls -1d $globchar
ls -ld $globchar
' |
ssh user@host "bash -s --"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...