it-swarm-id.com

Tip dan trik rsync favorit

Semakin saya menggunakan rsync semakin saya menyadari bahwa ini adalah pisau swiss untuk transfer file. Ada begitu banyak pilihan. Saya baru-baru menemukan bahwa Anda dapat pergi --remove-source-files dan itu akan menghapus file dari sumber ketika telah disalin, yang membuatnya sedikit lebih bergerak, daripada menyalin program. :)

Apa tips dan trik rsync kecil favorit Anda?

57
Rory

Coba gunakan rsync versi 3 jika Anda harus menyinkronkan banyak file! V3 membuat daftar file secara bertahap dan jauh lebih cepat dan menggunakan lebih sedikit memori daripada versi 2.

Tergantung pada platform Anda, ini dapat membuat perbedaan. Pada OSX versi 2.6.3 akan memakan waktu lebih dari satu jam atau macet saat mencoba membangun indeks 5 juta file sedangkan versi 3.0.2 yang saya kompilasi mulai menyalin segera.

19
robcast

Menggunakan --link-dest untuk membuat cadangan berbasis snapshot yang hemat-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 itu sulit -Tautan bukannya membuat salinan baru 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 run down oldish-tapi-masih-sangat bagus dari baik teknik 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 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* pilihan.

18
David Spillett

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 untuk mendeteksi pembaruan secara simultan, jadi Anda harus menambahkan logika ke skrip cron untuk menghindari tumpang tindih penulisan file besar.

14
Bob

Saya menggunakan opsi --existing ketika mencoba menyimpan sebagian kecil file dari satu direktori yang disinkronkan ke lokasi lain.

10
TCampbell

--rsh milikku.

Saya telah menggunakannya untuk mengubah sandi pada ssh menjadi sesuatu yang lebih cepat (--rsh="ssh -c arcfour") juga untuk mengatur rantai sshs (sarankan menggunakannya dengan ssh-agent) untuk menyinkronkan file antar host yang tidak dapat berbicara secara langsung. (rsync -av --rsh="ssh -TA [email protected] ssh -TA -l userB" /tmp/foobar/ hostB:/tmp/foobar/).

--time-limit

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 tidak sibuk), dan kemudian berhenti ketika tiba saatnya bagi orang untuk mulai menggunakan jaringan, pada siang hari (jam sibuk).

--stop-at=y-m-dTh:m

Opsi ini memungkinkan Anda menentukan kapan berhenti rsync.

Batch Mode

Mode batch dapat digunakan untuk menerapkan serangkaian pembaruan yang sama ke banyak sistem yang identik.

7
jftuga

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:

 ls -l /proc/$(pidof rsync)/fd/*

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:

/proc/22954/fd/4: broken symbolic link to `socket:[2387837]'
6
nealmcb

--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 menyertakan --times, yang akan menyalin seluruh waktu modifikasi file. Ini membuat rsync berikutnya yang berjalan (dengan asumsi Anda melakukannya berulang kali) banyak lebih cepat, karena rsync membandingkan waktu modifikasi dan melewatkan file jika tidak berubah. Anehnya (bagi saya setidaknya) opsi ini bukan default.

5
Andrew Ferrier

Punya saya --inplace. Bekerja dengan sangat baik ketika server untuk cadangan menjalankan ZFS atau btrfs dan Anda membuat snapshot asli.

4
Hubert Kario

Yang paling saya gunakan pasti --exclude-from yang memungkinkan Anda menentukan file yang berisi hal-hal yang akan dikecualikan.

Saya juga menemukan --chmod sangat berguna karena memungkinkan Anda memastikan bahwa izin berakhir dalam keadaan yang diinginkan bahkan jika sumber Anda kacau.

4
innaM

--backup-dir = date +%Y.%m.%d --delete Kami menghapus tetapi membuat salinan ... untuk berjaga-jaga

4
Konrad

Tentu saja, ada juga --delete yang menghapus barang dari target yang tidak dapat ditemukan di sumber.

3
innaM

cwrsync - Rsync untuk Windows http://www.itefix.no/i2/node/1065

Versi ini termasuk OpenSSH sehingga Anda dapat mengirim file melalui saluran aman.

2
jftuga
--partial 

Dalam hal terjadi gangguan

--bwlimit=100

Untuk membatasi bandwidth - bagus untuk menyalin file besar, direktori

2
rebelbass

Jika Anda memiliki rsync yang diatur sebagai daemon di server, Anda dapat menelusuri modul yang dibagikan seperti daftar direktori lainnya. Kemudian Anda bisa melihat jalur mana yang tersedia dan yang tidak.

1
sybreon

ketika saya menggunakan GlusterFs kami memiliki hambatan dengan file T dengan ukuran nol, untuk sinkronisasi antara crashed brick atau replika kita harus menggunakan --min-size=1 untuk tidak menyinkronkan file kosong dari server macet

1
vahid chakoshy