Как запустить скрипт с использованием 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, записывающего stdout, когда сеанс SSH теряется?
  • Автоматически копировать определенную папку с каждой удаленной машины на главную машину
  • Копирование файлов на несколько компьютеров по локальной сети
  • Ошибка проверки ключа хоста (код выхода 255) при использовании pdcp
  • SSH в тот же каталог на удаленном компьютере, что и локальный
  • Клиент Web ssh / telnet
  • Не удалось разрешить имя хоста
  • Как отменить нежелательные сообщения об ошибке из команды ssh?
  • Как передать несколько команд через pssh и несколько xterms
  • Время ожидания SSH. это не клиент или сервер ... что теперь?
  • что делать, если вы по ошибке удалили файл ~ / .ssh / known_hosts?
  • Обратная пересылка X11 без SSH на сервере
  • Linux и Unix - лучшая ОС в мире.