Os arquivos de log estão ocupando muito espaço e não consigo excluir \ desmarque-os

4

Depois de usar o Ubuntu por 2,5 meses, meu diretório / var alcançou cerca de 37 GB ou RAM enquanto meu diretório / é todo 50 GB ou RAM e o restante espaço é para meu /home .

Descobri que os arquivos a seguir estão ocupando muito espaço em /var/log

-rw-r----- 1 syslog            adm   14G Feb  2 07:46 kern.log.1
-rw-r----- 1 syslog            adm   13G Feb  2 07:46 ufw.log.1
-rw-r----- 1 syslog            adm  5.9G Feb  2 07:46 syslog.1
-rw-r----- 1 syslog            adm  451M Feb  2 23:53 syslog
-rw-r----- 1 syslog            adm  451M Feb  2 23:53 kern.log
-rw-r----- 1 syslog            adm  441M Feb  2 23:51 ufw.log

Pergunta secundária, o que é syslog e adm ?!

Vendo ufw , verifiquei sua configuração

$ sudo ufw status verbose
Status: active
Logging: on (full) <<<<<

Então, defino o registro para baixo

$sudo ufw logging low

Eu li que o logrotate deve manipular o log rolando, mas a configuração não parece lidar com o diretório /var/log por padrão.

Este é o meu /etc/logrotate.conf conteúdo do arquivo

$ cat /etc/logrotate.conf 
# see "man logrotate" for details
# rotate log files weekly
weekly

# keep 4 weeks worth of backlogs
rotate 4

# create new (empty) log files after rotating old ones
create

# uncomment this if you want your log files compressed
#compress

# packages drop log rotation information into this directory
include /etc/logrotate.d

# no packages own wtmp, or btmp -- we'll rotate them here
/var/log/wtmp {
    missingok
    monthly
    create 0664 root utmp
    rotate 1
}

/var/log/btmp {
    missingok
    monthly
    create 0660 root utmp
    rotate 1
}

# system-specific logs may be configured here

Eu tentei excluir o log-file-name.log.digit (ou seja, kernel.log.1 , ufw.log.1 , whatever.log.0 ), mas não consegui. Eu tentei sudo echo '' > kernel.log.1 mas falhei também. Sempre diz

$ sudo echo '' > kern.log.1 
bash: kern.log.1: Permission denied

Reiniciar também não ajudou. O diretório logs não foi limpo (eu pensei que o linux limpa todos os logs quando ele é reiniciado, obviamente estou errado), e eu ainda não consegui limpar \ delete os logs de menções.

Como posso limpar esses registros e garantir que nunca mais enfrente essa situação?

Usando o Ubuntu 13.10

Resposta

sudo rm /var/log/*.1

Mas eu suspeito que o que tornou meu comando faile é que tentei fazer a mesma coisa enquanto estou dentro do diretório /var/log (ou seja, pwd = /var/log , então executando sudo rm kernel.1.log ). Se alguém enfrentar a mesma situação, tente remover os arquivos * .1 enquanto estiver no diretório /var/log (por exemplo, cd /var/log;sudo rm*.1 ) e relatar os resultados. Obrigado.

    
por Muhammad Gelbana 02.02.2014 / 23:03

2 respostas

6

Seus logs atuais são bons, ainda assim, aqueles sem .1 . Isso é bom e você pode removê-lo com:

sudo rm /var/log/*.1

Agora você comanda não funciona por causa disso:

sudo 'Everything here runs as root' > Everything here run as user

Então, se você quiser fazer o que tentou, o correto seria:

sudo sh -c "echo '' > kern.log.1"

Isso ocorre porque o pipe abre um shell com o usuário atual.

    
por Braiam 03.02.2014 / 01:46
-1

Você pode truncar logs sem excluir por

cat /dev/null > file.log

Mas o log de backup e arquivamento antes de executar é útil.

    
por zorbon.cz 12.10.2014 / 18:23

Tags