현재 두 개의 CentOS 서버가 있습니다. 이미지 디렉토리와 SCP를 "타르"하는 방법과 가장 빠른 방법을 알아야합니까?
tarring이 영원히 걸리기 때문에 방금 제안한 가장 빠른 방법입니까? 나는 명령을 실행했습니다.
tar cvf imagesbackup.tar images
그리고 나는 그것을 그냥 scp하려고했습니다.
더 빠른 방법이 있는지 알려주세요. 두 컴퓨터 모두에 원격 / SSH 액세스 권한이 있습니다.
현재 두 개의 CentOS 서버가 있습니다. 이미지 디렉토리와 SCP를 "타르"하는 방법과 가장 빠른 방법을 알아야합니까?
tarring이 영원히 걸리기 때문에 방금 제안한 가장 빠른 방법입니까? 나는 명령을 실행했습니다.
tar cvf imagesbackup.tar images
그리고 나는 그것을 그냥 scp하려고했습니다.
더 빠른 방법이 있는지 알려주세요. 두 컴퓨터 모두에 원격 / SSH 액세스 권한이 있습니다.
답변:
tar를 사용하여 로컬 디스크에 쓰는 대신 ssh를 사용하여 네트워크를 통해 원격 서버에 직접 쓸 수 있습니다.
server1$ tar -zc ./path | ssh server2 "cat > ~/file.tar.gz"
"ssh"명령 뒤에 오는 문자열은 대화 형 로그온 대신 원격 서버에서 실행됩니다. 로컬 인 것처럼 SSH를 통해 해당 원격 명령과 입출력을 파이프 할 수 있습니다. 명령을 따옴표로 묶으면 특히 리디렉션을 사용할 때 혼동을 피할 수 있습니다.
또는 다른 서버에서 tar 파일을 직접 추출 할 수 있습니다.
server1$ tar -zc ./path | ssh server2 "tar -zx -C /destination"
거의 사용하지 않는 -C
옵션에 유의하십시오 . "무엇을하기 전에 먼저이 디렉토리로 변경"을 의미합니다.
또는 대상 서버에서 "풀"할 수도 있습니다.
server2$ tar -zx -C /destination < <(ssh server2 "tar -zc -C /srcdir ./path")
이 <(cmd)
구문은 bash에 처음 도입되었으며 이전 시스템에서는 작동하지 않습니다. 프로그램을 실행하고 출력을 파이프로 보내고 해당 파이프를 파일 인 것처럼 명령으로 대체합니다.
나는 다음과 같이 쉽게 위의 내용을 쓸 수있었습니다.
server2$ tar -zx -C /destination -f <(ssh server2 "tar -zc -C /srcdir ./path")
또는 다음과 같이 :
server2$ ssh server2 "tar -zc -C /srcdir ./path" | tar -zx -C /destination
또는 슬픔을 피하고 rsync를 사용할 수 있습니다.
server1$ rsync -az ./path server2:/destination/
마지막으로 전송하기 전에 데이터를 압축하면 대역폭이 줄어들지 만 연결 속도가 매우 빠르면 실제로 작업 시간 이 더 오래 걸릴 수 있습니다 . 경우 : 컴퓨터 유지하기 위해 충분히 빨리 압축하지 못할 수 있기 때문입니다 압축 1백메가바이트 것은이 걸릴 것보다 오래 걸립니다 보내 100MB의, 다음은 비 압축 전송하는 빠릅니다.
또는 압축 수준을 지정할 수 있도록 -z 옵션을 사용하지 않고 gzip을 직접 파이핑하는 것이 좋습니다. 압축 가능한 데이터로 빠른 네트워크 연결에서 레벨 2 또는 3 (기본값은 6)에서 gzip을 사용하면 대부분의 경우 최고의 전체 처리량을 제공하는 경험이 있습니다. 이렇게 :
server1$ tar -c ./path | gzip -2 | ssh server2 "cat > ~/file.tar.gz"
나는 그것을 스스로 재 동기화하려는 유혹을 느꼈다. 그것은 압축을하고 링크 손실을 잘 처리한다.
만약 당신이 그것들을 타르 고 다른 것은 아무것도 없다면 최소한의 속도 이득으로 많은 시간을 낭비 할 것입니다.
따라서 cvf 스위치로 파일을 taring하면 55GB 이미지를 모두 읽고 디스크에 다시 쓰는 데 걸리는 시간이 효과적으로 단축됩니다. (상당한 오버 헤드가 있기 때문에 시간이 더 많이 낭비 될 것입니다).
여기서 얻을 수있는 이점은 하나 뿐이며 많은 파일을 업로드하는 데 드는 오버 헤드가 줄어 듭니다. 이미지를 압축하면 전송 시간이 빨라질 수 있습니다 (그러나 이미 압축 된 형식이라고 생각하기 때문에 별 도움이되지 않습니다). 더 많은 컴퓨팅 시간 낭비.
와이어를 통해 거대한 타르 아카이브를 전송할 때의 가장 큰 단점은 문제가 발생하면 다시 시작해야한다는 것을 의미합니다.
나는 그런 식으로 사용합니다 :
md5sum /images/* > md5sum.txt
scp -r images/* user@host:/images/
새 서버에서
md5sum /images/* > md5sum_new.txt
그리고 그냥 diff
. scp는 압축을 즉석에서 지원하므로 별도의 아카이브가 필요하지 않습니다.
OP에 도움이 되었기 때문에 MD5 정보를 유지하겠습니다. 그러나 한 의견은 새로운 통찰력으로 저를 때렸습니다. 따라서 약간의 검색으로이 유용한 정보가 제공되었습니다. 여기서 주제는 직접 SCP가 아닌 SFTP 입니다.
FTP와 달리 SFTP는 파일 전송에 오버 헤드를 추가합니다. 클라이언트와 서버간에 파일이 전송되면 "패킷"이라는 작은 덩어리로 나뉩니다. 예를 들어, 각 패킷이 32KB라고 가정하십시오. SFTP 프로토콜은 전송 될 때 각 32KB 파일에서 체크섬을 수행하고 해당 체크섬과 해당 패킷을 포함합니다. 수신자는 해당 패킷을 가져 와서 데이터를 해독 한 다음 체크섬을 확인합니다. 체크섬 자체는 CRC32 체크섬보다 "강하다". SFTP는 MD5 또는 SHA와 같은 128 비트 이상의 체크섬을 사용하기 때문에 매 패킷마다 수행되므로 전송의 일부로 수행되는 매우 세부적인 무결성 검사가 있습니다. (추가 오버 헤드로 인해) 속도가 느리지 만 전송이 성공적으로 완료되면 사실상
Pacey의 md5sum 제안 외에도 다음을 사용합니다.
목적지에서 : nc -w5 -l -p 4567 | tar -xvf -
그런 다음 소스에서 : tar -cvf - /path/to/source/ | nc -w5 destinationserver 4567
여전히 tar / untar이며 암호화는 없지만 다른 서버로 직접 연결됩니다. 두 가지를 동시에 시작하고 ( -w5
5 초의 은혜를줍니다) 계속 진행하십시오. 대역폭이 꽉 찬 경우 양쪽 끝에 tar에 -z를 추가하십시오.
한 지점-모든 호스트에 rsync가있는 것은 아니며 호스트에 다른 버전의 tar가있을 수 있습니다. 이러한 이유로 종종 무시되는 cpio를 사용하여 첫 번째 호출 포트로 권장 할 수 있습니다.
ssh를 통해 cpio를 사용하여 호스트간에 파일 / 디렉토리 구조를 임시 복제 할 수 있습니다. 이런 식으로 cpio, nom-nom에 "feed"해야 할 때 전송되는 내용을보다 세밀하게 제어 할 수 있습니다. 또한 더 논쟁적이고 이식 가능하며 cpio는 많이 변경되지 않습니다. 이기종 환경에서 여러 호스트를 돌보는 경우 중요한 사항입니다.
/ export / home 및 하위 디렉토리를 원격 호스트로 복사하는 예 :
cd /export/ find . home -print | cpio -oaV | ssh 10.10.10.10 'cd /export/home; cpio -imVd'
위의 내용은 / export / home 및 하위 디렉토리의 내용을 원격 호스트의 / export / home에 복사합니다.
도움이 되었기를 바랍니다.
ssh 액세스 권한이 있고 rsync 액세스 권한이 있습니다.
rsync -av -e ssh /storage/images/ user@[ip or domain name]:/storage/images/
또는
rsync -av -e "ssh -l user" /storage/images/ [ip or domain name]:/storage/images/
"rsync error : main.c (977) [sender = 2.6.9]에서 일부 파일을 전송할 수 없습니다 (코드 23)"와 같은 오류가 표시되면 서버 간의 사용자 및 그룹을 확인하십시오. 불일치가있을 수 있습니다.
rsync가 전송을 압축하도록하려면 rsync "-z"옵션을 사용하십시오. 이 옵션은 더 많은 CPU를 사용하지만 더 적은 대역폭을 사용하므로주의하십시오.
"-프로그레시브"옵션이있어 당신에게 이체 율을 줄 것입니다.
파일을 전송하기 위해 인터넷이 필요하지 않고 공유 네트워크에 있습니까? NFS 또는 FTP는 전송하는 동안 암호화를 잃을지라도 SCP의 오버 헤드보다 훨씬 빠를 수 있습니다.