92 votes

Existe-t-il un moyen approprié d'effacer les journaux ?

Je me demandais s'il y avait une façon correcte d'effacer les logs en général ?

Je suis nouveau sur Ubuntu et j'essaie de configurer Postfix. Le journal en question est /var/log/mail.log . Je me demandais s'il y avait une façon correcte de l'effacer, plutôt que d'aller dans le journal, de supprimer toutes les lignes et de le sauvegarder. Je trouve que parfois les erreurs ne sont pas écrites immédiatement après avoir effacé le journal et l'avoir sauvegardé.

Remarque : j'ai des difficultés à configurer Postfix et j'essaie de faciliter la lecture des journaux en espérant que cela puisse m'aider, au lieu d'avoir à faire défiler les pages jusqu'en bas.

3 votes

Si vous voulez juste voir la fin du fichier alors queue est votre ami. tail /var/log/mail.log pour afficher les 5 dernières lignes. tail -f /var/log/mail.log pour voir toutes les lignes écrites à la fin du fichier.

0 votes

4voto

cyphun Points 53

Écrasement de contenu court et compatible : : > /dest/file

Mais il y a aussi l'appel système truncate(2) et l'outil correspondant en espace utilisateur. truncate sur de nombreux *NIX'es.

1voto

ghm1014 Points 944

Si vous souhaitez conserver le fichier avant de le nettoyer, vous pouvez le faire :

cp /var/log/mail.log /var/log/mail.log.1 && echo -n "" > /var/log/mail.log

Si vous voulez rechercher un texte ou un courriel spécifique dans le journal, vous pouvez utiliser grep. Si vous souhaitez conserver des graphiques sur l'utilisation du courrier électronique, vous pouvez utiliser AWStats.

1voto

Ahmad Awais Points 111

Voici comment je procède, et c'est juste pour NGINX, vous pouvez enlever cela pour que cela fonctionne sur tous les fichiers journaux.

# Clear nginx logs.
# @usage delnginxlogs
function delnginxlogs() {
  echo "---------------   Clearing logs... ---------------"

  # Clear logs.
  for i in /var/log/nginx/*; do cat /dev/null > $i; done

  echo "---------------   Deleting .gz log files... ---------------"

  # Delete .gz files.
  find /var/log/nginx -type f -regex ".*\.gz$" -delete

  echo "---------------  DONE: NGINX logs cleared ... ---------------"
}

-2voto

Cagey Points 131

cat /dev/null > /path/to/logfile

Cela fonctionne pour moi

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X