30 GB'lik tar dosyasını bir uzak sunucudan diğerine aktarma


8

Yeni sunucuya (Adanmış sanal) veya "Sunucu B" diyebileceğimiz eski sunucudan (Paylaşılan barındırma) aktarmam gereken 38 GB "Moodle" tar dosyası var. Bu yardımcı olursa Mediatemple ile beraberim.

Zaten dizini tarballed ve SSH üzerinden B sunucusuna aktarmak için wget kullandım, ancak - bu bir cılız 100GB paket ve% 96 disk kapasitesindeyim - yani B sunucusundaki dosyayı açamıyorum! Bu büyük dosyayı Sunucu A'dan Sunucu B'ye aktarabilir miyim, izinleri koruyarak ve mümkün olan en az şanslı dosya bozulmasıyla disk sınırına ulaşmamı sağlayacak?

Şimdiye kadar bunu yaparken çok zaman geçirmiş olsam da, birisi daha iyi bir fikir sunabilirse orijinal planımı terk etmeye istekli olurum - ve çok minnettar olurum!

Yanıtlar:


21

Katranmayın. rsync -avDosyaları aktarırken izinleri korumak için kullanın . Katran gibi, bu selinux bağlamını korumaz. Bunu önemli olarak göreceğime göre değil.


1
Merhaba Dennis, cevap için teşekkürler. Sanırım rsync komutunu nasıl kullanacağınız hakkında biraz ayrıntılı bilgi verebilirsiniz? Veya yararlı bir makale mi? Tekrar teşekkürler
alexbass

1
Yararlı bir makale rsync manpage :) Ama kısaca: serverb'den servera'ya ssh erişiminiz varsa, bunu serverb'de çalıştırın:rsync -av servera:/path/to/files/to/copy/ /path/to/copy/to
Dennis Kaarsemaker

1
Kullandığınız işletim sisteminde temel komutları nasıl kullanacağınızdan emin değilseniz, yardım hizmetinden başlayın. Unix makinelerinde bu genellikle man rsyncveya benzeri bir şeydirrsync --help
mfinni

1
-aima eder -r(ve insanlar unutulmaya devam eden daha birçok bayrak -a"yedekler yapmak için yararlı bayraklar" olarak eklenmiştir)
Dennis Kaarsemaker

1
Güvenlik bir sorun değilse (yani iki makine arasındaki ağa güvendiğiniz anlamına gelir) nc de bir seçenektir. Sunucuda: tar -zc source | nc -l 1313 İstemcide: nc SERVER_IP 1313 | tar -zx
Tsvetomir Dimitrov

12

Muhtemelen daha fazla disk alanı satın almak istiyorsunuz, ancak almadığınız varsayılarak ...

tarball'ı indirmektense borunun etrafına geçirin.

newserver#  ssh olduser@oldserver "cat /path/to/tarball" | tar xf -

veya eski sunucunuza SSH erişiminiz yoksa

newserver# wget -O - http://oldserver/path/to/tarball | tar xf -

veya Dennis'in dediği gibi rsync kullanın .

Yaratıcı ol. Bahsetmediğim başka çözümler var.


--numeric-ownerTarball yapmadan önce sahiplerin ve grupların değişmemesini sağlamak için seçeneği kullanmanız gerekebilir . ssh ouser@oserver tar -zcplC /src_path --numeric-owner . | tar -zxpC /dst_path
F. Hauri

@ F.Hauri --numeric-owner, UID / GID şeması iki makine arasında farklılık gösteriyorsa (potansiyel olarak ciddi) istenmeyen sonuçlara neden olabilir. Bu genellikle iç ortamda bir sorun değildir, ancak "paylaşılan barındırma" dan "özel sanal" a geçiş bu sorunlara neden olabilir. Sen kullanılıyorsa yeni sunucuda düzeltme mülkiyete hazırlıklı olmamız gerekir tar, cpiohatta ve rsync.
voretaq7

Evet, haklısınız, ancak bu tür bir seçenek hakkında bilgi sahibi olmamanız da (aynı) sınır etkisine sahip olabilir. En iyisi: ne yaptığını bilmek ve ... rtfm ;-)
F. Hauri

... bazı ilginç yolu (filtreler) için kullanmak (veya değil) için yaratıcı olmak : ncya openssl, sed, gpg, uuencodeve mail(özenle), enscript+ lpr+ [kuş taşıyıcılar] ( fr.wikipedia.org/wiki/IP_over_Avian_Carriers ) + scan+ ocr. .. Ama daha da fazlası var ...
F. Hauri
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.