Como apagar o conteúdo de um arquivo error.log, mas mantê-lo intacto


25

Quero apagar o conteúdo do arquivo error.log (arquivo de log de erro nginx), mas não quero excluir o arquivo.

Isso é possível?

executando o ubuntu

Respostas:


67

Você pode usar isto:

>error.log

(digitado assim - um redirecionamento de saída vazio)

ou

truncate -s0 error.log

@ Ignacio: Se o arquivo já existir, qualquer um irá truncá-lo. Se o arquivo não existir, será criado.
Pausado até novo aviso.

Você está certo, meu mal.
Ignacio Vazquez-Abrams

A última opção funcionou para mim, por algum motivo sudo> error.log não funcionou para mim (ubuntu 12,04)
davidkonrad

5
@davidkonrad: Você já teria que ser o root para o redirecionamento funcionar, uma vez que é realizado antes de sudoentrar em vigor. Ou você pode fazersudo bash -c '>error.log'
Pausado até novo aviso.

1
@ divHelper11: Na minha resposta, digo que é um "redirecionamento de saída vazio". Isso significa que "nada" está sendo enviado para o arquivo nomeado e substitui qualquer conteúdo existente. É semelhante, echo "some words" > output.txtmas nada está entrando.
Pausado até novo aviso.

1

Você vai confundir o daemon. Apague o arquivo e envie SIGHUPpara o nginx.


SIGHUP? Não consigo desligar o nginx, limpar o arquivo e iniciar? Eu quero saber como apagar o arquivo por causa do conhecimento também.
user27449

Se você quisesse, com certeza. Mas isso interromperia o serviço.
Ignacio Vazquez-Abrams

Eu acho que um redirecionamento nulo e um truncatesão atômicos, portanto, enquanto nenhuma busca estiver em andamento (especialmente se a única operação que está ocorrendo for anexada), isso não deve ser perturbador.
Pausado até novo aviso.
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.