Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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. smile


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


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. wink

Bonne Ubuntu à tous !


"Les ordinateurs sont inutiles : ils ne donnent que les réponses."
Pablo Picasso

Hors ligne