ฉันเพิ่งต้องลบและสร้างไดเรกทอรี NFS ใหม่เพื่อลดขนาดไฟล์หลังจากที่มันขยายขนาดก่อนหน้านี้ ในกระบวนการนี้ฉันพบวิธีที่มีประสิทธิภาพในการทำเช่นนี้โดยใช้ rsync และฮาร์ดลิงก์ วิธีนี้หลีกเลี่ยงการคัดลอกไฟล์จริงในขณะที่ยังคงบรรลุเป้าหมายในการสร้างไดเรกทอรีใหม่ด้วยเนื้อหาเดียวกัน
เนื่องจากเราจำเป็นต้องหยุดทำงานเพื่อดำเนินการนี้ในช่วงเวลาการบำรุงรักษาทำให้การสร้างไดเรกทอรีที่สร้างใหม่โดยเร็วที่สุดเป็นสิ่งสำคัญสำหรับเรา หากความเรียบง่ายสำคัญสำหรับคุณมากขึ้นให้เปลี่ยนคำสั่ง move แรกเป็น 'rm -rf' บนไดเรกทอรีต้นทางและข้ามคำสั่ง 'rm -rf' อื่น ๆ
ฉันแยกคำสั่งเหล่านี้ออกจากกระบวนการที่ใหญ่ขึ้นและสรุปชื่อไดเรกทอรีดังนั้นขอโทษถ้าฉันทำผิดพลาดในการแปลนั้น
mkdir /tmp/holding_dir/
rsync -ai --delete --link-dest=/path/to/source_dir/ /path/to/source_dir/ /tmp/holding_dir/
mv /path/to/source_dir/ /tmp/deleteme/
mv /tmp/holding_dir/ /path/to/source_dir/
จากนั้นเราจะลบไดเรกทอรีออก คุณอาจต้องใช้เทคนิคที่ซับซ้อนกว่านี้เพื่อทำสิ่งนี้ทั้งนี้ขึ้นอยู่กับขนาด ตัวอย่างเช่นการใช้ rsync กับ --delete flag เพื่อซิงค์ไดเรกทอรีว่างในไดเรกทอรีนี้อาจมีประสิทธิภาพมากกว่า
rm -rf /tmp/deleteme/