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

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

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

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

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

  • после входа в систему ssh и во время обновления apt-get, неправильно ли выходить из системы?
  • Существует ли альтернатива fail2ban в официальном репозитории Centos?
  • SSH known_hosts игнорируется на одной машине
  • Команда прокси-сервера ssh bastion
  • убедитесь, что все сеансы tmux прекращаются, когда сеанс SSH заканчивается
  • Верхние имена пользователей в принципалах Kerberos при входе в SSH с паролем
  • SSH для входа в систему с помощью pam_exec.so
  • Вызов Bash продолжает исчезать
  • 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 .

    Interesting Posts

    SSH SOCKS5 proxy, является ли мой трафик безопасным?

    Почему «lspci -xxx» опасен?

    iterm-синхронизация сеансов по новым вкладкам

    Как вставить запятую в указанное место?

    Автоматический запуск smuxi-сервера

    Как ограничить пропускную способность, используемую процессом?

    Запуск сценария bash как менее привилегированного пользователя с выскочкой

    Что делает командная команда с акцентом?

    Как удалить нежелательные учетные записи домена Windows и локальную учетную запись с экрана входа в Linux Mint 17?

    Мышь и клавиатура не работают в FreeBSD 9.0

    Укажите резервный файл для сломанной символической ссылки

    Не удается установить веб-приложение Java на Fedora

    Переместить правило iptables (без удаления и добавления)

    «Не может быть раздела вне диска!» Для vdi, созданного с усеченного изображения

    Может ли звездочка настроить трехсторонний вызов на аналоговой (классической) линии?

    Linux и Unix - лучшая ОС в мире.