web-dev-qa-db-fra.com

Comment puis-je limiter la taille du fichier access_log d'Apache et le nombre de journaux archivés qu'il conserve?

Le fichier access_log d'Apache se transforme en une copie archivée d'environ 1 Go tous les quelques jours. Où sont les paramètres pour contrôler cela? J'aimerais pouvoir contrôler à la fois la taille maximale et le nombre de journaux archivés qu'il conserve. Est-ce que cela fait partie de la configuration d'Apache ou dois-je écrire des tâches cron (et autres) pour gérer cela? Je cours httpd pré-fourré.

18
T. Brian Jones

Sur la plupart des distributions Linux, le système est configuré pour exécuter logrotate quotidiennement. Vous ne le verrez pas dans la crontab pour root ou pour un utilisateur particulier.

Il est facile de changer la façon dont il gère les fichiers journaux. Sur mon serveur Ubuntu, le fichier /etc/logrotate.conf a les paramètres suivants:

# rotate log files weekly
weekly

# keep 4 weeks worth of backlogs
rotate 4

# create new (empty) log files after rotating old ones
create

# uncomment this if you want your log files compressed
#compress

[etc.]

Et, vous pouvez regarder dans le répertoire /etc/logrotate.d/ pour voir les paramètres de répertoires et d'applications spécifiques.

18
Dogweather

J'utiliserais rotatelogs, un outil situé dans le répertoire Apache bin.

Voir http://httpd.Apache.org/docs/current/programs/rotatelogs.html pour plus d'informations et d'exemples. Il a l'avantage d'exister sur mon système HP-UX.

Ou, comme mentionné précédemment, vous pouvez utiliser l'outil logrotate fourni avec la plupart des distributions.

3
Gabriel Hautclocq

La méthode habituelle consiste à exécuter logrotate à partir d'un travail cron, qui permet de couper, de dés, de compresser, de renommer, de conserver le dernier n et la plupart des autres éléments souhaités. (Je pense que la plupart des distributions l'installent par défaut.)

0
Ulrich Schwarz