Как запустить скрипт с использованием 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 туннелирование формирования исходящего трафика
  • Текущие свойства соединения SSH (шифр, тип авторизации, тайм-аут и т. Д.)
  • Кронтаб с SVN и Git
  • Отображение подсказки из команды ssh
  • Перенаправить stdout через ssh
  • Может ли ssh вернуть список каталогов?
  • Как предотвратить выключение при входе пользователя SSH?
  • Проблема с ssh && apt-get, нужна консультация
  • Имеет ли значение создание ssh-ключа как пользователя root или пользователя?
  • scp и сжимать одновременно, без промежуточного сохранения
  • SSH-туннель, настройка перенаправления портов
  • Linux и Unix - лучшая ОС в мире.