MyPurgeLogs v0.05
Par Flyounet le mardi 25 octobre 2005, 08:56 - Lien permanent
Script Shell : Permet la rotation et la purge de Logs.
Un grand nombre de scripts en Perl existent sur Internet (ex : FreshMeat.net). Le problème est que l'on a souvent un script pour la rotation des logs et un autre pour la purge (quand un find ne se ballade pas tout seul dans une crontable, une vague odeur de déjà vue ?!).
Ce petit script a pour but de reconcillier les deux mondes en fournissant un seul script à lancer et un seul fichier de configuration pour tout gérer.
Notes
Ce script n'a pour l'instant été testé que sur AIX avec KSH. Si vous l'avez testé sur d'autres plateformes, n'hésitez pas à me faire un retour.
Utilisation :
Comment utiliser cet script Shell.
- Première nécessité : Un shell digne de ce nom ! (KSH, Bash, Tcsh, Zsh, etc.)
- Deuxième nécessité : Modifier le fichier de configuration.
- Troisième nécessité : Vérifier que la conf n'est pas pouritte (tm)
- Lancement : Exécuter le Shell
C'est peu simpliste, mais c'est totalement ça ! Il n'y a pas de délire de paramétrages à se faire (voir les exemples).
Notes
La TODO Liste est encore pas mal chargée.
Exemples :
Quelques exemples sur la configuration.
Ci-dessous une configuration pour la rotation de logs. On garde 15 jours de Logs de chaque fichier indiqué par FileToWork dans chacun des répertoires /apps/webservers/*/logs/.
# ######################################################## # # Ci dessous paramétrage de base pour les logs apache # # ######################################################## # BEGIN # Les répertoires et fichiers doivent subir une rotation de Logs TypeAction::Rotate # Pourcentage minimale du FS à laisser libre FSMin::20 # Nombre de rotation de rétention de Log LogDay::15 # Liste des répertoires à traiter DirToWork::/apps/webservers/ # Les des sous répertoires de DirToWork à traiter DirToComp::*/logs/ # Liste des fichiers à traiter dans chaque sous répertoire FileToWork::access_log|error_log|access_log_ssl|error_log_ssl|http_plugin.log|http_access|access|error|errors|access_log_sec|error_log_sec|error_sec_log|error.log|access.log|errors|errors.log|access_sec_log|http_error|http_errors END
Ci-dessous une configuration pour la purge de fichier. On garde 1 jours des fichiers identifiés par FileToWork dans chacun des répertoires de DirToWork.
# ######################################################## # # Paramètrage pour les Javacore et HeapDump WebSphere # # ######################################################## # BEGIN # Les répertoires et fichiers doivent subir une rotation de Logs TypeAction::Purge # Nombre de rotation de rétention de Log LogDay::1 # Liste des répertoires à traiter DirToWork::/apps/WebSphere/AppServer5/|/apps/WebSphere/AppServer5b/|/apps/WebSphere/DeploymentManager5/|/apps/WebSphere/DeploymentManager5b/ # Liste des fichiers à traiter dans chaque sous répertoire FileToWork::core|heapdump*|javacore* END
Les deux configuration précédente peuvent être incorporées au sein d'un même fichier de configuration. Tant que les blocs de paramétrages commencent bien par un BEGIN et se terminent par un END.
Bonus :
Une autre façon d'utiliser le script.
Puisque par défaut le script appelle un fichier de configuration (MyPurgeLogs.conf) et que l'on peut avoir envie de faire une purge ou une rotation exceptionnelle. Le script peut prendre en compte un autre fichier de paramètres en ligne de commande.
/apps/WebSphere/MyPurgeLogs.sh /apps/MyConfForCFTdeMerde.conf
Pour avoir une aide succinte :
/apps/WebSphere$ ./MyPurgeLogs.sh -h
MyPurgeLogs.sh [-h] [--version] [--verify] [--FORK] [ Fichier_Config ]
-h ou --help : Avoir une aide.
--version : Affiche le numéro de version du script.
--verify : Vérifie la syntaxe du fichier de conf.
Fichier_Config : Indique le nom d'un fichier de configuration à prendre en compte.
Par défaut le fichier /apps/WebSphere/MyPurgeLogs.conf est utilisé.
--FORK : Permet de lancer le script même si une autre instance tourne.
Il existe des fichiers que vous pouvez utiliser pour contrôler le fonctionnement
du script :
_nopurgelogs : Lorsque ce fichier est présent dans un répertoire, ce dernier n'est
traité par le script. Aucune action n'est effectuée.
_purgelogs.conf : Est un fichier de configuration présent dans un répertoire, cette
configuration est utilisée à la place de celle par défaut.
Notes
Comme l'indique l'aide, des fichiers peuvent modifier le fonctionnement du script lorsqu'ils sont détéctés dans un répertoire (uniquement pour la rotation).
![[_DSC3572] 2008-07-19 12:57:43 Photo Flickr](http://farm4.static.flickr.com/3177/2694777269_2050cbf161_s.jpg)
![[_DSC3571] 2008-07-19 12:57:38 Photo Flickr](http://farm4.static.flickr.com/3219/2694774193_488a9e4231_s.jpg)
![[_DSC3570] 2008-07-19 12:57:36 Photo Flickr](http://farm4.static.flickr.com/3074/2694770993_94366f1328_s.jpg)
![[_DSC3569] 2008-07-19 12:57:35 Photo Flickr](http://farm4.static.flickr.com/3259/2694767807_b0580ae2f9_s.jpg)
![[_DSC3568] 2008-07-19 12:57:24 Photo Flickr](http://farm4.static.flickr.com/3054/2694764513_57c2dab87b_s.jpg)
![[_DSC3567] 2008-07-19 12:57:16 Photo Flickr](http://farm4.static.flickr.com/3182/2694760917_ba2c0ce457_s.jpg)
![[_DSC3566] 2008-07-19 12:57:11 Photo Flickr](http://farm4.static.flickr.com/3094/2695576302_7ba6787b98_s.jpg)
![[_DSC3565] 2008-07-19 12:57:04 Photo Flickr](http://farm4.static.flickr.com/3117/2695572594_0bf7757d27_s.jpg)
![[_DSC3564] 2008-07-19 12:56:55 Photo Flickr](http://farm4.static.flickr.com/3282/2694750469_4112585385_s.jpg)
![[_DSC3563] 2008-07-19 12:56:49 Photo Flickr](http://farm4.static.flickr.com/3257/2694747087_661ea293ec_s.jpg)