คำถามติดแท็ก rsync

rsync เป็นเครื่องมือที่มีประสิทธิภาพในการคัดลอกลำดับชั้นไดเรกทอรีภายในหรือระยะไกลด้วยตัวกรองที่มีประสิทธิภาพในการตัดสินใจสิ่งที่ได้รับการคัดลอก

3
วิธี rsync หลาย ๆ โฟลเดอร์ต้นทาง
ฉันต้องการ rsync หลายแหล่งและฉันสงสัยว่าวิธีที่ดีที่สุดในการบรรลุเป้าหมายนั้น เช่น /etc/fstab /home/user/download ฉันคิดถึงวิธีแก้ปัญหา 3 ข้อ: โซลูชันที่ 1 โทรหลายสายไปยัง rsync rsync -a /etc/fstab bkp rsync -a /home/user/download bkp คอนดิชั่นยากขึ้นที่จะมีสถิติ โซลูชันที่ 2 สร้างtobackupโฟลเดอร์ที่มี symlink และใช้-Lตัวเลือก sync -aL /home/user/tobackup bkp คอนดิชั่น: เนื้อหาที่จะสำรองข้อมูลจะต้องไม่มี symlink โซลูชัน 3 ย้ายไฟล์ไปที่การสำรองข้อมูลและสร้าง symlink ในตำแหน่งเดิม rsync -a /home/user/tobackup bkp คอนดิชั่น: การตั้งค่าด้วยตนเองบางอย่าง คุณแนะนำแบบไหน มีวิธีที่ดีกว่า ?
34 rsync 

3
ข้อผิดพลาด Rsync 23: ฉันสามารถบอกได้ว่าไฟล์ใดไม่ถูกถ่ายโอน?
ฉันวิ่งsudo rsync -va --progressจากรากของไดรฟ์ภายนอกหนึ่งไปยังโฟลเดอร์หนึ่งในไดรฟ์ภายนอกอื่น เหตุผลก็คือไดรฟ์ต้นฉบับมีข้อผิดพลาด NTFS และฉันไม่สามารถเข้าถึงพีซี Windows เพื่อซ่อมแซม NTFS 10 ชั่วโมงต่อมาก็กล่าวว่า: sent 608725204596 bytes received 19365712 bytes 15902210.53 bytes/sec total size is 608586212274 speedup is 1.00 rsync error: some files could not be transferred (code 23) at /SourceCache/rsync/rsync-42/rsync/main.c(992) [sender=2.6.9] ฉันบันทึกเอาต์พุตของเทอร์มินัลทั้งหมด ในตอนแรกมีInput/output error (5)ไฟล์สองสามร้อยสำหรับไฟล์ที่ฉันไม่ต้องการรวมประมาณ 2GB OSX Finder "การใช้ดิสก์" บอกฉันว่าแหล่งที่มาคือ 617 …
32 rsync 

1
จะเกิดอะไรขึ้นเมื่อคุณซิงค์โดยไม่มีปลายทาง
เพื่อทำให้เรื่องสั้นฉันได้ทำ rsync: rsync -avP user@exampleserver.com:/tmp/ และฉันลืมใส่ในไดเรกทอรีแหล่งที่มาของฉัน ... ฉันตั้งใจจะวิ่งจริงๆ: rsync -avP /tmp/ user@exampleserver.com:/tmp/ มันพิมพ์ไฟล์จำนวนมาก แต่ฉันไม่รู้ว่ามันจะคัดลอกไปที่ไหนเพราะฉันไม่ได้ระบุปลายทาง ไม่มีใครรู้ว่าเกิดอะไรขึ้น? ฉันทำlsในโฟลเดอร์ปัจจุบัน แต่ฉันไม่พบอะไรเลย
31 linux  rsync  file-copy 

2
การขอ rsync เพื่อลบไฟล์ทางด้านการรับที่ไม่มีอยู่ทางด้านการส่งโดยมีข้อยกเว้นด้านการรับ
ฉันได้อ่านหัวข้อเหล่านี้: rsync --delete --files-from = list / dest / ไม่ลบไฟล์ที่ไม่ต้องการ ลบไฟล์ที่ไม่เกี่ยวข้องจาก dest dir ผ่าน rsync หรือไม่ แต่เท่าที่ฉันสามารถบอกได้ (บางทีฉันอาจพลาดบางสิ่ง) พวกเขาไม่ได้ครอบคลุมคำถามต่อไปนี้: คุณrsyncจะขอให้คัดลอกไฟล์และลบไฟล์ในด้านการรับที่ไม่มีอยู่ในด้านการส่งโดยมีข้อยกเว้นได้อย่างไร? (เช่นอย่าลบที่เก็บ Mercurial .hgที่ด้านการรับแม้ว่าจะไม่มีที่เก็บในฝั่งการส่ง) ความเป็นไปได้หนึ่งอย่าง? การยืมจากคำตอบของ @Richard Holloway ด้านล่าง พูดว่าฉันมีบรรทัดต่อไปนี้: rsync -av --exclude=dont_delete_me --delete /sending/path /receiving/path เท่าที่ผมเข้าใจบรรทัดนี้จะทำให้ทุกอย่างลบบนเส้นทางที่ได้รับที่ไม่ได้อยู่บนเส้นทางการส่งยกเว้นสิ่งเหล่านั้นจับคู่โดยrsync dont_delete_meคำถามของฉันตอนนี้คือ: rsync จะเก็บไฟล์ในด้านการรับที่ถูกจับคู่dont_delete_me แม้ว่าจะไม่มีอะไรในด้านการส่งdont_delete_meหรือไม่
29 rsync 


4
วิธีการคัดลอกโครงสร้างไดเรกทอรีโดยไม่ต้องลบ symlink
ฉันต้อง "ติดตั้ง" กลุ่มของไฟล์ไปยังไดเรกทอรีอื่นซึ่งทำให้โครงสร้างไดเรกทอรีของไฟล์ต้นฉบับไม่เปลี่ยนแปลง ตัวอย่างเช่นถ้าผมได้./foo/bar/baz.txtไปฉันต้องการผลที่ได้จะเป็น/var/www/localhost/webroot/ มีความสามารถนี้แต่เมื่อฉันทำสิ่งนี้ฉันค้นพบว่ามันไม่เป็นมิตรกับ symlinks:/var/www/localhost/webroot/foo/bar/baz.txtrsync--relative $ ls -ald /var/www/localhost/webroot/ | grep ^l lrwxrwxrwx 1 www-data www-data 15 2014-01-03 13:45 media -> ../static/media lrwxrwxrwx 1 root root 13 2014-02-24 13:47 var -> ../static/var $ rsync -qrR . /var/www/localhost/webroot/ $ ls -ald /var/www/localhost/webroot/ | grep var drwxr-xr-x 3 root root 4096 …
27 rsync  symlink  mirror 

5
ซิงค์ไดเรกทอรีทั้งสองทิศทางด้วย rsync
ฉันรู้เกี่ยวกับ rsyn และฉันใช้ rsync เพื่อซิงค์ระหว่าง mac และเซิร์ฟเวอร์ linux ดังนี้ rsync -r -t -v MAC LINUX rsync -r -t -v LINUX MAC ฉันคาดว่าจะเรียกใช้คำสั่งแรกเพื่อซิงค์ แต่ฉันต้องการคำสั่งที่สองเช่นกันเมื่อมีการเปลี่ยนแปลงใน LINUX ฉันพลาดอะไรไปรึเปล่า? rsync มีตัวเลือกในการซิงค์ระหว่างสองไดเรกทอรีหรือไม่

7
tar + rsync + untar ความเร็วจะได้รับประโยชน์มากกว่า rsync หรือไม่
ฉันมักจะพบว่าตัวเองกำลังส่งโฟลเดอร์ที่มี 10K - 100K ของไฟล์ไปยังเครื่องระยะไกล (ภายในเครือข่ายเดียวกันในมหาวิทยาลัย) ฉันแค่สงสัยว่ามีเหตุผลที่จะเชื่อ tar + rsync + untar หรือเพียงแค่ tar (from src to dest) + untar อาจเร็วกว่าในทางปฏิบัติมากกว่า rsync เมื่อถ่ายโอนไฟล์ที่เป็นครั้งแรก ฉันสนใจคำตอบที่กล่าวถึงข้างต้นในสองสถานการณ์: ใช้การบีบอัดและไม่ใช้ ปรับปรุง ฉันเพิ่งเรียกใช้การทดลองบางอย่างซึ่งย้ายไฟล์ขนาดเล็ก 10,000 ไฟล์ (ขนาดโดยรวม = 50 MB) และtar+rsync+untarเร็วกว่าการรันrsyncโดยตรงอย่างสม่ำเสมอ(ทั้งที่ไม่มีการบีบอัด)
25 rsync  tar 

1
ค้นหาและ rsync?
ฉันต้องการที่จะสามารถค้นหาไฟล์ในช่วง 14 วันและนานกว่า 10k และกว่า rsync ที่พบไฟล์ไปยังปลายทาง มีวิธีรวมคำสั่งทั้งสองนี้หรือไม่? find ./ -mtime +14 -size +10k rsync --remove-sent-files -avz /src /dest
24 bash  shell  find  pipe  rsync 

1
ทำไม rsync พยายามที่จะคัดลอกไฟล์ที่ทันสมัยอยู่แล้ว?
ฉันมีไฟล์เดียวกันสองไฟล์บนเครื่องโลคัลและไฟล์รีโมต ขนาดของมันเท่ากันและไฟล์บนเครื่องโลคัลใหม่กว่าบนรีโมต - แต่ rsync ยังคงพยายามที่จะคัดลอกไฟล์ ฉันขอ rsync ดังนี้ rsync -nv -e "ssh -p 2222" user@host:/data/file.fif data/file.fif (ถ้าฉันไม่ได้ใช้-nตัวเลือกมันจะเริ่มต้นการดำเนินการคัดลอก) เอกสาร Rsync ระบุอย่างชัดเจนว่าไม่ควรเกิดขึ้น: Rsync finds files that need to be transferred using a "quick check" algorithm (by default) that looks for files that have changed in size or in last-modified time. ผลลัพธ์จากstat: …
24 rsync 

5
คุณจะเปรียบเทียบสองโฟลเดอร์และคัดลอกความแตกต่างไปยังโฟลเดอร์ที่สามได้อย่างไร
คุณมีสามโฟลเดอร์: โฟลเดอร์ปัจจุบันซึ่งมีไฟล์ปัจจุบันของคุณ โฟลเดอร์เก่าซึ่งมีไฟล์เดียวกันเวอร์ชันเก่ากว่า ความแตกต่างของโฟลเดอร์ซึ่งเป็นเพียงโฟลเดอร์ว่าง คุณเปรียบเทียบเก่ากับปัจจุบันและคัดลอกไฟล์ที่แตกต่างกัน (หรือใหม่ทั้งหมด) ในปัจจุบันเพื่อความแตกต่างได้อย่างไร ฉันได้ค้นหาไปรอบ ๆ และดูเหมือนจะเป็นเรื่องง่าย ๆ ที่จะแก้ไขปัญหา แต่ฉันไม่สามารถทำให้มันทำงานได้ในตัวอย่างเฉพาะของฉัน แหล่งที่มาส่วนใหญ่แนะนำให้ใช้rsyncดังนั้นฉันจึงลงเอยด้วยคำสั่งต่อไปนี้: rsync -ac --compare-dest=../old/ new/ difference/ สิ่งนี้จะ แต่เป็นสำเนาไฟล์ทั้งหมดจากใหม่จะแตกต่างกันแม้กระทั่งผู้ซึ่งเป็นเช่นเดียวกับในเก่า ในกรณีที่ช่วยได้ (อาจเป็นคำสั่งที่ดีและความผิดอยู่ที่อื่น) นี่คือวิธีที่ฉันทดสอบนี้: ฉันทำทั้งสามโฟลเดอร์ ฉันทำไฟล์ข้อความหลายที่มีเนื้อหาที่แตกต่างกันในเก่า ผมคัดลอกไฟล์จากเก่าไปใหม่ ฉันเปลี่ยนเนื้อหาของไฟล์บางไฟล์เป็นไฟล์ใหม่และเพิ่มไฟล์เพิ่มเติมอีกสองสามไฟล์ ฉันวิ่งคำสั่งดังกล่าวและการตรวจสอบผลในความแตกต่าง ฉันกำลังมองหาวิธีการแก้ปัญหาสำหรับสองสามวันที่ผ่านมาและฉันขอขอบคุณความช่วยเหลือ ไม่จำเป็นต้องใช้ rsync แต่ฉันอยากรู้ว่าฉันทำอะไรผิดถ้าเป็นไปได้
23 files  rsync  diff  file-copy 

1
ใช้ rsync ซ้ำ - เอาต์พุตที่รันช้าเพื่อเพิ่มความเร็วในการถ่ายโอนจริงในภายหลัง
ฉันมักจะทำก่อนที่จะทำจริงrsync -n rsyncสิ่งคือฉันจะทำให้การรันครั้งที่สองโดยอัตโนมัติเพื่อนำรายการที่สร้างขึ้นมาใหม่ได้--dry-runอย่างไร ฉันหมายความว่าถ้าฉันวิ่งrsync -nแล้วฉันจะได้รับการจำลองว่าrsyncจะทำอย่างไรความคิดของฉันก็คือเอาผลลัพธ์นั้นมาประมวลผลมันก็จะสร้างrsyncเฉพาะ--include-fromผลผลิตนั้นดังนั้นรายการทั้งหมดจะต้องคำนวณเพียงครั้งเดียว หากนี่ไม่สมเหตุสมผลโปรดแจ้งให้เราทราบ rsync -hva --progress --stats --delete --exclude-from "$EXCLUDEFILE"โดยวิธีการที่ฉันมักจะใช้ หากคุณมีข้อเสนอแนะเกี่ยวกับตัวเลือกที่คุณจะใช้โปรดแจ้งให้เราทราบ ฉันพยายามทำซ้ำเนื้อหาของฮาร์ดไดรฟ์ภายนอก (ซึ่งมีเฉพาะภาพวิดีโอและเอกสาร) ไปยังฮาร์ดไดรฟ์ภายนอกอื่น


1
กำลังใช้ rsync ในขณะที่แหล่งข้อมูลกำลังได้รับการอัปเดตอย่างปลอดภัยหรือไม่
มีความปลอดภัยในการใช้งานหรือไม่rsyncเมื่อระบบไฟล์ต้นทางถูกเมาต์และเขียนได้สมมติว่ามันอาจจะถูกแก้ไขได้อย่างดีในขณะที่ rsync กำลังทำงานอยู่? ฉันเข้าใจว่าภายใต้สภาพการแข่งขันฉันอาจไม่ได้รับการดัดแปลงล่าสุด แต่มีความเสี่ยงต่อการทุจริตหรือไม่?

3
rsync ไฟล์บางไฟล์ไม่รวมส่วนที่เหลือโดยไม่สนใจ. svn / directory ซ้ำ
ฉันใช้rsyncเพื่อคัดลอกไฟล์บางไฟล์จากการแชร์ไปยังไฟล์อื่น ฉันจำเป็นต้อง: ลบไฟล์ที่ปลายทางที่ถูกลบออกจากจุดกำเนิด ซิงค์.phpและ.jsไฟล์เท่านั้น ยกเว้นไฟล์ประเภทอื่นทุกประเภท อย่าลบ.svn/ไดเรกทอรีที่ปลายทาง ถ้าฉันใช้สิ่งนี้: rsync -zavC --delete --include='*.php' --include='*.js' --exclude="*" \ /origin /destination จากนั้นrsyncจะไม่เรียกซ้ำเนื่องจากexclude="*"ไม่รวมไฟล์ทั้งหมด แต่ยังรวมถึงโฟลเดอร์ ถ้าฉันเพิ่ม--include="*/"แล้ว.svn/ไดเรกทอรีจะถูกลบ (รวมอยู่ด้วย) ฉันจะแก้ไขปัญหานี้ได้อย่างไร? uname -a: Linux tux 3.9.2-1-ARCH # 1 SMP PREEMPT Sat 11 พฤษภาคม 20:31:08 CEST 2013 x86_64 GNU / Linux rsync รุ่น: rsync 3.0.9-6

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.