원격 호스트로 파일은 전송하는 방법은 수없이 많이 있습니다.


FTP, SFTP, SCP, samba로 마운트해서 복사하는 방법........ 등등 열거할 수도 없이 많이 있습니다.


하지만 파일의 갯수가 매우 많으면 하나씩 올리는데 필요한 오버헤드가 더 많아져서 시간이 상당히 많이 필요합니다.


그리고 위에서 언급한 것들은 리눅스에 프로그램을 깔아야만 사용할 수 있습니다.


nc (net cat)을 사용하면 손쉽게 원격지로 파일을 전송할 수 있습니다.


우선 파일을 받는 컴퓨터에서 다음과 같이 명령을 수행합니다.

nc -l -p 25000 | gzip -d | tar xf -


파일을 보내는 컴퓨터에서는 다음과 같이 명령을 수행합니다.


tar cf - <보낼 파일 혹은 디렉토리> | gzip | nc -q0 <IP 주소> 25000


25000이라고 되어있는 것이 포트번호입니다. 자주 쓰지 않는 포트번호이기 때문에 충돌은 나지 않지만 혹시라도 25000 포트를 사용하고 있다면 다른 포트를 사용하시면 됩니다.


이렇게 전송하게 되면 tar 및 gzip으로 묶고 압축하여 하나의 파일로 전송하고 받는 측에서 압축을 푸는 형식이라서 오버헤드도 적고, tar로 묶어서 처리하기 때문에 파일의 속성을 그대로 유지하면서 전송할 수 있습니다.