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

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

6
rsync แบบขนานโดยใช้ GNU Parallel
ฉันใช้rsyncสคริปต์เพื่อซิงโครไนซ์ข้อมูลที่โฮสต์หนึ่งกับข้อมูลที่โฮสต์อื่น ข้อมูลมีไฟล์ขนาดเล็กจำนวนมากที่มีส่วนร่วมเกือบ 1.2TB เพื่อซิงค์ไฟล์เหล่านั้นฉันใช้rsyncคำสั่งดังต่อไปนี้: rsync -avzm --stats --human-readable --include-from proj.lst /data/projects REMOTEHOST:/data/ เนื้อหาของ proj.lst มีดังนี้: + proj1 + proj1/* + proj1/*/* + proj1/*/*/*.tar + proj1/*/*/*.pdf + proj2 + proj2/* + proj2/*/* + proj2/*/*/*.tar + proj2/*/*/*.pdf ... ... ... - * จากการทดสอบฉันเลือกสองโครงการ (ข้อมูล 8.5GB) และฉันดำเนินการคำสั่งด้านบน เป็นกระบวนการต่อเนื่องมันเครื่องมือ 14 นาที 58 วินาทีให้เสร็จสมบูรณ์ ดังนั้นสำหรับข้อมูล …

1
วิธีที่ดีที่สุดในการซิงค์ไฟล์ - คัดลอกเฉพาะไฟล์ที่มีอยู่และเฉพาะในกรณีที่ใหม่กว่าเป้าหมาย
ฉันทำข้อมูลนี้ให้ตรงกับบน Ubuntu 12.04 ไฟล์โดยทั่วไปคือไฟล์ข้อความขนาดเล็ก (รหัส) ฉันต้องการที่จะคัดลอก (รักษาแสตมป์ mtime) จากsourceไดเรกทอรีไปtargetแต่ฉันเพียงต้องการที่จะคัดลอกไฟล์ถ้าในtarget ที่มีอยู่แล้วและเป็นที่เก่าsourceกว่าหนึ่งใน ดังนั้นฉันจึงคัดลอกไฟล์ที่ใหม่กว่าsourceเท่านั้น แต่ต้องมีอยู่targetไม่เช่นนั้นจะไม่ถูกคัดลอก ( sourceจะมีไฟล์มากกว่าtargetนั้น) ฉันจะคัดลอกจากจริงsourceไปยังหลายtargetไดเรกทอรี ฉันพูดถึงเรื่องนี้ในกรณีที่มีผลกระทบต่อการเลือกวิธี อย่างไรก็ตามฉันสามารถเรียกใช้คำสั่งของฉันได้อย่างง่ายดายหลายครั้งโดยระบุใหม่targetทุกครั้งหากเป็นสิ่งที่จำเป็น

1
rsync ซ้ำกับความลึกของโฟลเดอร์ย่อย
ฉันต้องการrsyncโฟลเดอร์ซ้ำ แต่ต้องการให้โฟลเดอร์ย่อยรวมอยู่ในระดับความลึกที่แน่นอน ตัวอย่างเช่นฉันต้องการความลึกของ 1,2,3 หรือ 4 โฟลเดอร์ย่อยเช่นนี้ source/ ├── subfolder 1 │ ├── subsubfolder │ │ ├── subsubsubfolder │ │ │ └── wanted with depth 4.txt │ │ └── wanted with depth 3.txt │ └── wanted with depth 2.txt ├── subfolder 2 │ └── wanted with depth 2.txt └── wanted …

4
ทำไมไม่ใช้ rsync เสมอ
ฉันต้องการถามว่ามีเหตุผลใดที่จะไม่ใช้rsyncสำหรับทุกสิ่งและถูกทอดทิ้งcpหรือไม่? ฉันไม่รู้rsyncและตอนนี้ฉันไม่รู้ว่าทำไมจึงcpมีความต้องการ
17 linux  rsync  cp 

3
ย้ายไฟล์และลบไดเรกทอรีด้วย rsync หรือไม่
เมื่อเร็ว ๆ นี้ฉันต้องการลบไฟล์จำนวนมาก (มากกว่า 1 ล้านไฟล์) และฉันได้อ่าน: rsync -av --delete `mktemp -d`/ ~/source && rmdir ~/source rm -rfเป็นหนึ่งในวิธีที่ดีที่สุดมากที่สุดที่จะทำเช่นนั้นและฉันสามารถรับรองว่ามันเร็วกว่า ฉันไม่ใช่ผู้เชี่ยวชาญในเรื่องนี้ แต่จากความเข้าใจของฉันแล้วเหตุผลที่ประสิทธิภาพของ rsync มีบางอย่างที่ต้องทำตามวิธีที่รายการไฟล์ (LIFO แทนที่จะเป็น FIFO ที่ฉันคิดว่า) ตอนนี้ปัญหาคือฉันต้องย้ายไฟล์จำนวนมากด้วยวิธีที่มีประสิทธิภาพ หลังจากค้นหาแล้วฉันก็พบสิ่งนี้: rsync -av --ignore-existing --remove-source-files ~/source ~/destination ขณะนี้ลบทั้งหมดย้ายไฟล์ใน~/sourceไดเรกทอรียังคงมี เนื่องจากฉันมีโครงสร้างไดเรกทอรีคล้ายกับ "round-robin" จำนวนfiles/directoriesใกล้เคียงกับ 1 ดังนั้นฉันจึงถูกบังคับให้เรียกใช้คำสั่งแรกอีกครั้งเพื่อกำจัดไดเรกทอรีทั้งหมด: rsync -av --ignore-existing --remove-source-files ~/source ~/destination && \ rsync -av …

3
วิธีการบังคับให้เขียนทับไดเรกทอรีที่ไม่ว่างโดยใช้ `mv`
ฉันต้องการย้าย (ไม่ใช่เพียงแค่คัดลอก) กลุ่มของไฟล์ / ไดเรกทอรีไปยังไดเรกทอรีอื่นซึ่งบางส่วนมีชื่อที่ขัดแย้งกับไฟล์ / ไดเรกทอรีในไดเรกทอรีเป้าหมาย วัตถุประสงค์หลักของฉันคือการย้ายไฟล์ดังนั้นฉันสามารถทนต่อไดเรกทอรีที่ไม่ว่างที่ถูกเขียนทับ ฉันกำลังใช้mv ... destinationอย่างไรก็ตามบางครั้งฉันได้รับ mv: ไม่สามารถย้าย `target 'ไปยัง / destination / target': ไดเรกทอรีไม่ว่างเปล่า ฉันพยายามmv -f ... destinationไม่ประสบความสำเร็จและเนื่องจากฉันต้องการให้ไฟล์หายไปจากตำแหน่งเดิมrsyncดูเหมือนจะไม่เหมาะสม เป็นโบนัสมีวิธีแก้ไขปัญหาที่ดีสำหรับการรักษาไฟล์ที่ตั้งใจจะเขียนทับด้วยการเปลี่ยนชื่อหรือไม่?
17 files  rsync  rename 

2
rsync ช้ามาก (ตัวประกอบ 8 ถึง 10) เทียบกับ cp ในการคัดลอกไฟล์จาก nfs-share ไปยัง local dir
ฉันมีเซิร์ฟเวอร์ Ubuntu ติดตั้งใหม่ซึ่งควรเป็นเซิร์ฟเวอร์สำรองใหม่สำหรับ VM-storage ของเรา เซิร์ฟเวอร์มี 4 นิกส์ 2 ในนั้นคือ 10Gbit (อันที่จริงแล้ว intel x540-T2 พร้อมไดร์เวอร์ใหม่ล่าสุดที่มีอยู่) ซึ่งใช้สำหรับเชื่อมต่อกับ SAN ฉันติดตั้ง nfs-share ไว้ภายในเครื่องและเปรียบเทียบความแตกต่างของความเร็วขณะที่คัดลอกไดเรกทอรีด้วยไฟล์ ~ 30 ไฟล์ประมาณ 15 vm-images และไฟล์บันทึกที่เกี่ยวข้อง รูปภาพมีขนาดระหว่าง 8 GB ถึง 600 GB โดยใช้: cp -rf /mnt/nfs-share /backup-storage/ bmon แสดงผลประมาณ 600 MiB / s การใช้ rsync -av /mnt/nfs-share /backup-storage/ bmon แสดงแพ็กเก็ตบางอย่างในวินาทีแรกหยุดประมาณ …
17 ubuntu  rsync  performance  cp 

3
คำสั่ง rsync พื้นฐานสำหรับสำเนาที่เหมือนกันบิต
เท่าที่ฉันไม่ได้ปลดคำสั่งต่อไปนี้: sudo rsync --delete -azvr /home/oshiro/Desktop/source/ /home/oshiro/Desktop/destination นี่คือทั้งหมดที่ฉันต้องการในการสร้างการซิงโครไนซ์ไฟล์จากที่หนึ่งไปอีกที่หนึ่งหรือไม่? หรือคำสั่งข้างต้นทำอะไรเพิ่มเติมในพื้นหลังที่ฉันไม่รู้เกี่ยวกับ? ตัวอย่างเช่นมันสร้างการกำหนดเวอร์ชันบางประเภทหรือไม่ซึ่งฉันสามารถระบุเวลาที่ผ่านมาเพื่อรับไฟล์ว่ามีการส่งผ่านอย่างไร นั่นเป็นคุณสมบัติที่ฉันไม่ต้องการเปิดใช้งานในขั้นตอนนี้ สิ่งที่ฉันต้องการคือสำเนาของไฟล์จากที่หนึ่งไปอีกที่หนึ่ง ฉันสามารถกำจัดพารามิเตอร์เหล่านี้ได้หรือฉันจำเป็นต้องเพิ่มพารามิเตอร์เพิ่มเติมเพื่อให้การคัดลอกบิตเหมือนกันโดยไม่มีการกำหนดเวอร์ชัน โดยทั่วไปฉันไม่ต้องการสร้างการสำรองข้อมูลวิธีที่ระบบแบ็คอัพไทม์แมชชีนแมคสร้างการสำรองข้อมูล
17 backup  rsync 

2
rsync: ข้ามไฟล์ที่ฉันไม่มีสิทธิ์
ฉันใช้rsync -rlptDเพื่อคัดลอกไดเรกทอรีจากผู้ใช้รายอื่น มีไฟล์อยู่สองสามไฟล์ (ฉันไม่ทราบวิธีการเหล่านี้ล่วงหน้า) ซึ่งฉันไม่ได้รับอนุญาตให้คัดลอก มีวิธีที่ rsync ไม่สนใจสิ่งเหล่านี้หรือไม่ ปัญหาคือว่าถ้า rsync กลับไม่ใช่ศูนย์ bash -x สคริปต์ของฉันจะออก

1
การสร้างแถบความคืบหน้าด้วย“ กล่องโต้ตอบ” จากเอาต์พุต rsync
ฉันกำลังมองหาวิธีในการกรอง / เปลี่ยนเส้นทาง rsync ในลักษณะที่สามารถป้อนไปยังคำสั่ง "dialog --gauge" ดังนั้นฉันสามารถดูแถบความคืบหน้าที่ดีในระหว่างการซิงค์ไฟล์ ขณะนี้ฉันเพิ่งทดสอบโดยตรงที่พร้อมท์ แต่ฉันวางแผนที่จะทำในเชลล์สคริปต์ (ทุบตี) ฉันดูรอบ ๆ อินเทอร์เน็ตและพบบิตและชิ้นส่วน แต่ฉันก็ยังขาดอะไรบางอย่างที่จะทำให้มันใช้งานได้ (ข้อจำกัดความรับผิดชอบ: นี่อาจเป็นวิธีที่ผิดโดยสิ้นเชิงและเป็นการเปลี่ยนเส้นทาง / การวางท่อที่น่าตกใจ) สิ่งที่ฉันได้รวบรวม: rsync -avz --progress -e "ssh" user@server:/home/user/data/ /home/user/data | awk -f /home/user/rsync.awk | sed 's/\([0-9]*\).*/\1/' | dialog --title "My Gauge" --gauge "Hi, this is a gauge widget" 20 70 ก่อนอื่นฉันมีคำสั่ง rsync …
16 linux  bash  scripting  awk  rsync 

1
วิธีรวมไฟล์ที่ไม่รวมใน rsync
ฉันกำลังพยายามตั้งค่า rsync ที่แยก.*ไฟล์ทั้งหมดยกเว้น.htaccessแต่น่าเสียดายที่มันไม่ทำงาน: rsync -avP --exclude=".*" --include="./.htaccess" ./. user@server:/dir เป็นไปได้ไหมที่จะยกเว้นกฎการยกเว้นทั่วไป?
16 rsync 

1
ทำไมไม่พบ rsync
rsync -avP /home/user/.profile hpux3:/home/user/.profile bash: rsync: command not found ถ้าฉันไม่ได้ ssh กับเครื่อง hpux3 rsync version 3.1.1 protocol version 31 Copyright (C) 1996-2014 by Andrew Tridgell, Wayne Davison, and others. Web site: http://rsync.samba.org/ output truncated ฉันได้ตั้งPATHในและ$HOME/.profile $HOME/.bashrcฉันควรตั้งไว้ใน/etc/profileไฟล์หรือไม่
16 rsync  path 

1
เหตุใด rsync จึงไม่ใช้การถ่ายโอนเดลต้าสำหรับไฟล์เดียวทั่วทั้งเครือข่าย
ฉันได้ดูคำถามนี้และคำถามนี้แต่พวกเขาดูเหมือนจะไม่สามารถบอกอาการที่ฉันเห็นได้ ฉันมีล็อกไฟล์ขนาดใหญ่ (ประมาณ 600 MB) ที่ฉันพยายามถ่ายโอนข้ามเครือข่ายเซลลูลาร์ เพราะมันเป็นแฟ้มบันทึกมันเป็นเพียงการผนวกเข้ากับ (แม้ว่ามันจะเป็นจริงในฐานข้อมูล SQLite มีเพียง INSERT การดำเนินการเพื่อให้มันไม่ได้ค่อนข้างง่ายเหมือนที่ แต่มีข้อยกเว้นของสุดท้าย 4k หน้า (หรืออาจจะเป็น น้อย) ไฟล์จะเหมือนกันทุกครั้งมันเป็นสิ่งสำคัญที่จะต้องทำการเปลี่ยนแปลงเท่านั้น แต่เมื่อฉันทำการทดสอบผ่านการเชื่อมต่อที่ไม่มีการตรวจสอบ (เช่นฮอตสปอต wifi ฟรี) ฉันไม่เห็นการถ่ายโอนข้อมูลที่เร่งความเร็วหรือลดลงที่สังเกตหรือรายงาน ผ่านการเชื่อมต่อ WiFi ช้าฉันเห็นตามคำสั่งของ 1MB / s หรือน้อยกว่ารายงานว่าการถ่ายโอนจะใช้เวลาเกือบ 20 นาที ผ่านการเชื่อมต่อ WiFi ที่รวดเร็วฉันเห็นความเร็วที่เร็วขึ้นเหมือนกัน แต่ไม่มีรายงานการเร่งความเร็วและความพยายามครั้งที่สองในการถ่ายโอน คำสั่ง (ฆ่าเชื้อเพื่อลบข้อมูลที่ละเอียดอ่อน) ที่ฉันใช้อยู่คือ: rsync 'ssh -p 9999' --progress LogFile michael@my.host.zzz:/home/michael/logs/LogFile ผลลัพธ์ที่ฉันได้รับในตอนท้ายดูเหมือนว่า: LogFile 640,856,064 100% …
15 rsync 

4
ถ่ายโอนไฟล์นับล้านไฟล์จากเซิร์ฟเวอร์หนึ่งไปยังอีกเซิร์ฟเวอร์หนึ่ง
ฉันมีเซิร์ฟเวอร์สองเครื่อง หนึ่งในนั้นมีไฟล์ข้อความ 15 ล้านไฟล์ (ประมาณ 40 GB) ฉันกำลังพยายามถ่ายโอนไปยังเซิร์ฟเวอร์อื่น ฉันคิดว่าซิปพวกเขาและถ่ายโอนไฟล์เก็บถาวร แต่ฉันรู้ว่านี่ไม่ใช่ความคิดที่ดี ดังนั้นฉันใช้คำสั่งต่อไปนี้: scp -r usrname@ip-address:/var/www/html/txt /var/www/html/txt แต่ฉันสังเกตเห็นว่าคำสั่งนี้เพิ่งถ่ายโอนประมาณ 50,000 ไฟล์แล้วการเชื่อมต่อจะหายไป มีวิธีแก้ปัญหาที่ดีกว่าหรือไม่ที่ทำให้ฉันสามารถถ่ายโอนไฟล์ทั้งหมดได้? ฉันหมายถึงใช้สิ่งที่ต้องการrsyncถ่ายโอนไฟล์ที่ไม่ได้ถ่ายโอนเมื่อการเชื่อมต่อขาดหายไป เมื่อมีการขัดจังหวะการเชื่อมต่ออื่นเกิดขึ้นฉันจะพิมพ์คำสั่งอีกครั้งเพื่อถ่ายโอนไฟล์โดยไม่สนใจคำสั่งที่ถูกถ่ายโอนเรียบร้อยแล้ว ไม่สามารถทำได้scpเนื่องจากจะเริ่มต้นจากไฟล์แรกเสมอ

2
ทำไม rsync ของฉันไม่อนุญาตขนาดบล็อก> 128K?
ใช้ rsync ด้วย* ขนาดใหญ่--block-sizeเช่นนี้: rsync -avvz --rsh 'ssh -c arcfour' --block-size 1048576 --inplace --progress example.com:/big.file /big.file ฉันได้รับข้อผิดพลาดต่อไปนี้: Invalid block length 1048576 [sender] ปลายทั้งสองทำงานโดยใช้ 64 บิต CentOS 6.4 จาก Googling ที่ฉันเคยเห็น--block-sizeใช้แล้วด้วยค่าที่สูงกว่ามากเหตุใดจึงไม่ทำงานสำหรับฉัน * ฉันใช้บล็อกขนาดใหญ่เพราะฉันพยายามแก้ไขข้อผิดพลาดที่ rsync เพิ่งหมุน CPU ตลอดกาล 44% เป็นไฟล์ 300GB
15 rsync 

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