Bagaimana RSYNC melakukan Backup tambahan

14

Bagaimana cara rsyncmengetahui file mana yang diubah dan mana yang tidak? Apakah ia mencatat datanya di mana saja dalam file?

Karena saya ingin melakukan backup inkremental, tetapi pertama-tama itu akan mentransfer semua file.

Jadi pertanyaan utama saya adalah: apakah saya mengunggah file awal melalui FTP tetapi tidak oleh rsync. Akan rsynctetap melompati file-file yang ada atau akan mengunggah semuanya pada proses pertama.

umläute
sumber

Jawaban:

12

Rsync memiliki sejumlah flag yang mengontrol apa yang akan dilihat dan apa yang akan disalin ke tujuan. Paling sering bendera "-a" digunakan yang merupakan bendera "Arsip", ini mungkin yang Anda inginkan. jalankan rsync dengan flag "-av" dan jalankan rsync pertama kali terhadap data yang ingin Anda buat cadangannya. Saat dijalankan berikutnya akan memblokir checksum file, dan hanya menyalin bagian-bagian yang telah dimodifikasi pada file yang ada, menyalin file baru, dan menghapus file yang sudah tidak ada lagi. Periksa bagian "-a" pada:

http://linux.die.net/man/1/rsync

Proses pertama akan menjadi BandWidth intensif, proses berikut kemungkinan besar akan menjadi prosesor intensif tetapi menggunakan sedikit Bandwidth dibandingkan dengan proses awal. Kecuali Anda memiliki banyak churn atas set data Anda.

Rsync tidak peduli bagaimana Anda mendapatkan file di sumbernya, atau direktori tujuan, itu hanya akan menyalin perubahan di antara keduanya, kecuali Anda menambahkan tanda untuk melakukan sesuatu yang berbeda.

Jika Anda ingin mencatat apa yang diubah, Anda dapat menggunakan opsi "--log-file". Semuanya seperti ini terdengar seperti apa yang Anda inginkan:

rsync -av --log-file=/var/log/rsync.log -e "ssh -l backup-user" backup-user@source-machine::module /nas01/backups
Ali Chehab
sumber
9

rsync tidak melakukan 'incremental', ini lebih seperti 'diferensial'. itu tidak mentransfer perubahan (yang mengasumsikan pengetahuan tentang proses sebelumnya), ia mentransfer perbedaan (dengan membandingkan sumber dengan file target)

penyederhanaan proses:

  • pertama-tama periksa ukuran file, tanggal pembuatan / modifikasi, bendera ... jika semuanya identik, lewati file.
  • jika tidak ada file dengan nama itu pada target, cukup salin seluruh file.
  • jika ada file pada target, itu menghitung checksum untuk setiap 2KB file dan transfer ke pengirim.
  • pengirim membandingkan konten file asal dan membandingkannya dengan target, dan mentransfer data yang belum ada di sana, bersama dengan referensi ke data yang cocok. dengan itu, target dapat merekonstruksi seluruh file menggunakan potongan target lama dan blok baru.
Javier
sumber
5

rsync tidak mencatat data apa pun, ia memeriksa stempel waktu modifikasi file dan kemudian konten. jika Anda mengunggah dengan ftp terlebih dahulu, itu akan baik-baik saja - rsync tidak akan mengirim ulang semua data tetapi mungkin akan memeriksa semua konten dan memperbaiki cap waktu. tetapi tidak akan ada transfer besar lagi.

pQd
sumber
5

Mungkin saya menjadi ahli tetapi cadangan tambahan berarti Anda memiliki cadangan penuh terlebih dahulu. Kemudian Anda memiliki cadangan file yang diubah sejak cadangan itu. Kemudian Anda memiliki cadangan lain dari cadangan yang diubah sejak yang sebelumnya, dll. Jadi, Anda memerlukan cadangan lengkap, dan semua cadangan tambahan sejak itu.

Jadi, hanya menggunakan mode arsip bukan cadangan tambahan . Saya pikir perbedaannya penting karena itu berarti Anda tidak dapat kembali pada waktunya untuk mendapatkan file sebelum mereka berubah .

Jika Anda ingin melakukan backup inkremental yang benar, Anda menggunakan opsi seperti --backup-dir. Ada contoh di sini .

Kyle Brandt
sumber
1
+1 untuk perbedaan antara backup inkremental dan mirroring (yang dilakukan secara default oleh rsync).
sleske
Ah iya! Mirroring adalah kata yang saya pegang, panggilan yang bagus :-)
Kyle Brandt
0

Jika pertanyaan sebenarnya adalah "Saya ingin melakukan pencadangan tambahan melalui rsync", ada beberapa opsi yang tersedia. Saya menggunakan Dirvish:

http://www.dirvish.org/

Memulihkannya mudah karena memberi Anda snapshot: menggunakan tautan keras untuk memberi Anda snapshot lengkap sambil menghemat ruang tempat file identik. Secara internal, ia menggunakan opsi --link-dest rsync:

--link-dest=DIR         hardlink to files in DIR when unchanged

Karena menggunakan rsync, ia juga menghemat bandwidth jaringan (dan karenanya waktu) di mana perubahannya sangat kecil. Ini juga berfungsi jika Anda tar dan menyelinap gambar dirvish yang dibuat secara lokal terlebih dahulu, jika Anda memiliki banyak file dan tautan lambat.

Alphax
sumber