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";

Répondre à