( To pytanie dotyczy podobnego problemu, ale mówi o obróconym pliku dziennika).
Dzisiaj dostałem komunikat systemowy dotyczący bardzo małej /var
przestrzeni.
Jak zwykle wykonałem polecenia w linii, sudo apt-get clean
która tylko nieznacznie poprawiła scenariusz. Następnie usunąłem obrócone pliki dziennika, co ponownie zapewniło bardzo niewielką poprawę.
Po zbadaniu stwierdzam, że niektóre pliki dziennika /var/log
urosły do bardzo dużych. Mówiąc konkretnie, ls -lSh /var/log
daje
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
Jak widzimy, pierwsze dwa to obrażające. Jestem lekko zaskoczony, dlaczego tak duże pliki nie zostały obrócone.
Więc co powinienem zrobić? Po prostu usuń te pliki, a następnie uruchom ponownie? A może pójść po bardziej rozważne kroki?
Używam Ubuntu 14.04.
AKTUALIZACJA 1
Na początek system ma zaledwie kilka miesięcy. Musiałem zainstalować system od zera kilka miesięcy temu po awarii dysku twardego.
Teraz, jak wskazano w tej odpowiedzi , najpierw sprawdziłem za pomocą szkodliwych plików dziennika tail
, nie ma w tym nic dziwnego. Następnie, dla głębszej kontroli, wykonałem ten skrypt z tej samej odpowiedzi .
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
Proces ten zajął kilka godzin. Dane wyjściowe były w linii,
/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
to mój katalog domowy. Jak możemy znaleźć,
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
Dlaczego proces będzie chciał pisać poza limitem, tak naprawdę nie mieści się w moim rozumieniu. Być może będę chciał zadać inne pytanie na tym forum, jeśli będzie to trwało nawet po aktualizacji systemu).
Następnie z tej odpowiedzi (może chcesz sprawdzić to do głębszego zrozumienia), I wykonany,
sudo su -
> kern.log
> syslog
Teraz te pliki mają zero rozmiarów. System działa dobrze przed ponownym uruchomieniem i po nim.
Będę oglądać te pliki (wraz z innymi) w ciągu kilku najbliższych dni i zgłaszam się, jeśli
zachowują się poza linią.
Na koniec, oba obraźliwe pliki ( kern.log
i syslog
), są ustawione do obrócenia, ponieważ inspekcja plików ( grep
pomogła) w
/etc/logrotate.d/
pokazach.
AKTUALIZACJA 2
Pliki dziennika są faktycznie obracane. Wygląda na to, że duże rozmiary zostały osiągnięte jednego dnia.