Je me demandais s'il y avait un moyen approprié pour effacer les journaux 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 manière correcte de l'effacer, plutôt que de me laisser y effacer toutes les lignes et de la sauvegarder. Je constate que, parfois, les erreurs ne sont pas écrites immédiatement après que j'ai effacé le journal et que je l'ai sauvegardé.
Note latérale: Je ne parviens pas à configurer Postfix et j'essaie de faciliter la lecture des journaux en espérant que cela puisse m'aider au lieu de devoir faire défiler l'écran au fond.
Réponses:
Vous pouvez utiliser:
Cela tronquerait le journal sans que vous ayez à modifier le fichier. C'est aussi un moyen fiable de récupérer l'espace. Parfois, les gens commettent l'erreur d'utiliser rm dans le journal, puis de recréer le nom de fichier. Si un autre processus a ouvert le fichier, vous ne récupérez pas d'espace avant que ce processus ne ferme sa gestion et vous pouvez gâcher ses autorisations.
De même, si vous consultez le contenu du journal, vous pouvez utiliser la
tailcommande suivante:
Ctrl-C va rompre le tailing.
la source
/bin/csh(commun pour FreeBSD) sauverait ceci avec "Invalid null command", pendant ce temps
zsh(remplacement populaire pour
bash) attendrait EOF. Voir serverfault.com/a/381380/67675
>syntaxe dans crontab n'est pas en cours d'exécution car il se peut qu'il ne la reconnaisse pas comme une syntaxe
Oui, il existe un moyen approprié: vous n'effacez pas les journaux du tout. Vous les faites pivoter . La rotation implique la commutation de la sortie du journal dans un nouveau fichier, sous le même nom, avec les N fichiers journaux précédents conservés sous un ensemble de N noms de fichiers liés.
La façon dont on fait pivoter les journaux dépend de la façon dont on les écrit en premier lieu. C'est un point souvent négligé. Certaines des réponses ici abordent au moins le problème, en mentionnant que certains programmes de journalisation conservent un descripteur de fichier ouvert pour le fichier journal. La suppression du fichier ne libérera donc pas l'espace, voire ne basculera même pas la sortie vers un nouveau fichier journal.
Si le programme qui écrit le fichier journal
multilogprovient du
daemontoolspackage , par exemple, vous ne faites absolument rien pour faire pivoter les journaux - pas de scripts manuels, pas de
crontravaux. Indiquez simplement
multilogque la sortie du journal se trouve dans un répertoire et il conservera lui-même un ensemble de N fichiers journaux automatiquement pivotés et dont la taille est limitée, dans ce répertoire.
Si le programme écrivant les fichiers journaux
svlogdprovient du
runitpackage , il en va pratiquement de même pour un autre exemple. Vous ne faites rien du tout sauf de pointer l'outil vers un répertoire. Il gérera lui-même un ensemble de N fichiers journaux soumis à une rotation et à une taille automatiquement dans ce répertoire.
Si vous utilisez
rsyslogpour écrire des fichiers journaux, vous pouvez indiquer au programme de journalisation de s'arrêter lorsque le fichier journal atteint une certaine taille et d'exécuter un script . Vous devez écrire le contenu du script pour renommer le fichier journal et supprimer les anciens fichiers journaux en fonction des contraintes de taille totale, mais au moins le programme de journalisation a fermé le fichier et mis en pause l'écriture du journal pendant que cela se produit.
L'ancienne
syslogdméthode de rotation des journaux, encore attendue par les programmes de journalisation tels que syslog-ng et illustrée par des outils tels que ceux
logrotatementionnés
djangofandans une autre réponse ici, est un peu plus aléatoire. L'un d'eux exécute un
crontravail qui renomme périodiquement les fichiers journaux et redémarre le démon de journalisation (en utilisant le superviseur de démon sous lequel il est exécuté). Le problème avec ceci, bien sûr, est qu'il n'impose pas de limite de taille globale. Pendant les semaines lentes, on peut obtenir N très petits fichiers journaux quotidiens, tandis que les jours chargés, on peut obtenir 1 très gros fichier journal dépassant largement la taille limite.
Voilà pourquoi plus tard et de meilleurs outils comme
multiloget
svlogdont des options de configuration de la taille de fichier et en fait vérifier le fichier journal se tailles, bien sûr. Le monde a appris que l'interrogation des journaux selon un calendrier comportant des
crontravaux, voire un
logrotatedémon, laisse les fenêtres invisibles pour la taille, et qu'il s'agit du lieu approprié pour effectuer ces vérifications et pour appliquer de façon aussi stricte les limites de taille définies par l'administrateur les fichiers journaux n'avalent jamais la partition sur laquelle ils sont, c'est dans le programme qui écrit réellement les fichiers.
la source
template(name="DYNmail" type="string" string="/var/log/%$YEAR%/%$MONTH%/%$DAY%/mail.log")directive, suivie d'un
if ($syslogfacility-text == 'mail') then -?DYNmail;TraditionalFormat. De cette manière, la rotation des journaux n'est tout simplement pas un problème, du moins quand un fichier par jour est acceptable. Il existe
$HOURégalement des volumes de journaux très élevés (nécessitant plusieurs rotations par jour) .
Vous pouvez utiliser cela aussi ..
Ici, tous les fichiers journaux dans / opt / package / logs deviendront vides.
la source
Oui, il existe un outil pour Linux appelé LogRotate .
la source
Si vous effacez le journal pour libérer de l'espace, vous pouvez lui adresser la commande / dev / null, sans interrompre l'écriture des programmes. Ne les supprimez jamais! certains logiciels peuvent se plaindre en arrêtant de travailler ou en ignorant complètement le journal jusqu'au prochain redémarrage
la source
for i in $(find /var/log -type f); do cat /dev/null > $i; done
Écrasement de contenu court et compatible:
: > /dest/file
Mais il y a aussi un appel système truncate (2) et l'outil correspondant d'espace utilisateur
truncatesur beaucoup de * NIX'es.
la source
Si vous souhaitez conserver le fichier avant de le nettoyer, vous pouvez effectuer les opérations suivantes:
Si vous souhaitez rechercher un texte ou un e-mail spécifique dans le journal, vous pouvez utiliser grep. Si vous souhaitez conserver des graphiques sur l'utilisation du courrier, vous pouvez utiliser AWStats.
la source
Voici comment je le fais, et ceci est juste pour NGINX, vous pouvez le supprimer pour le faire fonctionner sur tous les fichiers journaux.
la source
Travaille pour moi
la source