rsync: การถ่ายโอนไฟล์ในทิศทางเดียวเท่านั้น


21

เป็นไปได้หรือไม่ที่จะใช้ rsync เพื่อคัดลอกไฟล์ในทิศทางเดียวเท่านั้น?

ตัวอย่างเช่นสมมติว่าเรามี:

left/a.txt

right/a.txt

ตำแหน่งที่ไฟล์เหมือนกันเริ่มแรก

หากมีใครปรับเปลี่ยนright/a.txtแล้ว:

rsync -avv left/ right/

จะคัดลอกลงบนright/a.txtleft/a.txt

เป็นไปได้ไหมที่จะ จำกัด rsync เฉพาะการคัดลอกจากleft/ไปยังright/(เช่นป้องกันไม่ให้คัดลอกจากright/ไปยังleft/)

คำตอบ:


33

คุณเข้าใจผิด rsync คำสั่งนี้:

rsync -avv left/ right/ 

จะไม่ซิงค์ข้อมูลใด ๆ จากขวาไปซ้าย มันจะเป็น @atbg พูดว่าเพียงซิงค์จากซ้ายไปขวา Rsync ไม่ใช่ syncer สองทิศทาง มันซิงค์ปลายทางกับแหล่งที่มา

Man page สำหรับการอ้างอิง: http://linux.die.net/man/1/rsync


ที่น่าสนใจเมื่อใช้งานอย่างน้อยเวอร์ชัน rsync ของ Mac เพื่อซิงค์ไดเรกทอรีระยะไกลผ่าน ssh มันเป็นแบบสองทิศทาง - เช่นrsync -avzz -e "ssh -p 2222" /source/ /target/
geotheory

4

มันควรจะเป็นrsync [OPTION...] SRC... [DEST]เช่นนั้นมันจะทำงานในทิศทางนั้น (เว้นแต่คุณจะเปลี่ยน dest และ src)

left/a.txtควรคัดลอกไปที่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

หากมีไฟล์เฉพาะที่คุณไม่ต้องการโดยรวม rsync ดูที่และ--exclude=PATTERN--exclude-from=FILE


2
และจำไว้ว่าเมื่อมีข้อสงสัย--dry-runตัวเลือกจะแสดงรายการของไฟล์ที่จะถูกถ่ายโอน แต่ไม่ทำการถ่ายโอนจริง ฉันเพิ่มสิ่งนี้ลงในจุดเริ่มต้นของทุก ๆrsyncข้อควรระวังแม้ว่าฉันมั่นใจว่าคำสั่งนั้นถูกต้อง
slillibri

1
ด้วยความสับสนเกี่ยวกับการทำงานของ rsync มันอาจจะคุ้มค่าที่จะสังเกตว่า--updateตัวเลือกของ rsync นั้นจะข้ามไฟล์ (ไม่ซิงค์) ซึ่งมีmodifiedเวลาล่าสุดในฝั่งของการรับ
Richard Michael
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.