Flyou.net [Dev] : MyPurgeLogs (Script Shell)

Description :

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).

Vous touchez le fond !

Stats (ce site/cette page) : Visites : 15388/15045 - Pages vues : 26810/25743 - Visiteur(s) : 1/1

Page générée en 0.049232006072998s.

Hébergement: Loco-Web. Navigateur: Mozilla/FireFox.

Voir la version de ce module.