Le Dimanche 02 Décembre 2001 13:00, Stéphane Salès - le_sage a écrit :

> moi je serais preneur ;)
Voici le script de sauvegarde de fichiers log., copie de l'article de 
Frédéric Mazué de "LINUX+" n°9 de Novembre 2000.
Tout d'abord, créer un fichier qui va lister les fichiers de log que nous 
voulons "alléger" et que nous allons appeler /etc/cleantab.
Pour cela utilisez l'éditeur de votre choix (moi c'est vi)
et listez les fichiers suivants (vous pouvez y mettre ceux que vous voulez, 
ce choix est indicatif):
/var/log/boot.log
/var/log/syslog
/var/log/messages
/home/serge/.bash_history
/root/.bash_history
Enfin, tous les fichiers qui auraient tendance à grossir de manière anormale 
et qui vous gènent. Comme on fait un listing, ce fichier est modifiable à 
tout moment.
Maintenant, nous allons créer l'exécutable qui va nous permettre de ne 
conserver que les 200, 100 50 dernières lignes de ces fichiers (à vous de 
mettre la valeur que vous voulez.
Ce fichier vérifiera l'existence du fichier /etc/cleantab et si ce-dernier 
existe, il créera un fichier temporaire . 
Ensuite, avec l'utilitaire "awk" il isole chaque entrée de la table, avec la 
boucle "for" il traite toutes les entrées et à l'intérieur de la boucle avec 
la commande "tail", il conserve le xx dernières lignes de chaque fichier. 
dans le fichier temporaire créé. La commande "cat" réinjecte lesdites lignes 
dans le fichier original provoquant de fait l'effacement du contenu originel 
et ne laissant que les xx dernières lignes.
Ensuite, on efface le fichier temporaire.
---------------------------------------------------------------------------
#! /bin/bash
# d'abord, s'assurer que la cleantab existe

if [ ! -e /etc/cleantab ]
then
        exit 0
fi

# créer le fichier temporaire qui servira de tampon

temporaire=$(mktemp /tmp/cleantemp.XXXXXX)

# lire les entrées de la cleantab
#conserver les xx dernières lignes de chaque entére

for fichier in $(awk ' { print $0 } ' /etc/cleantab)
do
        tail --lines=xx $fichier >$temporaire
        cat <$temporaire >$fichier
done

#effacer le fichier temporaire

rm -f $temporaire

exit 0
--------------------------------------------------------------------------------
ce fichier on l'enregistre sous le nom de cleaner, il doit appartenir à root
chown root.root cleaner
on le rend exécutable
chmod 744 cleaner
on le place dans /etc/cron.monthly (gébéralement, ça suffit ou dans 
/etc/cron.weekly (si on veut qu'il se déclenche toutes les semaines)
Ensuite nettoyer la config de cron 
crontab -u root -r
et enfin réinitialisation du démon cron prenant en charge la nouvelle 
commande cleaner
crontab -u root /etc/crontab
Voilà, pour vérifier vos commandes, entrainez-vous sur des copies de fichiers 
et une fois que vous êtes sûr de vous alors go!
A ciao, serge


-- 
T'as le bonjour de LEO!
http://leoloden.free.fr

Vous souhaitez acquerir votre Pack ou des Services MandrakeSoft?
Rendez-vous sur "http://www.mandrakestore.com";

Reply via email to