Transfer file tar 30GB dari satu server jarak jauh ke server lain - terkendali oleh ruang disk

8

Saya memiliki file tar "Moodle" 38GB yang harus saya transfer dari server lama (Shared hosting), yang dapat kita sebut "Server A" ke server baru (Dedicated virtual), atau "Server B". Saya dengan Mediatemple jika itu membantu.

Saya sudah tarballed direktori dan menggunakan wget untuk mentransfernya ke server B melalui SSH, namun - ini adalah paket 100GB lemah dan saya pada kapasitas disk 96% - yang berarti saya tidak dapat membatalkan pengarsipan file pada server B! Apakah ada cara saya dapat mentransfer file besar ini dari Server A ke Server B, menjaga izin dan dengan kemungkinan file korupsi, yang tidak akan membuat saya mencapai batas disk?

Sementara saya telah menghabiskan cukup banyak waktu melakukan ini sejauh ini, saya akan rela meninggalkan rencana awal saya jika seseorang dapat menawarkan ide yang lebih baik - dan saya akan sangat berterima kasih!

alexbass
sumber

Jawaban:

21

Jangan tar. Gunakan rsync -avuntuk mempertahankan izin saat mentransfer file. Meskipun seperti tar, ini tidak mempertahankan konteks selinux. Bukannya aku akan menganggap itu penting.

Dennis Kaarsemaker
sumber
1
Hai Dennis, terima kasih atas jawabannya. Saya tidak mengira Anda bisa menguraikan sedikit tentang cara menggunakan perintah rsync? Atau berikan artikel yang bermanfaat? Terima kasih lagi
alexbass
1
Artikel yang bermanfaat adalah rsync manpage :) Tetapi singkatnya: jika Anda memiliki akses ssh dari serverb ke servera, jalankan ini di serverb:rsync -av servera:/path/to/files/to/copy/ /path/to/copy/to
Dennis Kaarsemaker
1
Jika Anda tidak yakin cara menggunakan perintah mendasar pada OS yang Anda gunakan, mulailah dengan fasilitas bantuan. Pada mesin Unix, itu sering seperti man rsyncataursync --help
mfinni
1
-amenyiratkan -r(dan banyak lagi bendera yang terus dilupakan orang hingga -aditambahkan sebagai "ini adalah bendera yang berguna untuk membuat cadangan")
Dennis Kaarsemaker
1
Jika keamanan bukan masalah (maksud saya Anda mempercayai jaringan antara kedua mesin) nc juga merupakan pilihan. Di server: tar -zc source | nc -l 1313 Pada klien: nc SERVER_IP 1313 | tar -zx
Tsvetomir Dimitrov
12

Anda mungkin ingin membeli lebih banyak ruang disk, tetapi dengan asumsi Anda tidak, Anda dapat ...

pipa tarball di sekitar daripada mengunduhnya.

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

atau jika Anda tidak memiliki akses SSH ke server lama Anda

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

atau gunakan rsync seperti kata Dennis .

Jadilah kreatif. Ada solusi lain yang tidak saya sebutkan.

voretaq7
sumber
Anda mungkin harus menggunakan --numeric-owneropsi sebelum membuat tarball untuk memastikan pemilik dan grup tidak akan berubah. ssh ouser@oserver tar -zcplC /src_path --numeric-owner . | tar -zxpC /dst_path
F. Hauri
@ F. Hauri --numeric-ownerdapat memiliki konsekuensi (yang berpotensi serius) yang tidak diinginkan jika skema UID / GID berbeda antara kedua mesin. Ini biasanya bukan masalah di lingkungan internal, tetapi beralih dari "shared hosting" ke "dedicated virtual" ini dapat menyebabkan masalah. Anda harus berharap untuk memiliki kepemilikan memperbaiki pada server baru jika menggunakan tar, cpiodan bahkan mungkin rsync.
voretaq7
Ya, Anda benar tetapi, tidak mengetahui tentang opsi semacam ini dapat memiliki efek perbatasan (yang sama) juga. Yang terbaik: tahu apa yang Anda lakukan dan ... rtfm ;-)
F. Hauri
... beberapa cara yang menarik (filter) untuk menggunakan (atau tidak) untuk menjadi kreatif : ncatau openssl, sed, gpg, uuencodedan mail(dengan hati-hati;), enscript+ lpr+ [operator burung] ( fr.wikipedia.org/wiki/IP_over_Avian_Carriers ) + scan+ ocr. .. Tetapi ada lebih banyak lagi ...
F. Hauri