Lý lịch
Tôi đã có một lỗi sai logrotate nhỏ ... Logrotate sẽ xoay các bản ghi lưu trữ bằng cách đánh lạc hướng gây ra sự tăng trưởng bậc hai của các tệp trong tôi /var/log/
. Và khi tôi bắt được gió rằng có thứ gì đó không ổn, /var/log/
đã chứa vài triệu tệp ...
Tôi đã quản lý (sau một số phép thuật Hairloss và find / sed / grep) xóa tất cả các tệp vi phạm và sửa cấu hình logrotate của tôi. Và nghĩ rằng tất cả đều ổn ...
Vấn đề
Bất cứ khi nào tôi ls
/ du -hs
hoặc nói cách khác là liệt kê nội dung của /var/log/
(hiện chứa 80mb lưu trữ / nhật ký và nhiều nhất là vài trăm tệp), quá trình thực hiện đó sẽ bị treo trong một hoặc hai phút. Tôi tin rằng điều này bằng cách nào đó có liên quan đến sai lệch logrotate nhưng tôi không chắc chắn, nó có thể là một cái gì đó khác. Dù sao tôi cũng không biết bắt đầu gỡ lỗi ở đâu hoặc tìm cách khắc phục vấn đề này. Xin hãy giúp đỡ: 3
Thông tin khác
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
Tôi nghĩ vậy: Có bao nhiêu tệp trong một thư mục quá nhiều? (Tải xuống dữ liệu từ mạng) có liên quan nhưng tôi không còn các tệp nữa.
Biên tập
Vấn đề vẫn tồn tại ngay cả sau khi có cuộc gọi đến init 1
vì vậy tôi nghĩ an toàn khi cho rằng không có quy trình nào khác để đổ lỗi ngoài FS.
Giải pháp (như được áp dụng từ câu trả lời được chấp nhận)
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