Voici un petit billet que j’aurais pu intituler : Je découvre la roue.
Je cherchais tout bêtement une meilleure solution pour gérer la création de logs lié à 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’entends 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 sûr de ne rien oublier et ça avec seulement 2 parenthèses.