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

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

1
เพิ่ม slash ต่อท้ายทำไมหลังจากปลายทาง rsync
ตามนี้หน้าเว็บเพิ่ม '/' ที่ส่วนท้ายของปลายทาง rsync ผลิตผลที่แตกต่างกันจากการไม่ได้เพิ่ม ฉันพยายามทดสอบสิ่งนี้ แต่ฉันไม่สามารถยืนยันได้: $ mkdir dir{1..3} $ touch dir1/file $ rsync -r dir1/ dir2 $ rsync -r dir1/ dir3/ $ ls dir* dir1: file dir2: file dir3: file การต่อท้าย '/' ต่อท้ายปลายทางใช้งานได้จริงหรือไม่?
13 rsync 

1
rsync แยกออกจากไดเรกทอรีที่มีช่องว่าง
ฉันกำลังพยายามแยกไดเรกทอรี "Mendeley Desktop" สำหรับ rsync แยกออกจาก = เป็นดังนี้: Downloads *.o *.iso Dropbox Documents/Mendeley\ Desktop แต่ rsync ยังคงสำรองข้อมูล Mendeley Desktop ฉันจะทำให้ rsync ข้ามไดเรกทอรีได้อย่างไร
13 rsync  quoting 

1
วิธีแปลงไฟล์ gz (gzip) ที่มีอยู่เป็น rsyncable
ฉันใช้ rsync เพื่อสำรองพื้นที่เก็บข้อมูลที่มีไฟล์ gz จำนวนมากรวมถึงไฟล์ใหม่จำนวนมากในแต่ละวัน การสำรองข้อมูล rsync จะดำเนินการช้ากว่าที่ควรจะเป็นเพราะไฟล์ gz เหล่านี้ไม่ได้สร้างขึ้นด้วยตัวเลือก --rsyncable ของ gzip (ซึ่งทำให้ไฟล์ gz นั้นเป็นมิตรต่อ rsync มากขึ้นโดยไม่เพิ่มขนาดหรือส่งผลต่อความเข้ากันได้) และฉันไม่สามารถแก้ไขปัญหาได้ในขณะที่สร้างเพราะไฟล์ถูกสร้างโดยสคริปต์ python (rdiff-backup) ซึ่งใช้โมดูล gzip ของ python และสิ่งนี้ไม่สนับสนุนเทียบเท่ากับ gzip's --rsyncable ดังนั้นก่อนที่จะรัน rsync ฉันสามารถระบุไฟล์ gz ใหม่ใด ๆ ในแหล่งข้อมูล (เช่นใหม่นับตั้งแต่มีการเรียกใช้ rsync ครั้งล่าสุด) ตอนนี้ฉันต้องการ 're-gzip' ไฟล์เหล่านี้เพื่อให้พวกเขา gzipped ในรูปแบบ rsyncable จากนั้นฉันสามารถเรียกใช้ rsync จากแหล่งที่ได้รับการปรับปรุง ฉันคิดว่านี่หมายถึงการเรียกใช้แต่ละไฟล์ผ่าน gunzip และ …
12 rsync  gzip 

2
rsync ไม่รักษาความเป็นเจ้าของไดเรกทอรีแม้ด้วย -a
ฉันใช้คำร้องขอ rsync นี้เพื่อสำรองข้อมูลไดเรกทอรีบ้านของฉัน: rsync -aARrx --info= --force --delete --info=progress2 -F "$USER_HOME" "$BACKUP_MNTPOINT" rsync man page บอกว่า -a หมายถึง -g และ -o (ระหว่างสวิตช์อื่น ๆ ) ซึ่งควรรักษาความเป็นเจ้าของ อย่างไรก็ตามฉันสังเกตเห็นว่าหากไม่มีไดเรกทอรีภายใต้$BACKUP_MNTPOINT/$USER_HOMEมันจะถูกสร้างขึ้นด้วย root: ความเป็นเจ้าของ root แทนที่จะเป็นไดเรกทอรีที่ถูกต้อง (สิ่งนี้จะเกิดขึ้นกับไดเรกทอรีที่อยู่ด้านล่าง$BACKUP_MNTPOINT/$USER_HOME) ทำไมถึงเป็นอย่างนั้น? $BACKUP_MNTPOINTเป็นไดรฟ์ที่ติดตั้ง localy $BACKUP_MNTPOINT/$USER_HOMEมีกรรมสิทธิ์และสิทธิ์ที่เหมาะสม ไม่ได้$USER_HOMEหรือ$BACKUP_MNTPOINTลงท้ายด้วยเครื่องหมายทับ ทั้งซอร์สและระบบไฟล์เป้าหมายคือ XFS และการรันmkdir $BACKUP_MNTPOINT/$USER_HOMEจะสร้างไดเร็กทอรีที่มีความเป็นเจ้าของที่คาดไว้

1
การรักษาแอตทริบิวต์เพิ่มเติมด้วย cp / rsync
เมื่อคัดลอกด้วยcpคุณสมบัติเพิ่มเติมจะไม่ถูกเก็บไว้แม้จะชัดเจน cp -a --preserve=all /source /dest หรือ cp -a --preserve=xattr /source /dest เช่นเดียวกันกับrsyncคือ rsync -aq -A -X --delete /source /dest อย่างไรก็ตามบนระบบไฟล์ปลายทางฉันสามารถสร้างแอททริบิวต์แบบขยายได้ด้วยตนเอง (พร้อมchattr) ซึ่งหมายความว่าระบบไฟล์เป้าหมายรองรับ xattr ทำไมฉันไม่สามารถที่จะรักษาxattrด้วยcpหรือrsync? ข้อมูลเพิ่มเติม: ทั้งระบบไฟล์ต้นทางและปลายทางคือ ext4 ทั้งระบบไฟล์ต้นทางและปลายทางเป็นโลคัล (ไม่ใช่ nfs) ฉันใช้ Debian Wheezy
12 filesystems  rsync  cp  xattr 

4
เหตุใด rsync จึงไม่สามารถคัดลอกไฟล์จาก / sys ใน Linux
ฉันมีสคริปต์ทุบตีซึ่งใช้rsyncในการสำรองไฟล์ใน Archlinux ฉันสังเกตเห็นว่าrsyncล้มเหลวในการคัดลอกไฟล์จาก/sysในขณะที่cpทำงานได้ดี: # rsync /sys/class/net/enp3s1/address /tmp rsync: read errors mapping "/sys/class/net/enp3s1/address": No data available (61) rsync: read errors mapping "/sys/class/net/enp3s1/address": No data available (61) ERROR: address failed verification -- update discarded. rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1052) [sender=3.0.9] # cp /sys/class/net/enp3s1/address …

5
ไม่แสดงข้อความเซิร์ฟเวอร์ใน rsync
เมื่อฉันrsyncหรือscpจากเซิร์ฟเวอร์โดยเฉพาะฉันได้รับข้อความค่อนข้างยาวบอกกฎของเซิร์ฟเวอร์ อย่างไรก็ตามเมื่อฉันตั้งค่าการดึงเป็นประจำฉันต้องการที่จะระงับข้อความเหล่านั้นในบันทึกของฉัน การดูหน้าคู่มือแนะนำว่า-qควรจะทำงานได้ แต่นั่นเป็นเพียง quiets ข้อความจาก SCP เอง ฉันจะทำสิ่งนี้ได้อย่างไร

4
ฉันจะแยกไฟล์เป็นค่าเริ่มต้นด้วย rsync ได้อย่างไร
ฉันจะแยกไฟล์เป็นค่าเริ่มต้นด้วย rsync ได้อย่างไร นี่คือวิธีที่ rsync ไวยากรณ์ปกติของฉันเริ่มต้น: rsync --exclude ".ht*" --exclude "error_log" --exclude ".DS*" --exclude "old" ... ฉันเคยเห็นการกล่าวถึงการกำหนดค่า/etc/rsyncd.confไฟล์จำนวนมากแต่อาจจะดีกว่าสำหรับ daemon มากกว่าคำสั่ง rsync เป็นไปได้ไหมที่จะมีการยกเว้นค่าเริ่มต้นสำหรับ rsync เมื่อถูกเรียกจากบรรทัดคำสั่งเช่นในไวยากรณ์เริ่มต้นของฉันด้านบน

2
ความแตกต่างระหว่าง rsync กับ remote และ rsync local บน sshfs ที่ติดตั้งอยู่หรือไม่
มีความแตกต่างหรือไม่ถ้าฉันเรียกใช้ rsync ด้วยรีโมตโฮสต์ (ssh: //) เป็นต้นทาง / ปลายทางหรือใช้โลคัลพา ธ เพื่อแชร์ไดเร็กทอรีที่เมาท์ผ่าน sshfs? อาจมีความแตกต่างเกี่ยวกับความปลอดภัยหรือความเร็วในการคัดลอกโดยไม่ต้องใช้สวิตช์ใด ๆ เพียงแค่ใช้โหมดเก็บถาวร rsync และเส้นทางโฮสต์ระยะไกล (ssh) เช่นเดียวกันกับ sshfs mount เพียงแค่กับแหล่งที่มาและปลายทาง (ไม่มีการเปลี่ยนแปลงตัวเลขศูนย์เพียงค่าเริ่มต้น)

2
เร่งความเร็ว / หลีกเลี่ยงการคำนวณรายการไฟล์ rsync
ผมใช้ rsync 3.1.1 เพื่อให้ในการซิงค์สองแผ่นหนึ่งซึ่งอยู่ในเครือข่ายและการติดตั้งเป็นส่วนแบ่ง samba /mnt/ROUTER_WD_2TB/บน นี่คือแหล่งที่มาด้วยความเร็วสูงสุด 30-40MB / s เนื่องจากข้อ จำกัด ของเครือข่าย อื่น ๆ ปลายทางจะติดตั้งอยู่ในประเทศ (110MB สูงสุด / s) /mnt/BACKUP_HITACHI_2TB/และเป็น ฉันใช้คำสั่ง rsync ต่อไปนี้: rsync -haAXi --quiet --append-verify --delete /mnt/ROUTER_WD_2TB/* /mnt/BACKUP_HITACHI_2TB/. ดิสก์มีไฟล์จำนวนมากโดยส่วนใหญ่มีขนาดเล็ก ปัญหาคือ rsync ใช้เวลาค่อนข้างนาน (10-20m) ก่อนที่จะเริ่มย้ายไฟล์ใด ๆ ฉันคิดว่าเพราะต้องคำนวณรายชื่อไฟล์สำหรับไฟล์ขนาดเล็กจำนวนมาก ในช่วงเวลานี้การใช้ประโยชน์จากงานใหม่จะอยู่ที่ระดับต่ำ 200-500KB / s ในขณะที่การถ่ายโอนไฟล์ความเร็วประมาณ 40MB / s มักจะเกิดขึ้นที่ rsync ใช้เวลาประมาณ …
12 rsync  backup 

3
จำกัด การเข้าถึงไฟล์เพื่อต่อท้ายเท่านั้น
ฉันมีไดเรกทอรีพร้อมไฟล์บันทึกและฉันวางบันทึกจากสคริปต์ที่เปิดตัวโดยผู้ใช้ลงในพวกเขา การบันทึกด้วย syslog ไม่สามารถทำได้ในกรณีนี้ (ไม่ใช่ daemon rsync) ฉันต้องการให้ผู้ใช้มีสิทธิ์เขียนไฟล์บันทึกเท่านั้น ปัญหาคือสิทธิ์ในการเขียนที่ต้องถูก จำกัด เพิ่มเติมเพื่อให้ผู้ใช้ (สคริปต์) สามารถผนวกเข้ากับไฟล์นั้นเท่านั้น ระบบไฟล์พื้นฐานคือ XFS ต่อไปนี้ใช้ไม่ได้: # chattr +a test.log chattr: Inappropriate ioctl for device while reading flags on test.log มีวิธีอื่นในการนี้หรือไม่? ขอบคุณสำหรับคำแนะนำของคุณ
12 linux  permissions  logs  rsync  xfs 

2
ฉันจะตรวจสอบว่า rsync ทำการเปลี่ยนแปลงในทุบตีได้อย่างไร?
ฉันมีสคริปต์ที่ใช้ rsync เพื่อซิงค์ข้อมูลในรีโมต -> สถานการณ์จำลองในเครื่อง ทันทีหลังจากรันคำสั่ง rsync การตรวจสอบเพื่อดูว่ารหัสข้อผิดพลาดเท่ากับศูนย์หรือไม่ หากเป็นศูนย์จะดำเนินการคำสั่งเพิ่มเติม อย่างไรก็ตามสิ่งนี้ไม่ได้คำนึงถึงข้อเท็จจริงที่ว่า rsync อาจทำงานได้สำเร็จ แต่ไม่ได้ทำการเปลี่ยนแปลงใด ๆ ด้วยเหตุนี้สภาพศูนย์เท่ากับจะทำงานโดยไม่คำนึงถึงซึ่งซ้ำซ้อนเล็กน้อย rsync -aEivm --delete /path/to/remote/ /path/to/local/ if [ $? -eq 0 ]; then # Success do some more work! else # Something went wrong! exit 1; fi สิ่งที่จะเป็นวิธีที่ดีที่สุดในการขยายสิ่งนี้เพื่อตรวจสอบว่ามีการเปลี่ยนแปลงจริง ๆ ตามคำสั่ง rsync ที่รันหรือไม่ ฉันอ่านแล้วว่าแฟล็ก -i สามารถให้เอาต์พุตกับ stdout …

4
Rsync --bwitit ไม่ทำงาน
ฉันกำลังใช้ rsync เพื่อถ่ายโอนไฟล์ขนาดใหญ่จากโฮสต์ไปยังอีก ฉันต้องการ จำกัด เดบิตสำหรับการโอนนี้ หลังจากอ่าน man page ฉันพบตัวเลือก --bwlimit ซึ่งคาดว่าจะมีค่า KB / s ฉันต้องการที่จะ จำกัด การถ่ายโอนเพื่อ arround 100Mbit / s ดังนั้นฉันใช้การตั้งค่าต่อไปนี้ rsync --progress -v --bwlimit=10000 --temp-dir=/tmp srv:/tmp/* /tmp/ แต่สิ่งนี้ดูเหมือนจะไม่ได้รับการเคารพตามเอาต์พุตของ rsync: file.sql.gz 570851702 100% 33.90MB/s 0:00:16 (xfer#5, to-check=34/39) file.sql.gz 11195140 100% 7.45MB/s 0:00:01 (xfer#6, to-check=33/39) file.sql.gz 51439169 100% 19.41MB/s …
12 linux  rsync 

1
วิธีรับ rsync เชื่อมโยงไฟล์ที่เหมือนกันด้วยตัวเลือก --link-dest หากไฟล์เก่ามีอยู่แล้ว?
อาจคิดว่าการ--link-destเข้าสู่ไฟล์ที่เหมือนกันอาจใช้ได้ในทุกกรณี แต่มันไม่ได้เมื่อไฟล์ที่มีอยู่แม้ว่าไฟล์จะล้าสมัย / มีเนื้อหาที่แตกต่างกัน เป็นเพราะสิ่งนี้จากหน้า rsync ของมนุษย์ใน--link-dest: "ตัวเลือกนี้ทำงานได้ดีที่สุดเมื่อคัดลอกไปยังลำดับชั้นปลายทางที่ว่างเปล่าเนื่องจาก rsync จะถือว่าไฟล์ที่มีอยู่นั้นชัดเจน (ดังนั้นrsync จะไม่ดูใน link-dest dirs เมื่อไฟล์ปลายทางมีอยู่แล้ว ") ซึ่งหมายความว่าหากy/fileมีอยู่เหมือนแหล่งที่มาและz/fileล้าสมัย rsync -a --del -link-dest=y source:/file z จะส่งผลให้ inodes สองตัว (และสองเท่าของพื้นที่ใช้งาน) ถูกใช้งานy/fileและz/fileซึ่งจะมีเนื้อหาและ datestamps เดียวกัน ฉันเจอสิ่งนี้เพราะฉันสำรองข้อมูลทุกวันโดยพื้นฐานแล้วสคริปต์นี้รันวันละครั้ง mv $somedaysago $today; yest=$today; today=`date +%Y%m%d`; rsync -avPShyH --del --link-dest=../$yest host:/dirs $today เนื่องจากการสำรองข้อมูลของฉันครอบคลุมไฟล์มากถึง 10M การดำเนินการrm -rf $olddir; rsync source:$dir …
11 rsync 

4
`cp -al` snapshot ซึ่งฮาร์ดลิงก์จะถูกนำไปยังไฟล์ใหม่เมื่อทำการแก้ไข
ฉันกำลังพยายามถ่ายภาพรวมของโฟลเดอร์ขนาดใหญ่เป็นประจำ ฉันได้อ่านที่นี่: http://www.mikerubel.org/computers/rsync_snapshots/#Incremental ที่cp -alจะถ่ายภาพโฟลเดอร์โดยเพียงแค่คัดลอกลิงก์ฮาร์ดไดรฟ์ นั่นคือทั้งหมดที่ดี แต่ปัญหาคือในภาพรวมนี้ถ้าฉันเปลี่ยนไฟล์มันจะเปลี่ยนในภาพรวมทั้งหมด สิ่งที่ฉันต้องการแทนคือการให้ระบบสร้างไฟล์ใหม่ที่มีการเปลี่ยนแปลงและเชื่อมโยงไปยังสิ่งนั้นแทน วิธีดังกล่าวแต่ละสแน็ปช็อตจะไม่ถูกต้องในการแก้ไขไฟล์แรก ฉันจะบรรลุสิ่งนั้นได้อย่างไร ป.ล. ฉันพยายามrsync -a --delete --link-dest=../backup.1 source_directory/ backup.0/แต่ก็มีปัญหาเดียวกัน

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