Как на работе, так и дома я очень часто делаю следующее:

$ scp "SomeScriptIJustCreatedOrModified.sh" some-server:
$ ssh some-server ./SomeScriptIJustCreatedOrModified.sh arguments

И иногда этот вариант тоже:

$ scp "SomeScriptIJustCreatedOrModified.sh" some-server:/tmp
$ ssh some-server -t sudo -u other_user /tmp/SomeScriptIJustCreatedOrModified.sh arguments

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

Как это сделать?

2 ответа2

2

Попробуйте заглянуть в controlmaster . Он открывает одно соединение ssh и позволяет будущим соединениям ssh и scp проходить через одно и то же соединение, поэтому нет необходимости повторно вводить пароль или ждать открытия соединения.

Вот пример того, как настроить controlmaster.

Отредактируйте ваш файл .ssh/config включив в него строки:

Host hostname                                                                                                          
    User username                                                                                                  
    HostName hostname                                                                                                        
    ControlMaster auto
    ControlPath ~/.ssh/%r@%h:%p

Где hostname и username заменены соответствующей информацией.

0

Если у вас есть доступ по ssh на сервере, вы всегда можете использовать sftp-клиент, такой как ExpanDrive, для монтирования удаленного домашнего каталога на локальном компьютере. Затем вы можете просто написать свой скрипт локально в текстовом редакторе и сохранить его на локально смонтированном удаленном компьютере.

В этот момент он будет на сервере, и все, что вам нужно сделать, - это запустить его через ssh. Пока вы сохраняете свои соединения sftp и ssh открытыми, вы можете сохранять и запускать столько скриптов, сколько хотите, в течение всего дня, и вам нужно будет подключаться только один раз для sftp и один раз для ssh.

Просто имейте в виду, что с этим рабочим процессом каждый раз, когда вы сохраняете, вы будете писать на удаленный сервер, и он будет писать только настолько быстро, насколько позволяют ограничения ОС и сети (то есть, это будет медленнее, чем локальная запись).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .