#1 Le 17/09/2009, à 11:08
- Elève linuxien
Ecriture dans fichier log [RESOLU]
Bonjour,
Voilà, j'ai créé un fichier qui s"execute depuis un cron. Ce fichier est là pour supprimé des dossier de plus de sept jours. Je voudrais que les dossiers supprimé soient précisés repris dans un fichier de log.
Voici le code :
#!/bin/bash
echo "=================================" >> /root/cron_log_rm_www.log
date >> /root/cron_log_rm_www.log
find /var/www/dossier1/* -depth -type d -a -mtime +7 -exec rm -r {} \; >> /root/cron_log_rm_www.log
find /var/www/dossier2/* -depth -type d -a -mtime +7 -exec rm -r {} \; >> /root/cron_log_rm_www.log
find /var/www/dossier3/* -depth -type d -a -mtime +7 -exec rm -r {} \;>> /root/cron_log_rm_www.log
find /var/www/dossier4/* -depth -type d -a -mtime +7 -exec rm -r {} \; >> /root/cron_log_rm_www.log
find /var/www/dossier5/* -depth -type d -a -mtime +7 -exec rm -r {} \; >> /root/cron_log_rm_www.log
echo "=================================" >> /root/cron_log_rm_www.log
Le problème c'est que dans le fichier log n'apparait que la date :
=================================
Jeudi 17 Septembre 2009, 10:52:32 (UTC +0200)
=================================
Je ne vois pas où se trouve mon erreur.
Merci d'avance pour votre aide.:rolleyes:
Dernière modification par Elève linuxien (Le 17/09/2009, à 13:26)
"Les ordinateurs sont inutiles : ils ne donnent que les réponses."
Pablo Picasso
Hors ligne
#2 Le 17/09/2009, à 11:11
- dominique.fournier
Re : Ecriture dans fichier log [RESOLU]
find est silencieux par defaut.
Je propose :
find /var/www/dossier1/* -depth -type d -a -mtime +7 -ls -delete >> /root/cron_log_rm_www.log
De plus tu pourrais optimiser tes flux en mettant entre parentheses et en renvoyant le flux uniquement de la parenthese
Hors ligne
#3 Le 17/09/2009, à 11:16
- Totor
Re : Ecriture dans fichier log [RESOLU]
il faut préciser à find d'afficher les dossiers supprimer :
#!/bin/bash
exec >> /root/cron_log_rm_www.log
echo "================================="
date
find /var/www/dossier1/ -mindepth 1 -type d -delete -print
find /var/www/dossier2/ -mindepth 1 -type d -delete -print
find /var/www/dossier3/ -mindepth 1 -type d -delete -print
find /var/www/dossier4/ -mindepth 1 -type d -delete -print
echo "================================="
-- Lucid Lynx --
Hors ligne
#4 Le 17/09/2009, à 13:25
- Elève linuxien
Re : Ecriture dans fichier log [RESOLU]
Alors, c'était l'option -print qu'il me manquait :
#!/bin/bash
echo "=================================" >> /root/cron_log_rm_www.log
date >> /root/cron_log_rm_www.log
find /var/www/dossier1/* -depth -type d -a -mtime +7 -exec rm -r {} \; -print >> /root/cron_log_rm_www.log
echo "=================================" >> /root/cron_log_rm_www.log
Et là il m'inscrit le chemin du dossier effacer, exemple avec /var/www/dossier1/toto, le fichier log est le suivant :
=================================
Jeudi 17 Septembre 2009, 10:52:32 (UTC +0200)
/var/www/dossier1/toto
=================================
Merci à Totor et Dominique.fournier
Bon Ubuntu à tous.
"Les ordinateurs sont inutiles : ils ne donnent que les réponses."
Pablo Picasso
Hors ligne
#5 Le 17/09/2009, à 14:18
- Elève linuxien
Re : Ecriture dans fichier log [RESOLU]
Ah si, j'en profite pour vous demandez si il y a une possibilité de nettoyer le contenu du fichier log ?
Je m'explique, le fichier est alimenté tous les jours et je n'ai pas besoin de connaitre ce qui s'est passé il y a trois ans... Donc je voudrais supprimer les inscriptions qui date de plus de 100 jours par exemple.
si vous avez une piste à me donner, je suis preneur.
Merci encore à vous.
"Les ordinateurs sont inutiles : ils ne donnent que les réponses."
Pablo Picasso
Hors ligne
#6 Le 17/09/2009, à 14:48
- FRUiT
Re : Ecriture dans fichier log [RESOLU]
echo "=================================" > /root/cron_log_rm_www.log
En utilisant cette première ligne d'écriture dans le fichier, le contenu sera remplacé à chaque lancement du script. Après pour compter le nombre d'exécutions je laisse répondre des experts
Neon Suite by FRUiT (kde4.6) [url]http://[Merci de relire les règles]/yzm7cee[/url]
"Pour la carotte, le lapin est la plus parfaite incarnation du mal" (R. Sheckley)
clean
Hors ligne
#7 Le 17/09/2009, à 14:52
- Elève linuxien
Re : Ecriture dans fichier log [RESOLU]
FRUiT : Merci de ta réponse, mais là on écrase systématiquement le précédent et de ce fait je n'aurai aucune visibilité même pas à deux jours.
"Les ordinateurs sont inutiles : ils ne donnent que les réponses."
Pablo Picasso
Hors ligne
#8 Le 18/09/2009, à 08:34
- dominique.fournier
Re : Ecriture dans fichier log [RESOLU]
C'est logrotate qui fait ca tres bien : il garde le nombre d'historiques demandes, les compacte si necessaire, relance les services si ils le faut...
il est lance tous les jours par cron. Si tu cree un nouveau fichier de log, cree aussi la configuration pour logrotate.
Hors ligne
#9 Le 18/09/2009, à 09:49
- Elève linuxien
Re : Ecriture dans fichier log [RESOLU]
Ok, merci Dominique. Je penche sur la question.
Bonne Ubuntu à tous !
"Les ordinateurs sont inutiles : ils ne donnent que les réponses."
Pablo Picasso
Hors ligne