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"