Rsync hanya mengubah file

14

Apakah mungkin untuk rsyncmentransfer semua file dalam direktori yang telah berubah atau telah dibuat? Saya tidak perlu sesuatu yang canggih seperti pemeriksaan diff CRC; file dengan cap waktu yang berbeda dan / atau ukuran file dihitung sebagai perubahan.

Saya mendapatkan kesan dari halaman manual bahwa itu harus dimungkinkan, tetapi saya perlu sedikit panduan tentang apa yang harus dilewati oleh set parameter rsync.

contoh dari Tom
sumber

Jawaban:

19

Untuk hanya menyinkronkan dua direktori:

$ rsync /source/path/* /dest/path/

Atau jika Anda ingin melakukan seluruh pohon:

$ rsync -a /source/path/ /dest/path/

"-a" menentukan mode "arsip", di mana duplikat pohon sedekat mungkin.

Saya suka menambahkan bendera vdan Pdi sana sehingga saya dapat melihatnya bekerja:

$rsync -avP /source/path/ /dest/path/

"-v" mengaktifkan mode verbose, sehingga Anda dapat melihat apa yang dilakukannya (mencantumkan file saat disalin), dan "-P" memungkinkan kemajuan, sehingga Anda dapat melihat berapa lama waktu untuk menyalin setiap file (persentase disalin, sisa waktu, dll), dan memungkinkan Anda untuk melihat seberapa jauh salinan Anda.

Majenko
sumber
3
... dan mungkin menambahkan bendera z untuk menggunakan kompresi untuk transfer
Linker3000
4
... jika Anda mentransfer ke lokasi yang jauh
Majenko
14

Ini adalah cara rsynckerjanya secara default (setidaknya di Linux). Dari halaman manual :

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.

Rob H
sumber
Ah, saya bingung sendiri dengan salah membaca dokumentasi. Terima kasih :)
instanceof