(Этот вопрос имеет дело с аналогичной проблемой, но в ней говорится о повернутом файле журнала.)
Сегодня я получил системное сообщение об очень низком /var
пространство.
Как обычно, я выполнил команды в строке sudo apt-get clean
что лишь незначительно улучшило сценарий. Затем я удалил повернутые файлы журналов, что снова дало очень незначительное улучшение.
После проверки я обнаружил, что некоторые файлы журналов в /var/log
вырос до очень огромных размеров. Чтобы быть конкретным, ls -lSh /var/log
дает,
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
Как мы можем видеть, первые два являются оскорбительными. Я слегка удивлен, почему такие большие файлы не были повернуты.
Итак, что же мне делать? Просто удалите эти файлы, а затем перезагрузитесь? Или пойти на какие-то более благоразумные шаги?
Я использую Ubuntu 14.04.
ОБНОВЛЕНИЕ 1
Начнем с того, что системе всего несколько месяцев. Пару месяцев назад мне пришлось устанавливать систему с нуля после сбоя жесткого диска.
Теперь, как было рекомендовано в этот ответ, Я сначала проверил файлы журнала нарушений с помощью tail
В этом нет ничего удивительного. Затем, для более глубокой проверки, я выполнил этот скрипт из тот же ответ.
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 -10done
Этот процесс занял несколько часов. Результат был в строке,
/var/log/syslog :71209229 Rafid-Hamiz-Dell kernel: sda3: rw=1, want=7638104968240336200, limit=168152268853929977 Rafid-Hamiz-Dell kernel: attempt to access beyond end of device17280298 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 device71209212 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
это мой домашний каталог. Как мы можем найти,
lsblk /dev/sdaNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTsda 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
Почему процесс захочет писать сверх предела, на самом деле выходит за рамки моего понимания. Возможно, я захочу задать другой вопрос на этом форуме, если это будет продолжаться даже после обновления системы.)
Затем, из этот ответ (возможно, вы захотите проверить этот для более глубокого понимания), я выполнил,
sudo su -> kern.log> syslog
Теперь эти файлы имеют нулевой размер. Система работает нормально до и после перезагрузки.
Я просмотрю эти файлы (вместе с другими) в ближайшие несколько дней и сообщу об этом, если
они ведут себя не по правилам.
В качестве последнего замечания, оба файла-нарушителя (kern.log
и syslog
), настроены на поворот, как проверка файлов (grep
помогло) внутри /etc/logrotate.d/
показывать.
ОБНОВЛЕНИЕ 2
Файлы журналов фактически вращаются. Похоже, что большие размеры были достигнуты за один день.