Semakin saya menggunakan rsync
semakin saya menyadari bahwa itu adalah pisau transfer file swiss tentara. Ada begitu banyak pilihan. Saya baru-baru ini menemukan bahwa Anda dapat pergi --remove-source-files
dan itu akan menghapus file dari sumber ketika sudah disalin, yang membuatnya sedikit lebih bergerak, daripada menyalin program. :)
Apa tips dan trik rsync kecil favorit Anda?
--delete-before
misalnya) perilaku "build list first" yang lama digunakan karena diperlukan agar opsi ini bekerja dengan benar - jadi jika Anda tidak melihat perilaku ini periksa apakah opsi lain yang Anda gunakan diketahui menghentikannya. Ini dapat berguna jika Anda menggunakan rsync secara interaktif pada pohon besar dan ingin memaksakan pemindaian awal sehingga output--progress
akurat (mis. Jumlah "objek untuk membandingkan" tidak akan pernah naik karena tidak ada objek baru yang akan ditemukan setelah pemindaian awal ).Menggunakan
--link-dest
untuk membuat cadangan berbasis snapshot yang efisien-ruang, di mana Anda tampaknya memiliki beberapa salinan lengkap dari data yang didukung (satu untuk setiap proses pencadangan), tetapi file yang tidak berubah di antara proses berjalan sulit dikaitkan alih-alih menciptakan ruang penyimpanan salinan baru.(sebenarnya, saya masih menggunakan metode
rysnc
-followed-by-cp -al
yang mencapai hal yang sama, lihat http://www.mikerubel.org/computers/rsync_snapshots/ untuk menjalankan yang lama tapi masih sangat bagus dari kedua teknik ini. dan masalah terkait)Salah satu kelemahan utama dari teknik ini adalah bahwa jika sebuah file rusak karena kesalahan disk itu sama korup dalam semua snapshot yang terhubung ke file itu, tapi saya punya backup offline juga yang akan melindungi terhadap hal ini sampai batas yang layak. Hal lain yang perlu diperhatikan adalah filesystem Anda memiliki cukup inode atau Anda akan kehabisan mereka sebelum Anda benar-benar kehabisan ruang disk (walaupun saya tidak pernah memiliki masalah dengan ext2 / 3 default).
Juga, jangan pernah lupakan sangat sangat berguna
--dry-run
untuk paranoia yang sedikit sehat, terutama ketika Anda menggunakan--delete*
opsi.sumber
Jika Anda perlu memperbarui situs web dengan beberapa file besar melalui tautan lambat, Anda dapat mentransfer file kecil ini dengan cara:
rsync -a --max-size = 100K / var / www / di sana: / var / www /
kemudian lakukan ini untuk file besar:
rsync -a --min-size = 100K --bwlimit = 100 / var / www / ada: / var / www /
rsync memiliki banyak opsi yang berguna untuk situs web. Sayangnya, ia tidak memiliki cara built-in untuk mendeteksi pembaruan secara simultan, jadi Anda harus menambahkan logika ke skrip cron untuk menghindari tumpang tindih penulisan file besar.
sumber
Saya menggunakan opsi --existing ketika mencoba menyimpan sebagian kecil file dari satu direktori yang disinkronkan ke lokasi lain.
sumber
--rsh
milikku.Saya telah menggunakannya untuk mengubah cipher pada ssh menjadi sesuatu yang lebih cepat (
--rsh="ssh -c arcfour"
) juga untuk mengatur rantaissh
s (merekomendasikan menggunakannya denganssh-agent
) untuk menyinkronkan file antara host yang tidak dapat berbicara secara langsung. (rsync -av --rsh="ssh -TA userA@hostA ssh -TA -l userB" /tmp/foobar/ hostB:/tmp/foobar/
).sumber
Ketika opsi ini digunakan rsync akan berhenti setelah T menit dan keluar. Saya pikir opsi ini berguna ketika melakukan rsyncing sejumlah besar data pada malam hari (jam non-sibuk), dan kemudian berhenti ketika tiba saatnya bagi orang untuk mulai menggunakan jaringan, pada siang hari (jam sibuk).
Opsi ini memungkinkan Anda menentukan kapan berhenti rsync.
Mode batch dapat digunakan untuk menerapkan serangkaian pembaruan yang sama ke banyak sistem yang identik.
sumber
at
untuk membunuh prosesnya?Jika Anda bertanya-tanya seberapa jauh rsync yang berjalan lambat, dan tidak menggunakan -v untuk mendaftar file saat ditransfer, Anda dapat mengetahui file mana yang telah dibuka:
pada sistem yang memiliki / proc
Misalnya rsync digantung untuk saya sekarang, meskipun sistem jarak jauh tampaknya memiliki banyak ruang tersisa. Trik ini membantu saya menemukan file besar yang tidak terduga yang saya tidak ingat, yang tidak muat di ujung lainnya.
Itu juga memberi tahu saya informasi yang sedikit lebih menarik - ujung yang lain tampaknya menyerah, karena ada juga tautan soket yang rusak:
sumber
--archive
adalah pilihan standar (meskipun bukan default) untuk pekerjaan seperti cadangan, yang memastikan sebagian besar metadata dari file sumber (izin, kepemilikan, dll.) disalin ke seberang.Namun, jika Anda tidak ingin menggunakannya, seringkali Anda masih ingin memasukkan
--times
, yang akan menyalin seluruh waktu modifikasi file. Ini membuat rsync berikutnya yang berjalan (dengan asumsi Anda melakukannya berulang kali) jauh lebih cepat, karena rsync membandingkan waktu modifikasi dan melewatkan file jika tidak berubah. Anehnya (bagi saya setidaknya) opsi ini bukan default.sumber
Yang paling sering saya gunakan adalah
--exclude-from
yang memungkinkan Anda menentukan file yang berisi hal-hal yang harus dikecualikan.Saya juga menemukan
--chmod
sangat berguna karena memungkinkan Anda memastikan bahwa izin berakhir dalam keadaan yang diinginkan bahkan jika sumber Anda kacau.sumber
--backup-dir =
date +%Y.%m.%d
--delete Kami menghapus tetapi membuat salinan ... untuk berjaga-jagasumber
Milik saya
--inplace
. Bekerja dengan sangat baik ketika server untuk cadangan menjalankan ZFS atau btrfs dan Anda membuat snapshot asli.sumber
Tentu saja, ada juga
--delete
yang menghapus barang dari target yang tidak dapat ditemukan di sumbernya.sumber
cwrsync - Rsync untuk Windows http://www.itefix.no/i2/node/10650
Versi ini termasuk OpenSSH sehingga Anda dapat mengirim file melalui saluran aman.
sumber
Dalam hal terjadi gangguan
Untuk membatasi bandwidth - bagus untuk menyalin file besar, direktori
sumber
bwlimit
? bit per detik, byte per detik?Jika Anda memiliki rsync yang diatur sebagai daemon di server, Anda dapat menelusuri modul bersama seperti daftar direktori lainnya. Kemudian Anda bisa melihat jalur mana yang tersedia dan yang tidak.
sumber
ketika saya menggunakan GlusterFs kami mengalami hambatan dengan file T dengan ukuran nol, untuk sinkronisasi antara crashed brick atau replika yang harus kami gunakan
--min-size=1
untuk tidak menyinkronkan file kosong dari server crash.sumber