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

user27449
fonte

Respostas:

67

Você pode usar isto:

>error.log

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

ou

truncate -s0 error.log
Pausado até novo aviso.
fonte
@ 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.

Ignacio Vazquez-Abrams
fonte
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.