일반적으로 다음을 사용하여 한 컴퓨터에서 다른 컴퓨터로 복사 파일을 보호할 수 있습니다.
> scp [email protected] ssh [email protected]:/home/user/my_files/* .
이는 대규모 데이터 세트의 경우 매우 느립니다.
내가 사용하고 있는 컴퓨터에는 wget으로 액세스할 수 있는 매우 빠른 링크가 있다는 말을 들었습니다. 대신 wget을 사용하여 동일한 파일 전송을 어떻게 수행합니까?
답변1
netcat
이 두 시스템 사이에 빠르고 안전하며 안정적인 네트워크 링크가 있는 경우 다음과 같이 및 의 조합을 사용할 수 있습니다 tar
.
대상 머신에서 다음을 실행합니다.
nc -l 10000 | tar -C /destination/directory -xzf -
원본 머신에서 다음을 실행합니다.
tar -cz /source/directory | nc dst-machine-ip-address 10000
암호화가 사용되지 않으므로 트래픽을 스니퍼링할 수 있으며 어떤 이유로든 연결이 끊어지면 처음부터 다시 시작해야 합니다.
개인적으로 나는 계속해서 rsync
.
답변2
성능scp두 가지 요인으로 인해 발생할 수 있습니다.
- 느린 프로세서에는 너무 많은 암호화 비용이 발생할 수 있습니다.
- 단일 파일을 요청하는 데 필요한 왕복 횟수입니다.
작은 파일 수가 많은 경우 두 번째입니다. 내 첫 번째 아이디어는 다음을 사용하여 조언하는 것이 었습니다.SFTP, 원격 호스트에서 다른 프로그램을 사용하기 때문입니다. 그러나 테스트 후에는 비슷한 성능을 제공합니다.
효과적인 해결책은 클라이언트와 서버 모두에 설치되어 수천 개의 데이터 스트림 대신 단 하나의 데이터 스트림만 보내는 프로그램을 사용하는 것입니다.SSH채널):
당신이 가지고 있다면재동기화원격 서버에서(클라이언트에 설치) 다음을 사용합니다.
rsync -av -e "ssh [email protected]" [email protected]:/home/user/my_files .
그렇지 않으면 사용할 수 있습니다타르:
ssh -o [email protected] -e none [email protected] \ tar -c /home/user/my_files | tar -x