Perintah rsync dasar untuk salinan bit-identik

15

Sejauh yang saya buka, perintah berikut:

sudo rsync --delete -azvr /home/oshiro/Desktop/source/ /home/oshiro/Desktop/destination

Apakah ini yang saya perlukan untuk membuat sinkronisasi sederhana file dari satu lokasi ke lokasi lain? Atau apakah perintah di atas melakukan sesuatu yang lebih di latar belakang yang saya tidak tahu? Sebagai contoh, apakah itu membuat semacam versi, di mana saya dapat menentukan waktu lalu untuk mendapatkan file bagaimana di mana berlalu?

Itu fitur yang saya tidak ingin aktifkan pada tahap ini. Yang saya inginkan adalah salinan file yang identik dari satu lokasi ke lokasi lain. Dapatkah saya menghilangkan salah satu dari parameter tersebut atau apakah saya perlu menambahkan parameter lebih lanjut untuk membuat salinannya sedikit identik tanpa versi. Pada dasarnya, saya tidak ingin membuat cadangan bagaimana sistem cadangan mesin waktu mac membuat cadangan.

oshirowanen
sumber

Jawaban:

16

Rsync tidak melakukan versi apa pun atau menyimpan riwayat apa pun kecuali diinstruksikan dengan opsi seperti --backup. Ada alat cadangan yang menggunakan rsync, tetapi rsync sendiri bukan alat cadangan, lebih dari empat roda membuat mobil. Rsync hanya menangani sinkronisasi.

Mengenai opsi yang Anda gunakan atau mungkin ingin gunakan:

  • -aberarti “salin hampir semuanya” (salin direktori secara rekursif, salin tautan simbolik seperti itu, pertahankan semua metadata, dll.). Gunakan opsi ini kecuali jika Anda melakukan sesuatu yang tidak biasa.
  • Selain itu -a, Anda mungkin ingin menggunakan -Huntuk mempertahankan tautan keras, -Auntuk melestarikan ACL ( -ahanya mempertahankan izin unix tradisional), atau -Xuntuk mempertahankan atribut yang diperluas.
  • -rsudah termasuk dalam -a.
  • -v berarti verbose.
  • -z tidak berguna untuk salinan lokal.
  • --delete menghapus file di tujuan yang tidak ada di sumbernya.

Jadi ini adalah perintah dasar untuk membuat tujuan identik dengan sumbernya (tidak ada tautan keras, ACL, dan atribut tambahan):

rsync -a --delete SOURCE/ DESTINATION/
Gilles 'SANGAT berhenti menjadi jahat'
sumber
5

Saya biasanya menggunakan perintah dari jawaban ini . Keuntungannya adalah ia juga mempertahankan atribut yang diperluas dan ACL.

rsync -avxHAX --progress / /new-disk/

Opsinya adalah:

-a  : all files, with permissions, etc..
-v  : verbose, mention files
-x  : stay on one file system
-H  : preserve hard links (not included with -a)
-A  : preserve ACLs/permissions (not included with -a)
-X  : preserve extended attributes (not included with -a)
Benedikt Köppel
sumber
3

Perintah ini harus menjadi semua yang Anda butuhkan. rsyncsecara default menggunakan apa yang disebut algoritma pemeriksaan cepat:

Rsync menemukan file yang perlu ditransfer menggunakan algoritma "pemeriksaan cepat" (secara default) yang mencari file yang telah berubah ukurannya atau dalam waktu yang terakhir dimodifikasi. Setiap perubahan pada atribut yang disimpan lainnya (seperti yang diminta oleh opsi) dilakukan pada file tujuan secara langsung ketika pemeriksaan cepat menunjukkan bahwa data file tidak perlu diperbarui.

Ini sering baik di sebagian besar aplikasi. Ini lebih cepat daripada metode alternatif yang menghitung checksum untuk setiap file. Metode kedua ini akan menjamin perbedaan pelacakan yang mungkin tergelincir oleh metode pertama.

Dalam kasus apa rsyncpun tidak menyimpan banyak salinan file, itu adalah mesin fotokopi / sinkronisasi file kotor yang menjaga satu direktori disinkronkan dengan yang lain sesuai dengan opsi yang Anda berikan.

Metode checksum

Jika Anda penasaran inilah peralihan yang saya gunakan rsyncuntuk melakukan jenis sinkronisasi ini:

$ rsync -avvz -O --stats --checksum --human-readable --acls \
    --itemize-changes --progress \
    --out-format='[%t] [%i] (Last Modified: %M) (bytes: %-10l) %-100n' \
    "SRC" "DEST"

Ini menghasilkan jenis output ini:

2014/02/20 09:51:49 INFO sending incremental file list 
2014/02/20 09:51:49 INFO delta-transmission disabled for local transfer or --whole-file 
2014/02/20 09:51:49 INFO [2014/02/20 09:51:48] [.d..t......] (Last Modified: 2014/02/19-15:51:34) (bytes: 0         ) ./
2014/02/20 09:51:49 INFO [2014/02/20 09:51:48] [>f+++++++++] (Last Modified: 2014/02/19-15:51:33) (bytes: 27981892  ) somefile.zip
      27.98M 100%   82.27MB/s    0:00:00 (xfer#1, to-check=0/2) 0
2014/02/20 09:51:49 INFO total: matches=0  hash_hits=0  false_alarms=0 data=27981892 
2014/02/20 09:51:49 INFO  
2014/02/20 09:51:49 INFO rsync[25205] (sender) heap statistics: 
2014/02/20 09:51:49 INFO   arena:        1060864   (bytes from sbrk) 
2014/02/20 09:51:49 INFO   ordblks:            1   (chunks not in use) 
2014/02/20 09:51:49 INFO   smblks:             4 
2014/02/20 09:51:49 INFO   hblks:              1   (chunks from mmap) 
2014/02/20 09:51:49 INFO   hblkhd:        135168   (bytes from mmap) 
2014/02/20 09:51:49 INFO   allmem:       1196032   (bytes from sbrk + mmap) 
2014/02/20 09:51:49 INFO   usmblks:            0 
2014/02/20 09:51:49 INFO   fsmblks:          304 
2014/02/20 09:51:49 INFO   uordblks:      667008   (bytes used) 
2014/02/20 09:51:49 INFO   fordblks:      393856   (bytes free) 
2014/02/20 09:51:49 INFO   keepcost:      393552   (bytes in releasable chunk) 
2014/02/20 09:51:49 INFO  
2014/02/20 09:51:49 INFO rsync[25207] (server receiver) heap statistics: 
2014/02/20 09:51:49 INFO   arena:         286720   (bytes from sbrk) 
2014/02/20 09:51:49 INFO   ordblks:            2   (chunks not in use) 
2014/02/20 09:51:49 INFO   smblks:             3 
2014/02/20 09:51:49 INFO   hblks:              3   (chunks from mmap) 
2014/02/20 09:51:49 INFO   hblkhd:        667648   (bytes from mmap) 
2014/02/20 09:51:49 INFO   allmem:        954368   (bytes from sbrk + mmap) 
2014/02/20 09:51:49 INFO   usmblks:            0 
2014/02/20 09:51:49 INFO   fsmblks:          224 
2014/02/20 09:51:49 INFO   uordblks:      174480   (bytes used) 
2014/02/20 09:51:49 INFO   fordblks:      112240   (bytes free) 
2014/02/20 09:51:49 INFO   keepcost:      102352   (bytes in releasable chunk) 
2014/02/20 09:51:49 INFO  
2014/02/20 09:51:49 INFO rsync[25206] (server generator) heap statistics: 
2014/02/20 09:51:49 INFO   arena:         135168   (bytes from sbrk) 
2014/02/20 09:51:49 INFO   ordblks:            2   (chunks not in use) 
2014/02/20 09:51:49 INFO   smblks:             6 
2014/02/20 09:51:49 INFO   hblks:              2   (chunks from mmap) 
2014/02/20 09:51:49 INFO   hblkhd:        401408   (bytes from mmap) 
2014/02/20 09:51:49 INFO   allmem:        536576   (bytes from sbrk + mmap) 
2014/02/20 09:51:49 INFO   usmblks:            0 
2014/02/20 09:51:49 INFO   fsmblks:          400 
2014/02/20 09:51:49 INFO   uordblks:       82960   (bytes used) 
2014/02/20 09:51:49 INFO   fordblks:       52208   (bytes free) 
2014/02/20 09:51:49 INFO   keepcost:       32816   (bytes in releasable chunk) 
2014/02/20 09:51:49 INFO  
2014/02/20 09:51:49 INFO Number of files: 2 
2014/02/20 09:51:49 INFO Number of files transferred: 1 
2014/02/20 09:51:49 INFO Total file size: 27.98M bytes 
2014/02/20 09:51:49 INFO Total transferred file size: 27.98M bytes 
2014/02/20 09:51:49 INFO Literal data: 27.98M bytes 
2014/02/20 09:51:49 INFO Matched data: 0 bytes 
2014/02/20 09:51:49 INFO File list size: 93 
2014/02/20 09:51:49 INFO File list generation time: 1.277 seconds 
2014/02/20 09:51:49 INFO File list transfer time: 0.000 seconds 
2014/02/20 09:51:49 INFO Total bytes sent: 27.99M 
2014/02/20 09:51:49 INFO Total bytes received: 34 
2014/02/20 09:51:49 INFO  
2014/02/20 09:51:49 INFO sent 27.99M bytes  received 34 bytes  11.20M bytes/sec 
2014/02/20 09:51:49 INFO total size is 27.98M  speedup is 1.00 
slm
sumber