Linux 서버 간에 파일을 빠르게 전송하는 가장 쉬운 방법은 무엇입니까?

Linux 서버 간에 파일을 빠르게 전송하는 가장 쉬운 방법은 무엇입니까?

한 CentOS 서버에서 다른 CentOS 서버로 파일을 전송해야 합니다. 약 10분마다 5MB 파일을 전송합니다. 암호화가 필요하지 않습니다.

파일을 빠르게 전송하는 것이 얼마나 쉬운가요?

FTP보다 간단한 것이 있습니까?

감사해요!

답변1

재동기화

저는 ftp나 tftp를 사용하기 전에 rsync를 사용했습니다.

더 많은 옵션과 (내 경험상) 더 안정적인 전송이 가능합니다.

답변2

SSH를 통한 tar는 괜찮지만 netcat을 통한 TCP를 통한 tar는 가능한 한 오버헤드가 낮습니다! 이것이 일회성이라면 다음을 시도해 보십시오.

수신기에서:

nc -l -p 8989 | tar x

보낸 사람:

tar cf - /source-path | nc (receiving host ip address) 8989

이것이 정기적으로 수행할 작업이라면 아마도 rsync를 사용할 것입니다.

답변3

두 사람이 SSH를 통해 tar를 언급했지만 어떻게 해야 하는지는 언급하지 않았습니다. 기록을 위해 기본 절차는 다음을 실행하는 것입니다.

tar cf - files... | ssh remotehost 'cd /destination && tar xvf -'

또는 수신 측에서 전송을 시작하려는 경우:

ssh remotehost 'cd /source && tar cf - files' | tar xvf -

Evan의 netcat 솔루션에 비해 이런 방식으로 수행하는 이점은 모든 작업을 하나의 컴퓨터에서 시작할 수 있다는 것입니다. 두 개의 netcat 호출을 조정할 필요가 없습니다. 이 작업을 자동으로 실행해야 하는 경우 암호 없이 연결할 수 있는 SSH 키를 설정하고 해당 키를 이러한 연결에 사용할 수 있습니다.

ssh에는 데이터 스트림을 압축하는 -C 옵션이 있거나 GNU tar의 내장 압축 기능을 사용할 수 있습니다.

tar zcf - files... | ssh remotehost 'cd /destination && tar xzvf -'

Rsync는 또 다른 옵션이지만 수신 측에 이미 존재하는 파일을 업데이트하는 데 가장 적합합니다. 상대편에 아직 존재하지 않는 파일을 전송할 때 scp나 tar/ssh보다 속도가 느린 것을 발견했습니다.

답변4

scp/ssh를 거쳐야 한다면 내 실험에 따르면 요즘 기본적으로 활성화된 가장 빠른 암호는 RC4인 것으로 나타났습니다. '를 통해 암호를 지정합니다.-c 아크포' ssh/scp 명령에:

초기 사본의 경우:

  • scp -c arcfour -r foo/ desthost:/destdir

업데이트:

  • rsync -e 'ssh -c arcfour' -r foo/ desthost:/destdir

관련 정보