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 le premier million de lignes, pourrait fonctionner.
Réponses
Trop de publicités?Cela revient souvent dans les entretiens...
Vous cherchez à tronquer le fichier sans perturber les processus ? Les informations contenues dans le fichier journal ont-elles de la valeur ? Si c'est le cas, je "mets à 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 qu'il s'agit d'une application de trading financier et que le programme ne peut pas être arrêté ou redémarré pendant la journée de trading. Cependant, les fichiers journaux augmentent à un rythme effarant en raison d'un bug de l'application. En tronquant les fichiers journaux à l'aide de la méthode ci-dessus ou ci-dessous, le système peut continuer à fonctionner.
Voir aussi : http://www.cyberciti.biz/faq/truncate-large-text-file-in-unix-linux/
S'il est en cours d'écriture, vous n'avez pas grand-chose à faire pour le tronquer. Vos seules options sont de vider le fichier (vous pourriez d'abord le copier ailleurs).
echo "" >/var/log/fileYouWantToEmpty
De cette façon, le fichier est vide, mais il s'agit toujours du même fichier/inode, ce qui ne perturbe pas le programme de journalisation.