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

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

В частности, я запускаю что-то вроде этого:

[myName@localStation]$ ssh john_doe@myRemoteServer Password: ***** [john_doe@remoteServer]$ ./myVeryLongTask.script > myOutputLog.txt 

Есть ли способ настроить SSH-соединение таким образом, чтобы при сбое сетевого соединения задача продолжала работать?

3 Solutions collect form web for “Как запустить скрипт с использованием SSH с удаленного компьютера и избежать его прерывания, если удаленный компьютер отключен”

Вам нужно прочитать команду на экране ( вот быстрый результат Google )

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

'man screen' для получения дополнительной информации

EDIT: вот лучшая ссылка на экран HOWTO: экран: продолжайте работать над процессами, несмотря на отброшенное соединение

screen действительно хорош для этого. Еще несколько вариантов: nohup :

  • at

    at, – queue, проверять или удалять задания для последующего выполнения

    Вы можете использовать at интерактивной оболочке 's' для запуска команд или сохранения их в текстовом файле и передать это:

     $ cat foo ./myVeryLongTask.script > myOutputLog.txt $ at now < foo 
  • nohup

    nohup – запустить команду, защищенную от зависаний, с выходом на не-tty

    Чтобы запустить команду, выполните

     $nohup ./myVeryLongTask.script > myOutputLog.txt 

Для полноты, dtach – еще один вариант. Резюме detach в приведенной выше ссылке:

dtach – это крошечная программа, которая эмулирует функцию отсоединения экрана, позволяя вам запускать программу в среде, которая защищена от управляющего терминала и затем прикрепляется к ней.

Он меньше по размеру по сравнению с screen , и имеет гораздо больше функциональных возможностей, чем at nohup .

  • SSH соединение с малиной Pi: соединение отказано
  • Может ли сценарий оболочки, запущенный в ssh, продолжать работать, если экземпляр SSH закрывается?
  • Изменить путь по умолчанию для того, когда я подключу SSH к серверу CentOS?
  • Как ввести сетевой файл в ffmpeg
  • Как играть в HTTP-поток музыки через SSH?
  • Как rysnc работает над ssh?
  • Клиент Web ssh / telnet
  • Есть ли простой способ найти то, что мой сервер «делает»?
  • Проблема с клиентской стороной SSH: зависание и синхронизация на некоторых хостах
  • Возможность подключения двух удаленных Linux-машин
  • Труба SSH сломалась во время быстрого апгрейда. Что я могу сделать с этим?
  • Linux и Unix - лучшая ОС в мире.