스크립트에서 Netcat 사용(대상에 로그인하지 않음)

스크립트에서 Netcat 사용(대상에 로그인하지 않음)

집에 있는 모든 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를 통해 명령을 보내면 수신 포트가 열린 상태로 유지되지 않는다고 믿게 됩니다.

내가 볼 수 없는 다른 경로가 있습니까? 아니면 청취 세션을 생성하려면 항상 대상 컴퓨터에 로그인해야 합니까?

관련 정보