เรามีโฟลเดอร์แคชซึ่งมีขนาดใหญ่พอที่จะทำลายเซิร์ฟเวอร์โดยไม่ได้ตั้งใจ เรามี RAM 8 GB บนเซิร์ฟเวอร์และเมื่อฉันใช้งานง่าย rm คำสั่งเพื่อลบไฟล์ทั้งหมดที่อยู่ในนั้นใช้ RAM ทั้งหมดและยังคงไม่ลบหลังจาก 5 ชั่วโมง
ดังนั้นเราจึงพยายามใช้ find แต่มันก็ล้มเหลวเช่นกันหลังจากผ่านไป 12 ชั่วโมง ขณะนี้จาก 24 ชั่วโมงล่าสุด find กับ perl คำสั่งกำลังทำงานและโฟลเดอร์ยังไม่ถูกลบอันที่จริงไม่ใช่ไฟล์เดียวที่ถูกลบ
เมื่อเรา ls โฟลเดอร์หลักจะแสดงขนาดโฟลเดอร์โดยรอบ 1GBฉันแค่สงสัยว่ามีกี่ล้านไฟล์มี
ดังนั้นคำถามของฉันมีวิธีใดบ้างที่เราสามารถลบไฟล์โดยไม่แสดงรายการดังนั้นเพียงแค่ลบโฟลเดอร์หรือไฟล์ภายในโดยไม่ทำรายการ (aka ไม่โทร getdir() เช่นการเรียกระบบ)
ฉันกำลังพิจารณาที่จะฟอร์แมตเซิร์ฟเวอร์เพื่อกำจัดมันในตอนนี้
แก้ไข:
ฉันได้ใช้ find กับ -delete และด้วย -exec rm -f {}
EDIT2:
ขึ้นอยู่กับ บทความนี้ เรากำลังเรียกใช้คำสั่ง perl ในขณะนี้ (ดีประมาณ 24+ ชั่วโมงคำสั่งนั้นยังคงทำงานอยู่) แต่ไม่มีอะไรทำในขนาดโฟลเดอร์ที่เราเห็น
nice -n 18(หรืออะไรก็ตาม) ก่อนที่คุณจะสามารถลดคำขอ CPU โปรดทราบว่าในหนึ่งในความคิดเห็นที่ระบุไว้rm -rf directory/มันยังทำงานได้เร็วขึ้นสำหรับไฟล์หลายพันล้านไฟล์ในโฟลเดอร์เดียว ...