GNU/Linux >> Belajar Linux >  >> Linux

Transfer File Lebih Cerdas Dari Rsync??

Tutup . Pertanyaan ini membutuhkan detail atau kejelasan. Saat ini tidak menerima jawaban.

Ingin memperbaiki pertanyaan ini? Tambahkan detail dan perjelas masalahnya dengan mengedit postingan ini.

Ditutup 6 tahun yang lalu.


Perbaiki pertanyaan ini

Saya memiliki file besar (2-3 GB, biner, format tidak berdokumen) yang saya gunakan di dua komputer yang berbeda (biasanya saya menggunakannya di sistem desktop tetapi ketika saya bepergian saya meletakkannya di laptop saya). Saya menggunakan rsync untuk mentransfer file ini bolak-balik.

Saya membuat pembaruan kecil untuk file ini dari waktu ke waktu, mengubah kurang dari 100 kB. Ini terjadi pada kedua sistem.

Masalah dengan rsync seperti yang saya pahami adalah bahwa jika menurut saya file telah berubah antara sumber dan tujuan, ia mentransfer file lengkap. Dalam situasi saya, rasanya seperti buang-buang waktu ketika hanya sebagian kecil dari file yang berubah. Saya membayangkan sebuah protokol di mana agen transfer pada sumber dan tujuan pertama-tama memeriksa seluruh file dan kemudian membandingkan hasilnya. Ketika mereka menyadari bahwa checksum untuk seluruh file berbeda, mereka membagi file menjadi dua bagian, A dan B dan checksum secara terpisah.

Aha, B identik di kedua mesin, mari kita abaikan setengahnya. Sekarang membagi A menjadi A1 dan A2. Oke, hanya A2 yang berubah. Pisahkan A2 menjadi A2I dan A2II dan bandingkan dll. Lakukan ini secara rekursif sampai ditemukan misalnya, tiga bagian yang masing-masing berukuran 1 MB yang berbeda antara sumber dan tujuan dan kemudian transfer hanya bagian-bagian ini dan masukkan ke posisi yang tepat di file tujuan. Saat ini dengan SSD cepat dan CPU multicore, paralelisasi seperti itu seharusnya sangat efisien.

Jadi pertanyaan saya adalah, apakah ada alat yang berfungsi seperti ini (atau dengan cara lain yang tidak dapat saya bayangkan tetapi dengan hasil yang serupa) tersedia saat ini?

Permintaan klarifikasi telah diposting. Saya kebanyakan menggunakan Mac jadi sistem filenya adalah HFS+. Biasanya saya memulai rsync seperti ini

rsync -av --delete --progress --stats – dalam hal ini saya terkadang menggunakan SSH dan terkadang rsyncd. Ketika saya menggunakan rsyncd saya memulainya seperti ini rsync --daemon --verbose --no-detach .

Klarifikasi kedua:Saya meminta alat yang hanya mentransfer delta untuk file yang ada di dua lokasi dengan perubahan kecil dan/atau jika rsync benar-benar menawarkan ini. Pengalaman saya dengan rsync adalah ia mentransfer file secara penuh (tetapi sekarang ada jawaban yang menjelaskan ini:rsync membutuhkan server rsync untuk dapat mentransfer hanya delta, jika tidak (misalnya, menggunakan ssh-shell) ia mentransfer keseluruhan file namun banyak yang telah berubah).

Terkait:Kapan Anda akan menggunakan deskriptor file tambahan?

Jawaban yang Diterima:

Rsync tidak akan menggunakan delta tetapi akan mengirimkan file lengkap secara keseluruhan jika – sebagai satu proses – bertanggung jawab atas file sumber dan tujuan. Itu dapat mengirimkan delta ketika ada proses klien dan server terpisah yang berjalan pada mesin sumber dan tujuan.

Alasan rsync tidak akan mengirim delta ketika itu adalah satu-satunya proses adalah untuk menentukan apakah perlu mengirim delta, ia perlu membaca file sumber dan tujuan. Pada saat selesai, itu mungkin juga baru saja menyalin file secara langsung.

Jika Anda menggunakan perintah formulir ini, Anda hanya memiliki satu proses rsync:

rsync /path/to/local/file /network/path/to/remote/file

Jika Anda menggunakan perintah formulir ini, Anda memiliki dua proses rsync (satu di host lokal dan satu di remote) dan delta dapat digunakan:

rsync /path/to/local/file remote_host:/path/to/remote/file

Linux
  1. Apakah>&- Lebih Efisien Daripada>/dev/null?

  2. Bagaimana cara RSYNC satu file?

  3. temukan dan hapus file atau folder yang lebih lama dari x hari

  1. Apakah ada cara untuk melanjutkan scp file yang terputus?

  2. Mempertahankan izin file dan folder dengan rsync

  3. Lanjutkan transfer satu file dengan rsync

  1. Apakah Menggunakan Rsync Saat Sumber Diperbarui Aman?

  2. Bandingkan Direktori Tapi Bukan Isi File?

  3. Mengapa Menggunakan Instal Daripada Cp Dan Mkdir?