Voici un petit billet que j’aurai pu intituler : Je découvre la roue.
Je cherchais tout bêtement une meilleurs solution pour gérer la créations de logs lié a l’exécution de mes scripts. Prenons par exemple un script qui change les droits de la partition /usr et qui désactive l’USB. La problématique est simple : je veux voir à l’écran l’exécution du script mais aussi tout conserver en log.
Jusqu’à présent je faisais quelque chose dans ce gout là :
#!/bin/bash
LOG=/var/log/secuFS.log
echo -n « Passage de /usr en ro » | tee -a $LOG
mount -o remount, ro /usr | tee -a $LOG
echo -n « Désactivation de l’USB » | tee -a $LOG
modprobe -r usb-storage | tee -a $LOG
exit 1
Burk que c’est moche, chaque ligne doit être paramétrée avec | tee -a $LOG. J’entend d’ici mes petits camarades dev se moquer de moi, en me traitant de mangeur de chips. Maintenant si je m’arrète 30 seconde pour réfléchir je pourrais faire quelque chose dans ce gout là :
#!/bin/bash
LOG=/var/log/secuFS.log
(
echo -n « Passage de /usr en ro »
mount -o remount, ro /usr
echo -n « Désactivation de l’USB »
modprobe -r USB
) 2>&1 | tee -a $LOG
exit 1
J’ai gagné en lisibilité, en taille, et je suis sur de ne rien oublier et ça avec seulement 2 parenthèses.