Comment effacer le contenu d'un fichier error.log mais garder le fichier intact


25

Je veux effacer le contenu du fichier error.log (fichier journal des erreurs nginx), mais je ne veux pas réellement supprimer le fichier.

Est-ce possible?

exécuter ubuntu

Réponses:


68

Vous pouvez utiliser ceci:

>error.log

(tapé comme ça - une redirection de sortie vide)

ou

truncate -s0 error.log

@Ignacio: Si le fichier existe déjà, l'un ou l'autre le tronquera. Si le fichier n'existe pas, l'un ou l'autre le créera.
pause jusqu'à nouvel ordre.

Tu as raison, ma mauvaise.
Ignacio Vazquez-Abrams

La dernière option a fonctionné pour moi, pour une raison quelconque, sudo> error.log n'a pas fonctionné pour moi (Ubuntu 12.04)
DavidKonrad

5
@davidkonrad: Vous devez déjà être root pour que la redirection fonctionne, car elle est effectuée avant la sudoprise d'effet. Ou vous pouvez le fairesudo bash -c '>error.log'
pause jusqu'à nouvel ordre.

1
@ divHelper11: Dans ma réponse, je dis que c'est une "redirection de sortie vide". Cela signifie que "rien" n'est envoyé au fichier nommé et que tout contenu existant est remplacé. C'est similaire à echo "some words" > output.txtmais rien ne se passe.
Pause jusqu'à nouvel ordre.

1

Vous confondrez le démon. Effacez le fichier puis envoyez-le SIGHUPà nginx.


SIGHUP? Je ne peux pas fermer nginx, purger le fichier, puis démarrer? Je veux aussi savoir comment effacer le fichier par souci de connaissance.
user27449

Si vous le vouliez, bien sûr. Mais cela perturberait le service.
Ignacio Vazquez-Abrams

Je pense qu'une redirection nulle et une truncatesont atomiques, donc tant qu'aucune recherche n'est en cours (surtout si la seule opération qui se produit est en train de s'ajouter), cela ne devrait pas être perturbateur.
pause jusqu'à nouvel ordre.
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.