GNU/Linux >> Belajar Linux >  >> Linux

Salin file besar dari satu server Linux ke yang lain

Solusi 1:

Sneakernet Siapa saja?

Dengan asumsi ini adalah salinan satu kali, saya rasa tidak mungkin untuk hanya menyalin file ke CD (atau media lain) dan bermalam ke tujuan, kan?

Itu mungkin sebenarnya pilihan tercepat Anda karena transfer file sebesar itu, melalui koneksi itu, mungkin tidak disalin dengan benar... dalam hal ini Anda harus memulai dari awal lagi.

rsync

Pilihan/upaya kedua saya adalah rsync karena mendeteksi transfer yang gagal, transfer sebagian, dll. dan dapat melanjutkan dari bagian sebelumnya.

rsync --progress file1 file2 [email protected]:/destination/directory

Bendera --progress akan memberi Anda umpan balik alih-alih hanya duduk di sana dan membiarkan Anda menebak-nebak sendiri. :-)

Vuze (bittorrent)

Pilihan ketiga mungkin adalah mencoba dan menggunakan Vuze sebagai server torrent dan kemudian meminta lokasi terpencil Anda menggunakan klien bitorrent standar untuk mengunduhnya. Saya tahu orang lain yang telah melakukan ini tetapi Anda tahu... pada saat mereka menyiapkan semuanya berjalan, dll... Saya dapat menyimpan data dalam semalam...

Tergantung pada situasi Anda, saya kira.

Semoga berhasil!

PEMBARUAN:

Kau tahu, aku memikirkan masalahmu sedikit lagi. Mengapa file tersebut harus berupa satu tarball besar? Tar sangat mampu membagi file besar menjadi file yang lebih kecil (untuk menjangkau media misalnya) jadi mengapa tidak membagi tarbal besar itu menjadi bagian yang lebih mudah dikelola dan kemudian mentransfer bagian tersebut?

Solusi 2:

Saya pernah melakukannya di masa lalu, dengan file tbz2 60GB. Saya tidak memiliki skrip lagi tetapi seharusnya mudah untuk menulis ulang.

Pertama, pisahkan file Anda menjadi beberapa bagian berukuran ~2GB :

split --bytes=2000000000 your_file.tgz

Untuk setiap bagian, hitung hash MD5 (ini untuk memeriksa integritas) dan simpan di suatu tempat, lalu mulailah menyalin bagian dan md5 mereka ke situs jarak jauh dengan alat pilihan Anda (saya :netcat-tar-pipe di layar sesi).

Setelah beberapa saat, periksa md5 apakah karya Anda baik-baik saja, lalu :

cat your_file* > your_remote_file.tgz

Jika Anda juga telah melakukan MD5 dari file aslinya, periksa juga. Jika tidak apa-apa, Anda dapat meng-untar file Anda, semuanya akan baik-baik saja.

(Jika saya punya waktu, saya akan menulis ulang skripnya)

Solusi 3:

Biasanya saya sangat mendukung rsync, tetapi saat mentransfer satu file untuk pertama kalinya, sepertinya tidak masuk akal. Namun, jika Anda mentransfer ulang file dengan hanya sedikit perbedaan, rsync akan menjadi pemenang yang jelas. Jika Anda tetap memilih untuk menggunakan rsync, saya sangat menyarankan untuk menjalankan salah satu ujungnya di --daemon mode untuk menghilangkan terowongan ssh yang mematikan kinerja. Halaman manual menjelaskan mode ini secara menyeluruh.

Rekomendasi saya? FTP atau HTTP dengan server dan klien yang mendukung melanjutkan unduhan yang terputus. Kedua protokol cepat dan ringan, menghindari penalti ssh-tunnel. Apache + wget akan berteriak dengan cepat.

Trik pipa netcat juga akan bekerja dengan baik. Tar tidak diperlukan saat mentransfer satu file besar. Dan alasan itu tidak memberi tahu Anda ketika selesai adalah karena Anda tidak menyuruhnya. Tambahkan -q0 tandai ke sisi server dan itu akan berperilaku persis seperti yang Anda harapkan.

server$ nc -l -p 5000 > outfile.tgz

client$ nc -q0 server.example.com 5000 < infile.tgz

Kelemahan dari pendekatan netcat adalah tidak memungkinkan Anda untuk melanjutkan jika transfer Anda mati 74GB di...

Solusi 4:

Cobalah netcat (terkadang disebut nc). Berikut ini berfungsi pada direktori, tetapi seharusnya cukup mudah untuk men-tweak hanya dengan menyalin satu file.

Di kotak tujuan:

netcat -l -p 2342 | tar -C /target/dir -xzf -

Di kotak sumber:

tar czf * | netcat target_box 2342

Anda dapat mencoba menghapus opsi 'z' di kedua perintah tar untuk sedikit lebih cepat karena file tersebut sudah dikompresi.


Linux
  1. Cara Menyalin Izin dan Kepemilikan File ke File Lain di Linux

  2. Cara Menemukan dan Menyalin Jenis File Tertentu Dari Satu Direktori Ke Direktori Lain Di Linux

  3. Cara menyalin atau mengkloning izin dari satu file ke file lain di Linux

  1. Cara menyalin tabel dari satu database mysql ke database mysql lainnya

  2. Bagaimana menemukan kata-kata dari satu file di file lain?

  3. Bagaimana cara menggunakan rsync dari PC Windows ke server Linux jarak jauh?

  1. Bagaimana Cara Menyalin Pengaturan Dari Satu Mesin Ke Mesin Lainnya?

  2. menyalin file dari windows ke Linux

  3. Salinan persis file dari NTFS ke NTFS lain menggunakan Linux