Il y a 389 articles et 19 utilisateurs inscrits (ce bandeau est défini dans MediaWiki:Sitenotice)
Script de rotation de log
Déprécié - Ne pas utiliser
VOir : http://mw.ajlsm.com/wiki/Rotation_des_logs_tomcat_et_Pleade
Utilité du script
Le script va venir s’exécuter à une heure précisé chaque jour, sur les fichiers de log de Pleade et Tomcat et son but est de compresser (en TAR GZ) les fichiers datant par exemple de plus d'une semaine. Ensuite, supprimer l'ensemble des fichiers datant par exemple de plus d'un mois.
Installation du script
Version de java nécessaire : ≥7
Les sources java du script se trouvent sur Mirador et plus précisément ici : /home/intra-ajlsm/script/script-rotation-log/
Il faut récupérer l'ensemble du dossier "script-rotation-log/" puis ensuite compiler les sources java afin de les rendre exécutables, il faut utiliser cette commande pour dela :
$ javac -cp /home/intra-ajlsm/script/script-rotation-log/lib/commons-compress-1.20.jar:/home/intra-ajlsm/script/script-rotation-log/lib/commons-io-2.8.0.jar:/home/intra-ajlsm/script/script-rotation-log/lib/commons-cli-1.5.0/commons-cli-1.5.0.jar /home/intra-ajlsm/script/script-rotation-log/src/script/com/ajlsm/Script.java
avec donc toutes les librairies, séparées à chaque fois par ':', dont les sources java ont besoins et ce après le "-cp" et ensuite on a le chemin vers fichier java du script.
Les instructions vont s’exécuter avec crontab, qui est associé à un utilisateur (comme par exemple intra-ajlsm) et qui peuvent être changées avec la commande :
$ crontab -e
Les instructions à copier-coller dans le crontab se trouvent ici : /home/intra-ajlsm/script/script-rotation-log/script.sh
Il faut ensuite les adapter comment on le souhaite en suivant les explications du script.
- Voir "Explication du script" pour plus de détails.[1]
Explication du script
Voici un exemple de script que l'on peut trouver :
# Lancement du script de rotation de log
55 5 * * * java -cp /home/intra-ajlsm/script/script-rotation-log/lib/commons-compress-1.20.jar:/home/intra-ajlsm/script/script-rotation-log/lib/commons-io-2.8.0.jar:/home/intra-ajlsm/script/script-rotation-log/lib/commons-cli-1.5.0/commons-cli-1.5.0.jar /home/intra-ajlsm/script/script-rotation-log/src/script/com/ajlsm/Script.java -s "/home/intra-ajlsm/pleades/pleade/WEB-INF/logs/" -jc 7 -js 30
55 5 * * * java -cp /home/intra-ajlsm/script/script-rotation-log/lib/commons-compress-1.20.jar:/home/intra-ajlsm/script/script-rotation-log/lib/commons-io-2.8.0.jar:/home/intra-ajlsm/script/script-rotation-log/lib/commons-cli-1.5.0/commons-cli-1.5.0.jar /home/intra-ajlsm/script/script-rotation-log/src/script/com/ajlsm/Script.java -s "/opt/tomcat7/logs" -jc 7 -js 30
# Instruction de redémarrage le matin
0 6 * * * sh /home/ajlsm/tomcats/preprod/bin/shutdown.sh -force && rm -rf /home/ajlsm/tomcats/preprod/work/* /home/ajlsm/tomcats/preprod/temp/* /home/ajlsm/tomcats/preprod/bin/catalina.pid && sh /home/ajlsm/tomcats/preprod/bin/startup.sh
1 6 * * * sh /home/ajlsm/tomcats/slecture/bin/shutdown.sh -force && rm -rf /home/ajlsm/tomcats/slecture/work/* /home/ajlsm/tomcats/slecture/temp/* /home/ajlsm/tomcats/slecture/bin/catalina.pid && sh /home/ajlsm/tomcats/slecture/bin/startup.sh
2 6 * * * sh /home/ajlsm/tomcats/internet/bin/shutdown.sh -force && rm -rf /home/ajlsm/tomcats/internet/work/* /home/ajlsm/tomcats/internet/temp/* /home/ajlsm/tomcats/internet/bin/catalina.pid && sh /home/ajlsm/tomcats/internet/bin/startup.sh
- Tout d'abord, pour chaque commande à exécuter, on a au début :
55 5 * * *
Les deux nombres peuvent varier et sont respectivement les minutes et l'heure à laquelle on veut que la commande s’exécute.
- Ensuite, pour la partie "Lancement du script de rotation de log", la commande exécute le code java, on aura une ligne pour chaque dossier de logs.
- Voir "Paramètres du code java" pour plus d'explication sur les paramètres.[[1]]
- Enfin, pour la partie "Instruction de redémarrage le matin" :
On a une ligne pour chaque instance de Tomcat à redémarrer.
Paramètres du code java
Afin de s’exécuter, le script à besoin de renseigner au code java certains paramètres, dans le crontab, comme ici :
java -cp /home/intra-ajlsm/script/script-rotation-log/lib/commons-compress-1.20.jar:/home/intra-ajlsm/script/script-rotation-log/lib/commons-io-2.8.0.jar:/home/intra-ajlsm/script/script-rotation-log/lib/commons-cli-1.5.0/commons-cli-1.5.0.jar /home/intra-ajlsm/script/script-rotation-log/src/script/com/ajlsm/Script.java -s "/home/intra-ajlsm/pleades/pleade/WEB-INF/logs/" -jc 7 -js 30
On a donc :
- -cp : Le chemin vers chaque librairie dont le script a besoin séparés à chaque de ":" avec toute suite après, le chemin vers le script à exécuter
- -s : Le chemin des sources à traiter
- -jc : Représente le nombre de jours avant de compresser les logs
- -js : Représente le nombre de jours avant de supprimer les logs