( Câu hỏi này liên quan đến một vấn đề tương tự, nhưng nó nói về một tệp nhật ký được xoay.)
Hôm nay tôi nhận được một tin nhắn hệ thống liên quan đến /var
không gian rất thấp .
Như thường lệ, tôi thực hiện các lệnh trong dòng sudo apt-get clean
chỉ cải thiện kịch bản một chút. Sau đó, tôi đã xóa các tệp nhật ký xoay mà một lần nữa cung cấp rất ít cải tiến.
Khi kiểm tra tôi thấy rằng một số tệp nhật ký trong đó /var/log
đã phát triển thành những tệp rất lớn. Cụ thể, ls -lSh /var/log
cho,
total 28G -rw-r----- 1 syslog adm 14G Aug 23 21:56 kern.log -rw-r----- 1 syslog adm 14G Aug 23 21:56 syslog -rw-rw-r-- 1 root utmp 390K Aug 23 21:47 wtmp -rw-r--r-- 1 root root 287K Aug 23 21:42 dpkg.log -rw-rw-r-- 1 root utmp 287K Aug 23 20:43 lastlog
Như chúng ta có thể thấy, hai người đầu tiên là những người vi phạm. Tôi hơi ngạc nhiên tại sao các tập tin lớn như vậy đã không được xoay.
Vậy, tôi nên làm gì? Đơn giản chỉ cần xóa các tập tin và sau đó khởi động lại? Hoặc đi cho một số bước thận trọng hơn?
Tôi đang sử dụng Ubuntu 14.04.
CẬP NHẬT 1
Để bắt đầu, hệ thống chỉ mới vài tháng. Tôi đã phải cài đặt hệ thống từ đầu vài tháng trước sau khi gặp sự cố với đĩa cứng.
Bây giờ, như đã khuyên trong câu trả lời này , trước tiên tôi đã kiểm tra các tệp nhật ký vi phạm bằng cách sử dụng tail
, không có gì bất ngờ ở đó. Sau đó, để kiểm tra sâu hơn, tôi đã thực hiện kịch bản này từ cùng một câu trả lời .
for log in /var/log/{syslog,kern.log}; do
echo "${log} :"
sed -e 's/\[[^]]\+\]//' -e 's/.*[0-9]\{2\}:[0-9]\{2\}:[0-9]\{2\}//' ${log} \
| sort | uniq -c | sort -hr | head -10
done
Quá trình này mất vài giờ. Đầu ra là trong dòng,
/var/log/syslog : 71209229 Rafid-Hamiz-Dell kernel: sda3: rw=1, want=7638104968240336200, limit=1681522688 53929977 Rafid-Hamiz-Dell kernel: attempt to access beyond end of device 17280298 Rafid-Hamiz-Dell kernel: attempt to access beyond end of device 1639 Rafid-Hamiz-Dell kernel: EXT4-fs warning (device sda3): ext4_end_bio:317: I/O error -5 writing to inode 6819258 (offset 0 size 4096 starting block 54763121030042024) <snipped> /var/log/kern.log.1 : 71210257 Rafid-Hamiz-Dell kernel: attempt to access beyond end of device 71209212 Rafid-Hamiz-Dell kernel: sda3: rw=1, want=7638104968240336200, limit=1681522688 1639 Rafid-Hamiz-Dell kernel: EXT4-fs warning (device sda3): ext4_end_bio:317: I/O error -5 writing to inode 6819258 (offset 0 size 4096 starting block 954763121030042024)
( /dev/sda3
là thư mục nhà của tôi. Như chúng ta có thể tìm thấy,
lsblk /dev/sda NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 931.5G 0 disk ├─sda1 8:1 0 122.1G 0 part / ├─sda2 8:2 0 7.6G 0 part [SWAP] └─sda3 8:3 0 801.8G 0 part /home
Tại sao một quá trình sẽ muốn viết vượt quá giới hạn thực sự nằm ngoài phạm vi hiểu biết của tôi. Có lẽ tôi sẽ muốn hỏi một câu hỏi khác trong diễn đàn này nếu điều này tiếp tục ngay cả sau khi cập nhật hệ thống.)
Sau đó, từ câu trả lời này (bạn có thể muốn kiểm tra điều này để hiểu sâu hơn), tôi đã thực hiện,
sudo su -
> kern.log
> syslog
Bây giờ, những tập tin này có kích thước bằng không. Hệ thống đang chạy tốt trước và sau khi khởi động lại.
Tôi sẽ xem các tệp này (cùng với các tệp khác) trong vài ngày tới và báo cáo lại nếu
chúng hoạt động ngoài luồng.
Như một lưu ý cuối cùng, cả hai tệp vi phạm ( kern.log
và syslog
), được đặt thành xoay, khi kiểm tra các tệp (được grep
trợ giúp) bên trong
/etc/logrotate.d/
hiển thị.
CẬP NHẬT 2
Các tập tin nhật ký được thực sự xoay. Có vẻ như kích thước lớn đã đạt được trong một ngày.