Où sommes nous ?

Retour

launch

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.

Installation

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.

Le script

#!/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}

launch

Visitez :
La liste de nos voyages
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 Nombre de visites au total.

Vous pouvez laissez un commentaire sur cette page.