Solusi 1:
Coba gunakan rsync versi 3 jika Anda harus menyinkronkan banyak file! V3 membangun daftar filenya secara bertahap dan jauh lebih cepat serta menggunakan lebih sedikit memori daripada versi 2.
Bergantung pada platform Anda, ini bisa membuat perbedaan yang cukup besar. Pada OSX versi 2.6.3 akan memakan waktu lebih dari satu jam atau macet saat mencoba membuat indeks 5 juta file sementara versi 3.0.2 yang saya kompilasi langsung mulai menyalin.
Solusi 2:
Menggunakan --link-dest
untuk membuat pencadangan berbasis snapshot yang hemat ruang, di mana Anda tampaknya memiliki banyak salinan lengkap dari data cadangan (satu untuk setiap pencadangan yang dijalankan) tetapi file yang tidak berubah di antara proses yang ditautkan dengan keras alih-alih membuat salinan baru yang menghemat ruang.
(sebenarnya saya masih menggunakan rysnc
-diikuti-oleh-cp -al
metode yang mencapai hal yang sama, lihat http://www.mikerubel.org/computers/rsync_snapshots/ untuk mengetahui teknik lama tapi masih sangat bagus dari kedua teknik dan masalah terkait)
Satu kelemahan utama dari teknik ini adalah bahwa jika file rusak karena kesalahan disk, itu sama rusaknya di semua snapshot yang tertaut ke file itu, tetapi saya juga memiliki cadangan offline yang akan melindungi dari hal ini sampai batas yang layak. Hal lain yang harus diwaspadai adalah sistem file Anda memiliki inode yang cukup atau Anda akan kehabisan inode sebelum Anda benar-benar kehabisan ruang disk (walaupun saya tidak pernah memiliki masalah dengan default ext2/3).
Juga, jangan pernah melupakan --dry-run
yang sangat berguna untuk sedikit paranoia sehat, terutama saat Anda menggunakan --delete*
opsi.
Solusi 3:
Jika Anda perlu memperbarui situs web dengan beberapa file besar melalui tautan yang lambat, Anda dapat mentransfer file kecil dengan cara ini:
rsync -a --max-size=100K /var/www/ di sana:/var/www/
lalu lakukan ini untuk file besar:
rsync -a --min-size=100K --bwlimit=100 /var/www/ di sana:/var/www/
rsync memiliki banyak opsi yang berguna untuk situs web. Sayangnya, ini tidak memiliki cara bawaan untuk mendeteksi pembaruan secara bersamaan, jadi Anda harus menambahkan logika ke skrip cron untuk menghindari penulisan file besar yang tumpang tindih.
Solusi 4:
Saya menggunakan opsi --existing saat mencoba menyinkronkan sebagian kecil file dari satu direktori ke lokasi lain.
Solusi 5:
--time-limit
Ketika opsi ini digunakan, rsync akan berhenti setelah T menit dan keluar. Menurut saya opsi ini berguna saat menyinkronkan sejumlah besar data pada malam hari (jam non-sibuk), dan kemudian berhenti saat orang mulai menggunakan jaringan, pada siang hari (jam sibuk).
--stop-at=y-m-dTh:m
Opsi ini memungkinkan Anda menentukan kapan waktu untuk menghentikan rsync.
Batch Mode
Mode batch dapat digunakan untuk menerapkan kumpulan pembaruan yang sama ke banyak sistem yang identik.