SSH 연결을 종료한 후 rsync 작업 완료

SSH 연결을 종료한 후 rsync 작업 완료

저는 .NET을 사용하여 한 컴퓨터에서 다른 컴퓨터로 많은 수의 파일을 전송하고 있습니다 rsync. SSH를 통해 소스 머신에 연결하고 다음 명령을 실행하여 이 작업을 수행했습니다.

sudo rsync ssh --rsync-path="sudo rsync" source_dir [email protected]:dest_dir.

이 명령어 앞에 추가 해도 nohupSSHing 중인 터미널 창을 닫을 때마다 연결이 닫힙니다.

SSH 연결이 종료된 경우 파일 전송을 계속하려면 어떻게 해야 합니까?

답변1

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

이것은 에서 발췌한 것입니다.위키 페이지nohup의 경우 :

참고 - Nohpping 백그라운드 작업은 일반적으로 원격 SSH 세션에서 로그아웃할 때 작업 종료를 방지하는 데 사용됩니다. 이 상황에서 자주 발생하는 또 다른 문제는 ssh가 백그라운드 작업에서 데이터 손실을 거부하기 때문에 로그아웃("중지")을 거부한다는 것입니다. 이 문제는 세 가지 I/O 스트림을 모두 리디렉션하여 해결할 수도 있습니다.

nohup ./myprogram > foo.out 2> foo.err < /dev/null &또한 SSH 세션을 닫아도 항상 HUP 신호가 관련 프로세스로 전송되는 것은 아닙니다. 무엇보다도 이는 의사 터미널이 할당되었는지 여부에 따라 달라집니다.

당신은 그것을 사용할 수 있습니다 screen.

다음을 사용하여 화면 세션을 만듭니다. 그런 다음 +를 사용하여 screen -S rsync 화면을 분리합니다 .CTRLA d

연결을 끊을 수 있습니다.SSH

답변2

이 화면 명령은 훌륭하지만 필요한 작업을 수행하지 않습니다.

이것은 훨씬 더 잘 작동합니다:

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

관련 정보