한 CentOS 서버에서 다른 CentOS 서버로 파일을 전송해야합니다. 약 10 분마다 5MB 파일을 전송합니다. 암호화가 필요하지 않습니다.
파일을 빠르게 전송하는 것이 쉬운 이유는 무엇입니까?
ftp보다 간단한 것이 있습니까?
감사!
한 CentOS 서버에서 다른 CentOS 서버로 파일을 전송해야합니다. 약 10 분마다 5MB 파일을 전송합니다. 암호화가 필요하지 않습니다.
파일을 빠르게 전송하는 것이 쉬운 이유는 무엇입니까?
ftp보다 간단한 것이 있습니까?
감사!
답변:
rsync
ftp 또는 tftp를 사용하기 전에 rsync를 사용합니다.
더 많은 옵션과 (제 경험상)보다 안정적인 전송.
tar over ssh는 괜찮지 만 netcat을 통한 TCP를 통한 tar는 오버 헤드가 거의 없습니다! 이것이 일회성이라면 이것을 쏴보십시오.
수신자에서 :
nc -l -p 8989 | tar x
발신자 :
tar cf - /source-path | nc (receiving host ip address) 8989
이것이 당신이 정기적으로 할 일이라면, 아마도 rsync를 사용할 것입니다.
두 사람이 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보다 속도가 느린 것으로 나타났습니다.
내가 사용하는 거라고 scp
또는 tar
이상 ssh
정직,. 암호화는 속도를 늦추지 만 설정 및 사용의 용이성, 안정성 및 (주관적으로) 친숙 함은 실제로 속도가 필요 하지 않은 한 히트를 기꺼이 받아들 입니다.
기본값보다 빠른 암호를 사용하도록함으로써 ssh 전송 속도를 높일 수 있습니다. 기본값은 일반적으로 일반적으로 3des
할 수 -c des
있으므로 분명히 더 -c blowfish
빠르지 만 정확하게 테스트하지는 않았지만 빠릅니다.
(SSHv1 시절에 자주 할 수는 -c none
있지만 누군가가 나쁜 juju라고 결정했다고 생각합니다.)
동일한 페이지를 두 번 이상 전송하면 매뉴얼 페이지의 인용 부호와 같이 복사 속도가 빨라지므로 Rsync를 사용하는 것이 좋습니다.
rsync is a program that behaves in much the same way that rcp does, but
has many more options and uses the rsync remote-update protocol to
greatly speed up file transfers when the destination file is being
updated.
The rsync remote-update protocol allows rsync to transfer just the dif-
ferences between two sets of files across the network connection, using
an efficient checksum-search algorithm described in the technical
report that accompanies this package.
FTP는 매우 간단하지만 한 시스템에서 NFS 공유를 만들어 다른 시스템에 마운트하는 것이 더 간단한 방법 일 수 있습니다. 그런 다음 파일 복사는 한 디렉토리에서 다른 디렉토리로 cp를 수행하는 것으로 구성됩니다.
https://www.npmjs.org/package/gist-cli
https://github.com/settings/applications#personal-access-tokens
또는 이것 :
https://github.com/defunkt/gist
gist 명령을 사용하여 업로드 및 다운로드