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

Rsync เป็นเครื่องมือบรรทัดคำสั่งแบบโอเพ่นซอร์สสำหรับระบบ Unix และ Windows ที่ให้การถ่ายโอนไฟล์ที่เพิ่มขึ้นอย่างรวดเร็วเพื่อคัดลอกไฟล์และซิงโครไนซ์ไดเรกทอรีในเครื่องหรือระหว่างโฮสต์ระยะไกล มันถูกใช้อย่างกว้างขวางสำหรับการมิเรอร์และการสำรองข้อมูล

1
อักขระ Unicode ในเซิร์ฟเวอร์ Ubuntu
ฉันเพิ่งย้ายจาก Ubuntu Desktop 13.04 ไปยัง Ubuntu Server 13.10 และตอนนี้ระบบไฟล์ของฉันดูเหมือนจะไม่รองรับอักขระ Unicode ฉันใช้ rsync เพื่อสำรองข้อมูล / ซิงค์ไฟล์และแสดงตัวอักษรที่เหมาะสม แต่ต้องการลบชื่อไฟล์ที่ไม่ตรงกันและสร้างเวอร์ชันที่ใช้ Escape ตัวอย่างเช่น: root@ubuntu-server:~# rsync -avh --progress --delete --dry-run --exclude \$RECYCLE.BIN /media/source/ /media/target/ deleting Tiësto - Ten Seconds Before Sunrise.mp3 Ti\#353sto - Ten Seconds Before Sunrise.mp3 นอกจากนี้ถ้าฉันคัดลอกไฟล์ Unicode ไปยังระบบไฟล์มันจะแสดงเป็น: drwxr-xr-x 3 root root 4096 Jan …

4
เป็นไปได้หรือไม่ที่จะ จำกัด อัตราการถ่ายโอน scp / sftp / rsync / etc จากบรรทัดคำสั่ง? เช่นคู่มือ QoS ในคำสั่งเดียว?
โดยเฉพาะฉันกำลังมองหาที่จะมีอัตราการ จำกัดscpหรือsftpเซสชั่น (หรืออื่น ๆ โทรเครือข่ายพล) ในการเรียกตัวเอง ตัวอย่างเช่นสมมติว่าฉันต้องการคัดลอก 100MB ไปยังเซิร์ฟเวอร์หนึ่งและ 1GB ไปยังเซิร์ฟเวอร์อื่น ฉันต้องการที่จะสามารถเรียกใช้ทั้งสองนี้ในเวลาเดียวกัน แต่รักษา QoS สำหรับการใช้งานคอมพิวเตอร์ "ปกติ" - ค่อนข้างคล้ายกับวิธีที่คุณสามารถ จำกัด BitTorrent มีวิธีการทำเช่นนี้โดยไม่ต้องสัมผัสฮาร์ดแวร์เครือข่ายหรือไม่? ฉันจินตนาการถึงสิ่งที่คล้ายกับ: magic-qos-tool 'scp file user@host:/path/to/file' หรือ.. scp -rate 40kbps file user@host:/path/to/file
10 rsync  bandwidth  scp  sftp  qos 

2
rsync ตั้งเจ้าของกลุ่ม, อนุญาตกลุ่ม
ฉันต้องการใช้ rsync เพื่อถ่ายโอนไฟล์จากคอมพิวเตอร์ของฉันไปยังระบบ Linux ระยะไกล ไม่ว่าฉันจะเป็นเจ้าของกลุ่มไฟล์ในเครื่องฉันต้องการตั้งค่าเหล่านี้ในด้านระยะไกล ถ้าฉันอยู่ในระบบ Linux ระยะไกลฉันสามารถสร้างไดเรกทอรีและตั้งค่าความเป็นเจ้าของและการอนุญาตเป็น: mkdir my_directory chown :my_group my_directory chmod 775 my_directory ถ้าฉันสร้างไดเรกทอรีในเครื่องจากนั้นใช้ rsync (จำไว้ว่าฉันไม่มี my_group อยู่ในเครื่อง) ฉันจะ: rsync -ae ssh --chmod=ug+rw,Dug+rwx my_directory remoteserver:dest ใช้งานได้ แต่ฉันไม่สามารถหาวิธีตั้งเจ้าของกลุ่มผ่าน rsync ได้ ถ้าฉันทำchmod g+s destmy_directory มีเจ้าของกลุ่มที่ถูกต้อง แต่ไฟล์ทั้งหมดที่อยู่ภายในมีเจ้าของกลุ่มที่ไม่ถูกต้อง

4
ฉันจะทำการถ่ายโอนไฟล์ scp ขนาดใหญ่ต่อเมื่อใช้การส่งต่อพอร์ตได้อย่างไร
ฉันมีสองสามเครื่องกระโดดและฉันต้องตั้งค่าการส่งต่อพอร์ตเพื่อถ่ายโอนไฟล์ แก้ไข: เพื่อให้ชัดเจนต้องใช้หลาย hops เพื่อเข้าถึงเครื่องระยะไกล จากเครื่องของฉันฉันตั้งค่า VPN ที่ฉันสามารถเข้าถึง 10.255.xx - เป็นเครื่องเดียวที่ฉันสามารถเชื่อมต่อผ่าน VPN เมื่อลงชื่อเข้าใช้. xxx ฉันสามารถเชื่อมต่อกับเครื่องอื่น ๆ -. ฉันเป็นหนึ่งในนั้น จากเครื่องของฉัน: ssh -L 4567:localhost:4567 me@10.255.x.x จากนั้นจากเครื่องนั้น: ssh -L 4567:localhost:22 me@10.255.y.y ฉันสามารถ scp -P 4567 me@localhost:/path/to/large/file.gz . ฉันออกจากการทำงาน overnite เพียงเพื่อจะพบว่าการถ่ายโอนตายในบางจุด ฉันเห็นคำแนะนำสองสามข้อที่จะใช้ rsync บน ssh เพื่อทำการถ่ายโอนต่อ แต่ฉันไม่ทราบวิธีการตั้งค่านั้น เป็นไปได้ไหม

4
Rsync ผ่าน ssh หรืออะไรอย่างอื่น?
ฉันพยายามใช้ rsync บน OSX ไปยัง Linux หรือ Unix ที่ฉันไม่สามารถควบคุมได้มาก ฉันทำอะไรแบบนี้ rsync -avz -e ssh remoteuser@remotehost:/remote/dir /this/dir/ ข้อผิดพลาดที่ส่งคืนคือ: bash: rsync: ไม่พบคำสั่ง rsync: การเชื่อมต่อปิดโดยไม่คาดคิด (ได้รับ 0 ไบต์แล้ว) [ตัวรับสัญญาณ] ข้อผิดพลาด rsync: ไม่พบคำสั่งระยะไกล (รหัส 127) ที่ /SourceCache/rsync/rsync-37.3/rsync/io.c(452 ) [ตัวรับ = 2.6.9] อย่างไรก็ตามหลังจากอ่านเอกสารฉันเริ่มคิดว่าจริง ๆ แล้วฉันต้องติดตั้ง rsync daemon บนรีโมตโฮสต์ ฉันต้องติดตั้งเซิร์ฟเวอร์ rsync บนรีโมตโฮสต์หรือไม่ ทางเลือกฟรี - GUI หรือไม่ …
10 linux  macos  unix  rsync 

3
rsync ไม่สามารถลบไดเรกทอรีที่ไม่ว่างเปล่าได้
rsync cannot delete non-empty directoryเมื่อซิงค์สำรองข้อมูลระยะไกลของฉันฉันจะได้รับข้อผิดพลาด ฉันรู้สาเหตุ: ฉันได้แยกบางไฟล์และเมื่อ rsync พยายามที่จะลบไดเรกทอรีระยะไกลเพราะมันไม่ได้อยู่ในพื้นที่มันไม่สามารถเพราะมันไม่ว่างเปล่า หากไม่มีการยกเว้นไดเรกทอรีจะถูกทำให้ว่างเปล่า ฉันยังรู้ว่าฉันสามารถกำจัดปัญหาโดยใช้ - ลบ - ยกเว้น แต่นั่นไม่ใช่สิ่งที่ฉันต้องการ ฉันต้องการข้ามการอัปโหลดไฟล์บางไฟล์ (เพราะมันใหญ่เกินไปสำหรับความเร็วในการอัปโหลดของฉัน) แต่ฉันต้องการให้ไฟล์ที่ฉันอัปโหลดไปแล้วเมื่อไม่นานมานี้หากไฟล์นั้นอยู่ในเครื่อง หากไม่มีอยู่ในเครื่องควรลบทิ้ง - ลบการยกเว้นจะลบพวกเขาทั้งหมดในด้านระยะไกล นั่นหมายความว่าหากไดเรกทอรีไม่มีอยู่ในเครื่องอีกต่อไปควรลบออกแม้ว่าจะมีไฟล์ที่ถูกแยกออก เป็นไปได้ไหมที่จะตั้งค่า rsync เพื่อทำสิ่งนี้ให้สำเร็จ
10 linux  rsync 

2
จะเป็นอย่างไรถ้าไฟล์มีการเปลี่ยนแปลงในขณะที่ rsync กำลังทำงานอยู่
ฉันใช้ rsync เพื่อคัดลอกไฟล์ขนาดเล็ก ~ 10GB จะเกิดอะไรขึ้นหากไฟล์ในไดเรกทอรีต้นทางถูกแก้ไขขณะที่ rsync กำลังทำงานอยู่
10 rsync 

2
มีไคลเอนต์คล้าย FTP หรือ FTP ซึ่งอนุญาตให้“ อัปโหลดเดลตา” หรือไม่เช่นอัปโหลดเฉพาะส่วนของไฟล์ที่มีการเปลี่ยนแปลงหรือไม่
ฉันมักจะทำการเปลี่ยนแปลงเล็กน้อยในไฟล์ข้อความขนาดใหญ่พอสมควรผ่านทาง FTP ( ไฟล์ CSS สำหรับการพัฒนาเว็บ ) และเนื่องจากการเชื่อมต่ออินเทอร์เน็ตของฉันช้ามากมันเป็นกระบวนการที่เจ็บปวดมาก แม้ว่าฉันจะเปลี่ยนเพียงหนึ่งตัวอักษรของไฟล์ฉันยังคงต้องนั่งรอเป็นเวลานานในขณะที่ไฟล์ทั้งหมดได้รับการอัปโหลดใหม่ไปยังเซิร์ฟเวอร์ มีวิธีใดบ้างที่ฉันสามารถแก้ไขไฟล์ที่โฮสต์จากระยะไกลบนคอมพิวเตอร์ของฉันและเมื่อฉันบันทึกไฟล์ให้อัปโหลดเฉพาะส่วนของไฟล์ที่มีการเปลี่ยนแปลงเท่านั้น แก้ไข:ฉันคิดว่าฉันไม่ชัดเจนเกี่ยวกับวิธีการใช้ไคลเอนต์ FTP ของฉันในขณะนี้ โดยทั่วไปฉันเปิดไฟล์ระยะไกลผ่าน SFTP โดยใช้ WinSCP WinSCP บันทึกลงในโฟลเดอร์ tmp เปิด Sublime Text และเริ่มแก้ไข เมื่อฉันกดบันทึก WinSCP จะอัปโหลดไฟล์อีกครั้งโดยอัตโนมัติ ฉันไม่เคยบันทึกไฟล์อย่างถาวรในคอมพิวเตอร์ของฉัน - ทุกอย่างทำผ่านโฟลเดอร์ temp ของ WinSCP นั่นเป็นเหตุผลที่ฉันกำลังมองหาวิธีแก้ปัญหาที่สามารถใช้ในลักษณะ "hit and run" การสนทนาก่อนหน้า ก่อนหน้านี้ฉันได้โพสต์คำถามนี้ไว้ที่ ServerFaultซึ่งแนะนำให้ใช้ git อย่างที่แนะนำ แต่ตามที่อธิบาย: ด้วย git หรือเครื่องมือ versioning ที่คล้ายกันฉันต้องทำคอมมิททุกครั้งที่บันทึกไฟล์ใช่มั้ย แม้ว่าจะสามารถทำได้โดยอัตโนมัติ (เช่นถ้าฉันมีแมโครซึ่งทำให้ …
9 linux  ftp  rsync 

3
วิธีคัดลอกปริมาณ Time Machine ไปยังดิสก์อื่นโดยใช้ rsync ในขณะที่รักษา ACL อยู่
เมื่อเร็ว ๆ นี้ฉันต้องเปลี่ยนระบบไฟล์ของ Mac จากการใช้ตัวพิมพ์เล็กและตัวพิมพ์ใหญ่เป็นตัวพิมพ์เล็ก ฉันทำเช่นนั้นโดยใช้ CCC และคัดลอกข้อมูลไปยังดิสก์อื่นจากนั้นกลับสู่ดิสก์หลักที่จัดรูปแบบใหม่ ตอนนี้ฉันต้องการสำรองข้อมูล Time Machine ลงในดิสก์ Time Machine เครื่องเก่าของฉันซึ่งโฮสต์บน FreeBSD NAS ของฉันซึ่งส่งออกผ่าน AFP อย่างไรก็ตามฉันได้รับข้อผิดพลาดที่ระบบไฟล์ไม่ตรงกันเนื่องจาก Time Machine ยังคงไม่สนใจขนาดตัวอักษร ครั้งนี้ฉันไม่สามารถใช้ CCC ได้เนื่องจากไม่รองรับการคัดลอกระดับไฟล์สำหรับไดรฟ์ข้อมูล Time Machine ตามธรรมชาติแล้วฉันก็ตรงไปหา rsync แต่นั่นทำให้เกิดปัญหา - ถ้าฉันใช้มันด้วย: /usr/local/bin/rsync --super -aEHAXNvx --fileflags --delete /Volumes/Time\ Machine\ Backups/ /Volumes/NewDisk/ ก็จะเริ่มบ่นเร็วที่สุดเท่าที่มันจะกระทบโฟลเดอร์ด้วยBackups.backupdb/<machinename> failed to set permissions, operation not permittedปัญหาที่นี่คือการคัดลอก …
9 macos  rsync  acl 

5
แสดงเฉพาะไฟล์ที่เปลี่ยนแปลงขณะทำการซิงค์จาก ext4 เป็น NTFS
ฉันต้องการ rsync เพื่อพิมพ์ไฟล์ที่แก้ไขและลบ ตัวเลือก verbose (-v) ทำการพิมพ์ไฟล์ที่ถูกดัดแปลง แต่ยังรวมถึงรายการของไดเรคทอรีย่อยอาจเป็นเพราะไดเร็กตอรี่ที่ถูกสัมผัสถือว่าถูกแก้ไข เนื่องจากฉันซิงค์ไฟล์จำนวนมากจากไดเรกทอรีย่อยจำนวนมากจึงเป็นไปไม่ได้ที่จะเห็นการเปลี่ยนแปลงที่เกิดขึ้นจริง ดังนั้นมีวิธีที่จะไม่พิมพ์ไดเรกทอรีใช้ rsync หรือไม่ ฉันไม่ได้มองหาgrep -v "*/$"คำตอบเพราะมันจะแยกไดเรกทอรีใหม่ คำสั่งที่ฉันใช้: rsync -avh --delete /media/data/src /media/data/bkp และทุกครั้งที่มันพิมพ์รายการของไดเรกทอรีทั้งหมด: src/dir1/ src/dir1/sdir1/ src/dir1/sdir2/ src/dir2/ แก้ไข: ตกลงหลังจากการทดสอบอย่างเข้มข้น .. มันไม่ได้พิมพ์ไดเรกทอรีทั้งหมดเมื่อทำการซิงค์จากพาร์ติชัน ext4 ไปยัง ext4 และจาก NTFS ถึง NTFS มันจะทำได้ก็ต่อเมื่อทำการซิงค์จาก ext4 ไปเป็น NTFS .. และตัวเลือก-cหรือ--omit-dir-timesไม่เปลี่ยน
9 rsync 

2
การตรวจสอบ rsync / ไดเรกทอรีสดสำหรับ Windows?
ตอนนี้เรามีเซิร์ฟเวอร์ Linux กลางและเซิร์ฟเวอร์ดาวเทียม Windows หลายตัวกระจายทั่วภูมิภาค ทุก ๆ 15 นาทีเซิร์ฟเวอร์ Linux rsyncs ไฟล์จากที่อื่น ๆ (ซึ่งกำลังเรียกใช้ cwrsync daemon ผ่าน Cygwin) อย่างไรก็ตามทรีไดเรกทอรีของหนึ่งในนั้นได้รับการเติมไฟล์ 85gb และ 400,000 ไฟล์แล้ว การดำเนินการนี้ใช้เวลานานกว่าสิบห้านาทีในการสแกนไดเรกทอรีเพื่อหาการเปลี่ยนแปลง เวลาการขนส่งตามจริงมีค่าน้อยที่สุดเมื่อเทียบกับการสแกน มีอะไรสำหรับ Windows ที่จะคอยตรวจสอบแผนผังเฉพาะและถ่ายทอดการเปลี่ยนแปลงใด ๆ ที่อยู่หรือจัดคิวเพื่อส่งทุก ๆ สองสามนาทีโดยไม่ต้องทำการสแกนต้นไม้ทั้งหมดเป็นจำนวนมากทุกครั้งและทำสิ่งนี้กับระบบ Linux ผ่าน rsync lsyncd ดูเหมือนจะเหมาะกับมันจนกระทั่งฉันรู้ว่ามันใช้กับ Linux ไม่ใช่ Windows
9 windows  rsync 

1
Rsync เพื่อตรวจสอบการเติบโตในระหว่างการสำรองข้อมูล
ขณะนี้ฉันกำลังถ่ายโอนไฟล์ประมาณ 40 กิ๊กส์จากดิสก์ภายนอกไปยังฮาร์ดไดรฟ์ของฉันและเอาต์พุตความคืบหน้า rsync จะแสดงบางสิ่งเช่น ... to-check=1100/24094) ... to-check=1099/24094) แต่ในระหว่างการถ่ายโอนจำนวนที่สองเพิ่มขึ้นและอันดับที่หนึ่งไม่เคยต่ำกว่า 1,000 ... to-check=1200/27199) ... to-check=1199/27199) นั่นทำให้ฉันงุนงง - การถ่ายโอนจะจบลงเมื่อใด แก้ไข: โอเคในบางจุดก็สิ้นสุดลง แต่กระนั้นสิ่งที่ทำให้เกิดพฤติกรรมนั้น?
9 rsync 

3
การติดตั้ง rsync ขั้นต่ำโดยไม่ต้องใช้ cygwin
มีวิธีการติดตั้ง rsync บน Windows XP โดยไม่ต้องใช้ cygwin หรือไม่? ฉันไม่ต้องการติดตั้ง cygwin เพราะใช้พื้นที่มาก ยิ่งกว่านั้นฉันต้องทำการสื่อสารกับ rsync daemon บน Linux ดังนั้นทางเลือก rsync บน Windows จะไม่ช่วย

2
ฉันจะให้ rsync ละเว้นไฟล์ที่หายไปได้อย่างไร
ฉันกำลังรันคำสั่งดังต่อไปนี้กับระบบที่แตกต่างกัน: $ rsync -a -v foo@machine.company.com:'/path/to/first/*.log path/to/second.txt' /dest/folder/0007/. บางครั้ง * .log ไม่มีอยู่และก็ไม่เป็นไร แต่ rsync จะสร้างข้อผิดพลาดต่อไปนี้: receiving file list ... rsync: link_stat "/path/to/first/*.log" failed: No such file or directory (2) done มีวิธีใดที่จะระงับสิ่งนี้ได้หรือไม่? วิธีเดียวที่ฉันคิดได้ก็คือใช้ตัวกรองรวมและตัวกรองที่ไม่รวมซึ่งดูเหมือน PITA สำหรับฉัน ขอบคุณ!
9 rsync 

3
คัดลอกเนื้อหาไดเรกทอรี rsync แบบวนซ้ำ
ฉันพยายามที่จะคัดลอกเนื้อหาของชุดของไดเรกทอรีที่ไม่ซ้ำไปซ้ำอีกระบบระยะไกล /dirA/dir1/file /dirA/dir2/file /dirA/dir3/file dir1, dir2 และ dir3 มีไดเรกทอรีจำนวนมากที่ฉันไม่ต้องการคัดลอก คัดลอกบนรีโมตโฮสต์ไปยัง / dirB ที่ยังคงโครงสร้างไดเรกทอรีเดียวกัน ฉันเหนื่อย: rsync /dirA/*/ host:/dirB/ rsync /dirA/ host:/dirB/ แต่พวกเขาไม่ทำสิ่งที่ฉันต้องการ
8 rsync 

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