Anda tidak dapat "gzip semuanya" karena gzip hanya mengkompres satu file, Anda dapat membuat file tar dan gzip menjadi "gzip semuanya" tetapi Anda akan kehilangan kemampuan rsync untuk menyalin hanya file yang dimodifikasi.
Jadi pertanyaannya adalah: apakah lebih baik menyimpan file yang saya butuhkan untuk rsync gziped atau mengandalkan opsi -z rsync.
Jawabannya mungkin Anda tidak ingin file di-zip di server Anda? Saya kira ya, jadi saya tidak melihat bagaimana Anda bisa mengelola file gzip sebelum melakukan rsync.
Mungkin Anda tidak memerlukan kemampuan rsync hanya menyalin file yang dimodifikasi? Dalam hal ini mengapa menggunakan rsync daripada melakukan scp dari file tar.gz yang berisi barang-barang Anda?
Pokoknya untuk menjawab pertanyaan, rsync gzip akan sedikit kurang efisien daripada file gzip dengan gzip. Mengapa karena rsync akan gzip data chunk by chunk, jadi kumpulan data yang lebih kecil akan digunakan untuk membuat tabel yang digunakan gzip untuk melakukan kompresi, kumpulan data yang lebih besar (gzip akan menggunakan seluruh file sekaligus) memberikan tabel kompresi yang lebih baik. Tetapi perbedaannya akan sangat sangat kecil dalam banyak kasus tetapi dalam kasus yang sangat jarang perbedaannya bisa lebih penting (jika Anda memiliki file yang sangat besar dengan partern yang sangat panjang berulang kali pada file tetapi jauh dari satu sama lain) (Ini adalah contoh yang sangat sederhana)
Jika Anda hanya menyalin data satu kali, rsync tidak akan menjadi kemenangan besar. Jika Anda suka gzip, (atau tar + gzip, karena Anda memiliki banyak file), Anda dapat mencoba sesuatu seperti:
Itu akan mendapatkan kompresi yang Anda cari dan salin langsung tanpa melibatkan rsync.
sumber
@radius, nit kecil untuk memilih cara
gzip
kerjanya -gzip
adalah algoritma kompresi berbasis blok, dan cukup sederhana. Seluruh file tidak dipertimbangkan untuk tabel kompresi - hanya setiap blok. Algoritme lain dapat menggunakan seluruh isi file dan ada beberapa yang menggunakan konten beberapa blok atau bahkan blok berukuran bervariasi. Salah satu contoh yang menarik adalahlrzip
, oleh penulis yang sama denganrsync
!gzip
Algoritma kurus pada .Jadi, secara ringkas, menggunakan
rsync -z
kemungkinan akan menghasilkan kompresi yang sama sepertigzip
ing pertama - dan jika Anda melakukan transfer diferensial, lebih baik karenarsync
algoritma diffing.Yang mengatakan, saya pikir seseorang akan menemukan bahwa
scp
ketukan biasarsync
untuk transfer non-diferensial - karena akan memiliki overhead yang jauh lebih sedikit daripadarsync
algoritma (yang akan tetap menggunakanscp
under-the-hood!)Jika jaringan Anda memang menjadi hambatan, maka Anda ingin menggunakan kompresi pada kabel.
Jika disk Anda adalah penghambat, saat itulah streaming ke file terkompresi akan lebih baik. (misalnya,
netcat
dari satu mesin ke yang lain, mengalir kegzip -c
)Biasanya, jika kecepatan adalah kunci, mengompres file yang sudah ada sebelumnya adalah pemborosan.
TIMTOWTDI, YMMV, IANAL, dll.
sumber
Menurut orang ini mungkin lebih cepat digunakan
rsync -z
, meskipun saya kira itu akan menjadi seefisien mengompresi setiap file terlebih dahulu sebelum mentransfer. Itu harus lebih cepat daripada mengompresi aliran tar, seperti yang disarankan oleh orang lain.Dari halaman manual:
sumber
Karena kedua scp file terkompresi dan rsync akan mengambil waktu transfer yang sangat mirip, "cara paling efisien untuk melakukan ini" akan menjadi kompresi on-the-fly daripada transfer kompres, transfer.
Selain "tahan luntur", pertimbangan lain meliputi:
rsync dapat dengan mudah dimulai kembali jika tidak semua file ditransfer.
rsync dapat digunakan untuk memelihara file di mesin remote.
tar lokal atau gzip membutuhkan ruang lokal.
Pertimbangan penggunaan port untuk mesin target dan firewall: 1) scp menggunakan port 22 (secara default) yang mungkin tidak dapat diterima. 2) port pengguna rsync 873 (secara default)
Saya tidak yakin mengapa radius mengharapkan poster asli TIDAK ingin file yang tidak di-zip disimpan.
sumber