2010-09-24 13 views
0

J'ai apache fonctionnant sur différents serveurs, je voudrais rsync journaux de journal sur un serveur centralisé sur une base quotidienne. Je peux utiliser le journal de rotation pour créer un fichier journal pour un jour et le mettre dans un répertoire qui est rsync'd au serveur central. Cependant, est-il possible de définir le nom du fichier journal avec une désignation pouvant être lue à partir d'un fichier externe?Comment définir le nom du fichier de logrotation d'Apache à l'aide d'un script shell externe

La documentation dit que je peux faire ce qui suit, CustomLog "|/usr/sbin/rotatelogs -f/var/log/httpd/log 86400" commune

J'ai un fichier de configuration externe qui a une désignation champ que je peux analyser à partir de la ligne de commande pour obtenir sa valeur, est-il possible de l'ajouter quand le nom du fichier est défini. Je suis curieux de savoir si cette désignation peut être transmise à Apache en tant que variable d'environnement et l'utiliser dans la configuration de Apache. Est-ce possible?

Merci encore une fois les gars!

Répondre

1

Je pense que vous pouvez le faire en configurant Apache et logrotate. Logrotate est configuré par des scripts dans le répertoire /etc/logrotate.d/. Par exemple, mon fichier de configuration par défaut apache logrotate est: /etc/logrotate.d/httpd

 
/var/log/httpd/*log { 
    missingok 
    notifempty 
    sharedscripts 
    postrotate 
    /bin/kill -HUP `cat /var/run/httpd.pid 2>/dev/null` 2> /dev/null || true 
    endscript 
} 

Vérifiez les pages de manuel logrotate pour la commande postrotate. Pendant la phase postrotate, vous pouvez renommer le fichier journal et le placer quelque part pour être récupéré par rsync.

+0

Awesome matie, va faire un essai et vous le faire savoir. Cheers – opensourcegeek

+0

Mes serveurs n'ont pas encore installé de logrotate et mon ami a suggéré que c'était à cause des dépendances complexes que nous n'avions pas construites en premier lieu. Je ne l'ai pas examiné de près, y a-t-il une alternative pour logrotate avec moins de dépendances - j'en doute? Sinon, je pourrais écrire moi-même quelque chose que je n'aime pas parce que je réinvente la roue. Merci! – opensourcegeek