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"