Sur un serveur Linux, je veux réduire la taille d'un fichier journal qui fait plusieurs Go. Couper la moitié supérieure, ou peut-être que le premier million de lignes fonctionnerait.
Cela revient souvent dans les interviews ...
Cherchez-vous à tronquer le fichier sans perturber les processus? L'une des informations du fichier journal est-elle précieuse? Si c'est le cas, j'ai l'habitude de "mettre à zéro" le fichier avec une simple chaîne bash.
: > /var/log/badlogfile
Cela se produit dans des situations où vous pouvez avoir une application qui ne peut pas être redémarrée de manière contrôlée. Disons que c'est une application de trading financier et que le programme ne peut pas être interrompu ou redémarré pendant la journée de trading. Cependant, les fichiers journaux augmentent à un rythme obscène en raison d'un bogue d'application. La troncature des fichiers journaux à l'aide de la méthode ci-dessus ou ci-dessous peut maintenir le système en marche.
Voir également: http://www.cyberciti.biz/faq/truncate-large-text-file-in-unix-linux/
Vous pouvez le mettre dans logrotate, alors il ne deviendra pas hors de contrôle aussi facilement
la source
S'il vous est écrit activement, vous n'avez pas grand-chose à faire en tronquant. Vos seules options sont de vider le fichier (vous pouvez d'abord le copier ailleurs.)
De cette façon, le fichier finit vide mais est toujours le même fichier / inode afin qu'il ne perturbe pas le programme qui se connecte.
la source
Vous pouvez également essayer cat / dev / null> / var / log /. Mais, je dois avertir que / dev / null n'est pas implémenté dans certaines des anciennes versions ...
la source