พื้นหลัง
ผมมี misshap logrotate เล็ก ๆ ... logrotate จะหมุนบันทึกเก็บไว้โดย misstake /var/log/
ก่อให้เกิดการเจริญเติบโตของกำลังสองของไฟล์ในของฉัน และตามเวลาที่ฉันรู้ว่ามีบางอย่างผิดปกติ/var/log/
มีไฟล์อยู่สองสามล้านไฟล์ ...
ฉันจัดการเพื่อ (หลังจาก hairloss และ find / sed / grep magic) ลบไฟล์ที่ละเมิดทั้งหมดและแก้ไขการตั้งค่า logrotate ของฉัน และคิดว่าทุกอย่างดี ...
ปัญหา
เมื่อใดก็ตามที่ฉันls
/ du -hs
หรือรายชื่อเนื้อหาของ/var/log/
(ซึ่งตอนนี้มี 80mb ของที่เก็บ / บันทึกและมากที่สุดสองสามร้อยไฟล์) กระบวนการทำที่แฮงค์สำหรับนาทีที่ดีหรือสอง ฉันเชื่อว่านี่เป็นวิธีที่เกี่ยวข้องกับการสะกดผิด logrotate แต่ฉันไม่แน่ใจมันอาจเป็นอย่างอื่น ยังไงก็ตามฉันก็ตกอยู่ในที่ที่จะเริ่มทำการดีบั๊กหรือหาวิธีแก้ไขมัน โปรดช่วย: 3
ข้อมูลอื่น ๆ
uname -a
Linux xxx 3.3.8-gentoo #18 SMP Sat Sep 21 22:44:40 CEST 2013 x86_64 Intel(R)
Core(TM)2 CPU 4400 @ 2.00GHz GenuineIntel GNU/Linux
cat /proc/meminfo
MemTotal: 2051552 kB
MemFree: 75612 kB
Buffers: 9016 kB
Cached: 1740608 kB
SwapCached: 0 kB
CFQ IO scheduler + SLUB allocator
ฉันคิดว่านี่: ไฟล์ในไดเรกทอรีมีจำนวนมากเกินไป (การดาวน์โหลดข้อมูลจากเน็ต)นั้นเกี่ยวข้อง แต่ฉันไม่มีไฟล์เหลืออีกต่อไป
แก้ไข
ปัญหายังคงอยู่แม้จะมีการเรียกinit 1
ดังนั้นฉันคิดว่ามันปลอดภัยที่จะถือว่าไม่มีกระบวนการอื่นใดที่จะตำหนิ แต่ FS
โซลูชัน (ตามที่นำมาใช้จากคำตอบที่ยอมรับ)
init 1
mv /var/log /var/log1
mkdir /var/log
chmod --reference=/var/log1 /var/log
chown --reference=/var/log1 /var/log
tar -C /var/log1 -cvp . | tar -C /var/log -xvp
rm -rf /var/log1
init 5