SSH를 사용하여 원격 컴퓨터에서 스크립트를 실행하고 원격 컴퓨터가 오프라인일 때 중단을 방지하는 방법

SSH를 사용하여 원격 컴퓨터에서 스크립트를 실행하고 원격 컴퓨터가 오프라인일 때 중단을 방지하는 방법

SSH를 통해 매우 긴 작업을 실행하는 데 사용하는 원격 Linux 서버가 있습니다. 잘 작동하지만, 물론 어떤 이유로 연결이 중단되면 작업이 종료됩니다.

구체적으로 다음과 같은 작업을 실행하고 있습니다.

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

네트워크 연결이 실패해도 작업이 계속 실행되도록 SSH 연결을 조정하는 방법이 있습니까?

답변1

화면 명령을 읽어야 합니다(Google의 빠른 결과는 다음과 같습니다.)

Screen을 사용하면 설명하는 이유로 원격 연결을 계속 실행하고 반환할 수 있습니다. 무인 작업을 실행하거나 세션을 무기한 열어 두는 데에도 유용합니다.

"맨스크린" 자세히 알아보기

편집: 더 나은 HOWTO 링크는 다음과 같습니다.화면: 연결이 끊어져도 프로세스를 계속 실행합니다.

답변2

screen정말 훌륭해요. 다른 두 가지 옵션은 at다음과 같습니다 nohup.

  • at

    at, - 나중에 실행하기 위해 작업을 대기열에 추가하거나 검사하거나 삭제합니다.

    at대화형 셸을 사용하여 명령을 실행하거나 텍스트 파일에 저장하고 다음 위치에 전달할 수 있습니다 .

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

    nohup - 정지의 영향을 받지 않는 명령을 실행하고 tty가 아닌 명령으로 출력합니다.

    명령을 시작하려면 다음을 수행하십시오.

    $nohup ./myVeryLongTask.script > myOutputLog.txt 
    

답변3

완전성을 위해,분리또 다른 옵션입니다. detach위 링크 요약:

dtach는 화면 분리 기능을 에뮬레이트하는 작은 프로그램으로, 제어 터미널에 의해 보호되지 않는 환경에서 프로그램을 실행하고 나중에 연결할 수 있도록 해줍니다.

screenor보다 크기가 더 작고 기능이 더 많습니다.atnohup

관련 정보