저는 집에 있는 모든 Unix 장치를 로컬 서버에 대한 tar|pv|pigz|nc로 설정하는 백업 방법을 가지고 있습니다. 수많은 예에서 본 것처럼, 먼저 대상 시스템이 포트에서 수신 대기하도록 요구합니다(예: 물리적으로 또는 SSH를 통해).
nc -w 60 -l 19001 > /dir/to/backup.tgz
그런 다음 현재 머신에서 스트림 전송을 시작합니다.
tar -cpf - /dir/to/backup | pv | pigz | nc -w 10 dest.i.p.addr 19001
프로세스 중에 호스트 컴퓨터에서 여러 터미널을 열 필요가 없도록 하고 거의 한 번의 클릭으로 완료되도록 이 스크립트를 작성하려고 합니다. 일반적으로 실행을 위해 ssh를 통해 명령을 보내는 것은
ssh -f [email protected] "nc -w 60 -l 19001 > /dir/to/backup.tgz"
그러나 포트가 열려 있고 데이터가 전송 및 수신되는 동안 backup.tgz 파일은 채워지지 않고 항상 비어 있는 것으로 읽혀집니다. 이로 인해 SSH를 통해 한 줄로 명령을 보내면 수신 대기 포트가 열린 상태로 유지되지 않을 것이라고 믿게 되었습니다.
표시되지 않는 다른 경로가 있습니까? 아니면 청취 세션을 생성하려면 항상 대상 컴퓨터에 로그인해야 합니까?