SSH 연결을 닫은 후 재 동기화 작업 완료


13

를 사용하여 한 컴퓨터에서 다른 컴퓨터로 많은 양의 파일을 전송하고 rsync있습니다. 소스 컴퓨터에 SSH로 연결하여 다음과 같은 명령을 실행 하여이 작업을 수행하고 있습니다.

sudo rsync ssh --rsync-path="sudo rsync" source_dir user@host.com:dest_dir.

nohup이 명령 앞에 추가하더라도 SSH를 사용하는 터미널 창을 닫을 때마다 연결이 닫힙니다.

SSH 연결을 닫을 때 파일 전송이 계속되도록하려면 어떻게해야합니까?

답변:


16

nohup도움이되지 않는 이유 는 프로그램이 표준 IO 파일로 작동하기 때문입니다.

다음은 nohup에 대한 Wiki Page 에서 발췌 한 내용입니다 .

주 – 백그라운드 작업을 Nohupping하면 일반적으로 원격 SSH 세션에서 로그 오프 할 때 작업을 종료하지 않습니다. 이 상황에서 자주 발생하는 다른 문제는 ssh가 백그라운드 작업과의 데이터 손실을 거부하기 때문에 로그 오프를 거부하는 것입니다 ( "멈춤"). 이 문제는 세 개의 I / O 스트림을 모두 리디렉션하여 극복 할 수도 있습니다.

nohup ./myprogram > foo.out 2> foo.err < /dev/null &또한 닫는 SSH 세션이 항상 프로세스에 따라 HUP 신호를 보내는 것은 아닙니다. 그 중에서도 의사 터미널이 할당되었는지 여부에 따라 다릅니다.

사용할 수 있습니다 screen.

screen -S rsync 다음 과 같이 스크린 세션을 생성하십시오. 그런 다음 CTRL+로 스크린을 분리하십시오.A d

그리고 SSH 에서 연결을 끊을 수 있습니다


4
예를 들어 연결이 끊어지면 문제가 발생하여 중단되면 화면 세션에서 실행하는 작업을 수행 할 때 추가하고 싶습니다. 화면은 우발적 인 연결 손실을 방지하도록 설계되었습니다. 원격으로 로그인하고 화면을 시작하고 작업을 시작할 수 있으며 연결이 끊어지면 실행중인 화면 인스턴스에 다시 연결할 수 있습니다. Screen에는 세션을 로그 파일로 캡처하고 단일 세션에 여러 개의 "화면"(네트워크 오버 헤드 절약)과 여러 뷰어 (교실 스타일)가있는 다른 유용한 기능이 있습니다. 또한 tmux가 스크린 대안이라고 언급 할 가치가 있습니다.
Johan

6

그 화면 명령은 훌륭하지만 내 요구에 정확히 맞지 않았습니다.

이것은 훨씬 잘 작동했습니다.

nohup rsync -va --delete ###.###.###.###:/var/www/sites/ /var/www/sites < /dev/null &

답변 답변처럼 감사합니다
Salaros
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.