rsync: mentransfer file dalam satu arah saja


21

Apakah mungkin menggunakan rsync untuk menyalin file hanya dalam satu arah?

Sebagai contoh, misalkan kita memiliki:

left/a.txt

right/a.txt

di mana file awalnya identik.

Jika ada yang memodifikasi right/a.txt, maka:

rsync -avv left/ right/

akan menyalin right/a.txtke left/a.txt.

Apakah mungkin untuk membatasi rsync hanya menyalin dari left/ke right/(yaitu mencegahnya menyalin dari right/ke left/)?

Jawaban:


33

Anda salah mengerti rsync. Perintah ini:

rsync -avv left/ right/ 

tidak akan menyinkronkan apa pun di kanan ke kiri. Ini akan, seperti kata @atbg, hanya disinkronkan dari kiri ke kanan. Rsync bukan syncer dua arah. Ini menyinkronkan dest dengan sumbernya.

Halaman manual untuk referensi: http://linux.die.net/man/1/rsync


Menariknya ketika mengoperasikan setidaknya rsync versi Mac untuk menyinkronkan direktori jarak jauh melalui ssh itu adalah dua arah - misalnyarsync -avzz -e "ssh -p 2222" /source/ /target/
geotheory

4

Seharusnya rsync [OPTION...] SRC... [DEST]begitu itu bekerja ke arah itu (kecuali Anda beralih dest dan src).

left/a.txtharus disalin ke right/a.txt:

$ echo 'left' > left/a.txt
$ echo 'right' > right/a.txt
$ cat left/a.txt && cat right/a.txt
left
right
$ rsync -avv left/ right/
sending incremental file list
delta-transmission disabled for local transfer or --whole-file
a.txt
total: matches=0  hash_hits=0  false_alarms=0 data=5

sent 95 bytes  received 34 bytes  258.00 bytes/sec
total size is 5  speedup is 0.04
$ cat left/a.txt && cat right/a.txt
left
left

Jika ada file tertentu yang tidak ingin Anda sertakan oleh rsync lihat --exclude=PATTERNdan --exclude-from=FILE.


2
Dan ingat, ketika ragu --dry-runopsi akan menampilkan daftar file yang akan ditransfer tetapi tidak benar-benar melakukan transfer. Saya menambahkan ini ke awal setiap rsynchanya sebagai tindakan pencegahan, bahkan jika saya yakin perintahnya sudah benar.
slillibri

1
Mengingat kebingungan tentang operasi rsync, mungkin perlu dicatat --updateopsi rsync , yang akan melewatkan (tidak menyinkronkan) file yang memiliki waktu lebih baru modifieddi sisi penerima.
Richard Michael
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.