( Esta pergunta lida com um problema semelhante, mas trata de um arquivo de log alternado.)
Hoje recebi uma mensagem do sistema sobre /var
espaço muito baixo .
Como de costume, eu executei os comandos na linha dos sudo apt-get clean
quais melhoraram o cenário apenas um pouco. Em seguida, apaguei os arquivos de log rotacionados, o que novamente proporcionou muito pouca melhoria.
Após a análise, percebo que alguns arquivos de registro /var/log
cresceram muito. Para ser específico, ls -lSh /var/log
dá,
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
Como podemos ver, os dois primeiros são os ofensivos. Estou levemente surpreso por que esses arquivos grandes não foram girados.
Então, o que eu deveria fazer? Simplesmente exclua esses arquivos e depois reinicie? Ou dê alguns passos mais prudentes?
Estou usando o Ubuntu 14.04.
ATUALIZAÇÃO 1
Para começar, o sistema tem apenas vários meses. Eu tive que instalar o sistema do zero alguns meses depois de uma falha no disco rígido.
Agora, como recomendado nesta resposta , verifiquei primeiro os arquivos de log incorretos usando tail
, sem surpresa. Então, para uma inspeção mais profunda, eu executei esse script com a mesma resposta .
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
O processo levou várias horas. A saída estava na linha de,
/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
é o meu diretório pessoal. Como podemos encontrar,
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
Por que um processo deseja escrever além do limite está realmente fora do escopo da minha compreensão. Talvez eu queira fazer uma pergunta diferente neste fórum, se isso continuar mesmo após uma atualização do sistema.)
Então, a partir desta resposta (convém verificar isso para uma compreensão mais profunda), eu executei,
sudo su -
> kern.log
> syslog
Agora, esses arquivos têm tamanho zero. O sistema está funcionando bem antes e depois de uma reinicialização.
Observarei esses arquivos (junto com outros) nos próximos dias e apresentarei um relatório caso
eles se comportem fora de linha.
Como nota final, os arquivos ( kern.log
e syslog
) ofensivos estão definidos para serem rotacionados, como mostra a inspeção dos arquivos ( grep
ajudados) dentro
/etc/logrotate.d/
.
ATUALIZAÇÃO 2
Os arquivos de log são realmente girados. Parece que os tamanhos grandes foram atingidos em um único dia.
fonte
Respostas:
Não. Esvazie-os, mas não o use,
rm
pois isso pode acabar causando um travamento enquanto você digita otouch
comando para recriá-lo.Método mais curto:
Se não for root, será necessário
sudo
. Retirado de outra resposta na UA.ANTES DE FAZER ISSO. Faça um
tail {logfile}
e verifique se há uma razão para eles serem tão grandes. A menos que esse sistema tenha vários anos, não deve haver razão para isso, e corrigir o problema é melhor do que deixar isso continuar.Normalmente, o kern.log e o syslog não devem ser tão grandes. Mas, como eu disse: se esse sistema estiver em funcionamento por anos e anos, pode ser normal e os arquivos precisam ser limpos.
E para impedir que se torne tão grande no futuro: configuração
logrotate
. É bem simples e comprime o arquivo de log quando ele se torna maior que o tamanho que você definiu.Outra coisa: se você não deseja excluir o conteúdo, pode compactar os arquivos, tarando ou compactando-os com zíper. Isso fará com que você acabe com arquivos provavelmente 10% do que são agora. Ou seja, se ainda houver espaço no disco para fazer isso.
fonte
wtmp: Command not found
Que pacote é esse?>
era um prompt e tentou "lastlog" e funcionou, então eu assumi que eu entendi corretamente: PProvavelmente vale a pena tentar estabelecer o que está preenchendo o (s) log (s) - simplesmente examinando-os visualmente usando o comando
less
outail
ou se as linhas ofensivas estiverem profundamente enterradas para ver facilmente o que está acontecendo, algo como
(nota: isso pode levar algum tempo, dados esses arquivos grandes), que tentam remover os registros de data e hora e contar as mensagens que ocorrem com mais frequência.
fonte
Meu método para arquivos de log limpos do sistema é esse. As etapas 1 e 2 são opcionais, mas às vezes você precisa verificar logs antigos e o backup às vezes é útil. ;-)
Opcional: Copiar arquivo de log
Opcional: use Gzip na cópia do log
Use / dev / null para arquivo limpo
E usamos para esses logs (apenas em vários servidores) o logrotate e a execução semanal pelo script cron, que todos os arquivos com * .1 (ou rotacionados a seguir) são compactados pelo gzip.
fonte
Instalei o Ubuntu 16.04 hoje e notei o mesmo problema. No entanto, eu corrigi isso com o busybox-syslogd. Sim! Acabei de instalar esse pacote e o problema foi resolvido. :)
Depois de instalar esse pacote, redefina
syslog
ekern.log
:Espero que esta solução simples seja útil para outras pessoas ao redor.
fonte