วิธีการล้างหลังจาก rsync ล้มเหลว


12

ฉันฆ่ากระบวนการ "rsync -ah" ในพื้นที่
มันเหลือไฟล์ขยะเช่น ".abc.vmdk.zxivMN" ในไดเรกทอรีเป้าหมาย
ไฟล์ขยะไม่ถูกลบในการรัน "rsync -ah" ติดต่อกัน

รายละเอียด:
ฉันพบความแตกต่างในทั้งสองโฟลเดอร์ที่ฉันซิงค์และรายงาน: "เฉพาะใน / mnt / archive1 / เอกสาร / ทั่วไป: .abc.vmdk.zxivMN"

วิธีที่ดีที่สุดในการล้างไฟล์ rsync ชั่วคราวคืออะไร?

คำตอบ:


12

บอกrsyncจะลบไฟล์ไม่ได้อยู่ในแหล่งที่มาด้วยหรือ--delete-during --delete-afterระวังและใช้ตัวเลือกนี้เฉพาะเมื่อคุณไม่มีไฟล์ที่ถูกต้องในเป้าหมายที่ไม่มีในแหล่งที่มา

man rsyncดู

แน่นอนว่าคุณสามารถลบไฟล์ที่คุณตรวจพบด้วยตนเองdiff...


สิ่งนี้ไม่ดีเมื่อคุณทำสำเนาแทนที่จะเป็นการย้าย
Sridhar Sarnobat

6

ฉันใช้มัน

find -type f -iname ".*.*.??????" -ls

สำหรับการทดสอบและ

find -type f -iname ".*.*.??????" -delete

เพื่อความชัดเจน


-1

ฉันพบว่าคำสั่งต่อไปนี้ทำงานให้ฉันเมื่อพยายามลบไฟล์ temp ทิ้งโดย rsync หลังจากการถ่ายโอนล้มเหลว

find vod-content/ -path '*/.*' -print0 | xargs -0 -r rm -v

สิ่งนี้จะทำอย่างไรเมื่อพบไฟล์ "ซ่อน" ทั้งหมด (ไฟล์ที่ขึ้นต้นด้วย "." ตัวอักษร) และส่งต่อไปยังคำสั่ง "rm" เพื่อลบทิ้ง

ปัญหาที่ทราบชัดเจนเกี่ยวกับรหัสข้างต้นคือหากเนื้อหาของคุณมีไฟล์ที่ซ่อนอยู่คำสั่งนี้จะลบไฟล์เหล่านั้นด้วย


-2

ฉันกำลังมองหาทางออกที่ดีกว่า แต่สิ่งเดียวที่ฉันคิดได้คือการย้ายemptyไฟล์ทั้งหมดที่เริ่มต้นด้วย a .และมีจุดอีกสองจุดในพวกเขาไปยังโฟลเดอร์ถังขยะ (โดยใช้rmความเสี่ยงเล็กน้อย):

find -type f -empty -iname ".*.*.*" | xargs -n 1 -d'\n' mv -v -t /tmp/

ไม่เคยจะเข้าใจผิดได้


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