Pourquoi Apache refuse-t-il d'écrire dans les fichiers journaux (les ErrorLog
/ CustomLog
ceux) après avoir supprimé manuellement leur contenu?
Il n'écrira plus dans ces fichiers journaux qu'après le redémarrage d'Apache.
pourquoi est-ce le cas? Comment puis-je purger un fichier journal en toute sécurité sans avoir à redémarrer Apache?
J'ai Apache 2.2.14 sur Ubuntu 10.04.
apache-2.2
ubuntu
AtomicFault
la source
la source
logrotate
qui envoie un signal de rechargement / redémarrage approprié à Apache (voir la réponse de Pedro ci-dessous). Nickgrim a expliqué le "pourquoi" de l'arrêt de vos journaux - Apache écrit toujours sur l'ancien inode (qui n'est plus connecté au système de fichiers où que vous puissiez y accéder)Réponses:
Je viens de faire un bref test:
Notez qu'il
vimtest
a un numéro d'inode différent après l'avoir modifié, et est donc en fait un fichier différent (bien qu'avec le même nom que l'ancien fichier).Ainsi, lorsque vous modifiez le fichier avec vim, il supprime l'ancien fichier et en crée un nouveau avec le même nom. Le problème que vous voyez est dû au fait qu'Apache écrit toujours dans l'ancien fichier (supprimé) (vous pouvez le vérifier avec
lsof
).Si vous voulez vraiment tronquer un fichier journal, pensez à
truncate -s 0 /path/to/file.log
(qui semble tronquer sur place)la source
Je recommanderais de forcer la rotation des fichiers journaux d' Apache2 avec:
Si vous regardez
/etc/logrotate.d/apache2
, vous verrez que laApache2
configuration doit être rechargée après avoir supprimé son fichier journal avec:Sur Ubuntu, vous pouvez également faire:
la source