Un petit script tout simple qui permet de loguer le résultat d'une commande dans un fichier log. TRES TRES utile lorsque la dite commande est longue et/ou lancée en tâche de fond (commande at, batch et consorts).
Dans mon ancien taf, j'avais créé tout un automatisme qui générait des statistiques sur le fonctionnement du datacenter (plus d'une centaine de machines) à l'aide de ce script et à grand renfort de cron.
Tous les utilisateurs qui doivent pouvoir utiliser le script doivent faire partie du groupe "batches" ... que l'on crée donc :
groupadd batches
usermod -a -G batches laurent
Il ne reste plus qu'a créer les répertoires contrant les logs :
mkdir -p /var/log/batches/logs /var/log/batches/fails
chgrp -R batches /var/log/batches/
chmod -R g+ws /var/log/batches/
Le répertoire /var/log/batches/logs contiendra tous les logs, alors que /var/log/batches/fails ne contiendra que ceux des commandes qui ont échouées.
#!/bin/bash
# Lauch a script (or a command) passed as $1
# and create a log file in $LOGDIR/$1.currenttime
# if LOG is unset. If LOG is set, output will be redirected to this file.
#
# 18/08/2004 L.Faillie Creation
# 08/09/2004 L.Faillie add write access for the group (to let run the
# cleaning job).
# 13/09/2004 L.Faillie handle job failure.
# 04/01/2015 L.Faillie Small changes to set local environment in the script itself
# Adapt to Gentoo
#
# load environment
# where live logs file
LOGDIR='/var/log/batches/logs'
# where to put links about failled jobs
FAILDIR='/var/log/batches/fails'
if [ $# -lt 1 ]
then
echo '*F* Command to launch missing'
exit 1
fi
LOG=${LOG:-${LOGDIR}/$(basename $1).$(date +'%Y%m%d.%H%M')}
SECONDS=0
if $* >${LOG} 2>&1; then
chmod g+w ${LOG}
else
chmod g+w ${LOG}
ln ${LOG} ${FAILDIR};
# chown www ${FAILDIR}/$(basename ${LOG})
fi
printf " -- spent %02d:%02d" $(( $SECONDS/60 )) $(( $SECONDS%60 )) >> ${LOG}
Visitez : Nos sorties Ski et rando |
Copyright Laurent Faillie
2001-2024
N'oubliez pas d'entrer le mot de passe pour voir aussi les photos perso. |
Contactez moi si vous souhaitez réutiliser ces photos et pour les obtenir avec une plus grande résolution. |
Visites durant les 7 derniers jours au total. |
Vous pouvez
laissez un commentaire
sur cette page.