supprimer fichiers logs auto

2007-06-03 Par sujet Dexinou
Bonjour,

Je cherche la façon de supprimer les fichiers logs avec l’extension .gz qui
se trouvent dans /var/log automatiquement à un intervalle de 30 jours.

Comment faire ? via cron ou autre ?

Comme je suis pas très caller en programmation cron je demande votre aide.

 

D’avance merci



Re: supprimer fichiers logs auto

2007-06-03 Par sujet Benjamin Lannoy
Le Sun, 3 Jun 2007 13:01:27 +0200,
Dexinou [EMAIL PROTECTED] a écrit :

 Bonjour,
Bonjour !

 
 Je cherche la façon de supprimer les fichiers logs avec
 l’extension .gz qui se trouvent dans /var/log automatiquement à un
 intervalle de 30 jours.
 
 Comment faire ? via cron ou autre ?
 
 Comme je suis pas très caller en programmation cron je demande votre
 aide.
Ça me semble étrange comme objectif mais tu fais ce que tu veux. :p

Je ne suis pas non plus un « professionnel du cronjob », mais j'ai des
bases (des bases de base, même).

# crontab -e

Puis rajouter cette ligne :
@monthly rm /var/log/*.gz

Ça répond à ta demande ?


signature.asc
Description: PGP signature


RE: supprimer fichiers logs auto

2007-06-03 Par sujet Dexinou
Merci, je vais tester ta commande mais la syntaxe me parait aussi bizarre, 
j'avais cru que l'on devait mettre un truc comme ça :
0 0 1 * * rm /var/log/*.gz
Mais si ça marche de ta façon pourquoi pas, j'aurais appris une chose en plus.


-Message d'origine-
De : Benjamin Lannoy [mailto:[EMAIL PROTECTED] 
Envoyé : dimanche 3 juin 2007 13:07
À : debian-user-french@lists.debian.org
Objet : Re: supprimer fichiers logs auto

Le Sun, 3 Jun 2007 13:01:27 +0200,
Dexinou [EMAIL PROTECTED] a écrit :

 Bonjour,
Bonjour !

 
 Je cherche la façon de supprimer les fichiers logs avec l’extension 
 .gz qui se trouvent dans /var/log automatiquement à un intervalle de 
 30 jours.
 
 Comment faire ? via cron ou autre ?
 
 Comme je suis pas très caller en programmation cron je demande votre 
 aide.
Ça me semble étrange comme objectif mais tu fais ce que tu veux. :p

Je ne suis pas non plus un « professionnel du cronjob », mais j'ai des bases 
(des bases de base, même).

# crontab -e

Puis rajouter cette ligne :
@monthly rm /var/log/*.gz

Ça répond à ta demande ?



Re: supprimer fichiers logs auto

2007-06-03 Par sujet Benjamin Lannoy
Le Sun, 3 Jun 2007 13:16:32 +0200,
Dexinou [EMAIL PROTECTED] a écrit :

 Merci, je vais tester ta commande mais la syntaxe me parait aussi
 bizarre, j'avais cru que l'on devait mettre un truc comme ça : 0 0 1
 * * rm /var/log/*.gz Mais si ça marche de ta façon pourquoi pas,
 j'aurais appris une chose en plus.  

Dans le même genre, il existe aussi les raccourcis @reboot, @yearly,
@annualy, @monthly, @weekly, @daily, @midnight et @hourly.
Oui, certains sont redondants.


signature.asc
Description: PGP signature


Re: supprimer fichiers logs auto

2007-06-03 Par sujet Bulot Grégory
Le dimanche 3 juin 2007 13:07, Benjamin Lannoy a écrit :
 Le Sun, 3 Jun 2007 13:01:27 +0200,

 Dexinou [EMAIL PROTECTED] a écrit :
  Bonjour,

 Bonjour !

  Je cherche la façon de supprimer les fichiers logs avec
  l’extension .gz qui se trouvent dans /var/log automatiquement à un
  intervalle de 30 jours.
 
  Comment faire ? via cron ou autre ?
 
  Comme je suis pas très caller en programmation cron je demande votre
  aide.

 Ça me semble étrange comme objectif mais tu fais ce que tu veux. :p

 Je ne suis pas non plus un « professionnel du cronjob », mais j'ai des
 bases (des bases de base, même).

 # crontab -e

 Puis rajouter cette ligne :
 @monthly rm /var/log/*.gz

 Ça répond à ta demande ?
euh, la on supprime tout, tous les mois 

@monthly find /var/log/* -type f -mtime +30 -exec rm -i '{}' ';'

bien que je ferais plutôt un shell dans /root/shells/PurgeMensuelle (pas de 
point dans le nom, sinon ça s'exécute pas dans le /etc/cron.monthly ) 
avec ça :

| #!/bin/sh
| find /var/log/* -type f -mtime +30 -exec rm -i '{}' ';'

Puis dans /etc/cron.monthly : ln -s /root/shells/PurgeMensuelle.sh



Re: supprimer fichiers logs auto

2007-06-03 Par sujet Jacques L'helgoualc'h
Bulot Grégory a écrit, dimanche 3 juin 2007, à 14:30 :
 Le dimanche 3 juin 2007 13:07, Benjamin Lannoy a écrit :
[...]
  Bonjour !

bonjour,

  [...]
  @monthly rm /var/log/*.gz
 
  Ça répond à ta demande ?
 euh, la on supprime tout, tous les mois 

 @monthly find /var/log/* -type f -mtime +30 -exec rm -i '{}' ';'

 bien que je ferais plutôt un shell dans /root/shells/PurgeMensuelle (pas de
 point dans le nom, sinon ça s'exécute pas dans le /etc/cron.monthly )
 avec ça :

 | #!/bin/sh
 | find /var/log/* -type f -mtime +30 -exec rm -i '{}' ';'

Heu, l'option « -i » de rm est interactive...

 Puis dans /etc/cron.monthly : ln -s /root/shells/PurgeMensuelle.sh

... sans « .sh » ?

La commande find est récursive par défaut, donc (sans répertoires cachés
dans /var/log/) « find /var/log/ ...  » revient au même --- d'autant que
la majeure partie  du développement de /var/log/* est  formée de noms de
fichiers ordinaires.

On peut aussi lancer moins de processus qu'avec -exec :

 find /var/log/ -type f -name '*log*.gz' -mtime +31 -print0 | \
   xargs --0 rm -f

(la précaution  -print0 | ... -0  est sans doute inutile  ici).  Pour ne
pas  trop  dépasser  le  délai  mensuel,  je  ferais  plutôt  une  purge
hebdomadaire.


Par ailleurs, il est sans doute préférable de réduire le nombre des logs
en amont, cf. man logrotate : les exemples donnés,

  rotate 5
  weekly

et

  rotate 2
  monthly

devraient convenir à peu près.
-- 
Jacques L'helgoualc'h


-- 
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench   
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs From et
Reply-To:

To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: supprimer fichiers logs auto

2007-06-03 Par sujet Bulot Grégory
Le dimanche 3 juin 2007 15:10, Jacques L'helgoualc'h a écrit :

  avec ça :
  | #!/bin/sh
  | find /var/log/* -type f -mtime +30 -exec rm -i '{}' ';'

 Heu, l'option « -i » de rm est interactive...

:-) , oui mon copié coller de test était un peu violent !


  Puis dans /etc/cron.monthly : ln -s /root/shells/PurgeMensuelle.sh

 ... sans « .sh » ?

yep


 La commande find est récursive par défaut, donc (sans répertoires cachés
 dans /var/log/) « find /var/log/ ...  » revient au même --- d'autant que
 la majeure partie  du développement de /var/log/* est  formée de noms de
 fichiers ordinaires.

vieux réflexes 


 On peut aussi lancer moins de processus qu'avec -exec :

  find /var/log/ -type f -name '*log*.gz' -mtime +31 -print0 | \
xargs --0 rm -f

je me méfie de cela, parfois cela peut déborder de la longueur maxi d'une 
chaine 'shell', bien que dans le cas particulier de /var/log, ça devrait 
passer

 Par ailleurs, il est sans doute préférable de réduire le nombre des logs
 en amont, cf. man logrotate : les exemples donnés,

   rotate 5
   weekly

 et

   rotate 2
   monthly

 devraient convenir à peu près.


on y pense jamais ;-) car c'est trop évident .



Re: supprimer fichiers logs auto

2007-06-03 Par sujet Sylvain Sauvage
Bulot Grégory, dimanche 3 juin 2007, 16:02:20 CEST
[...]
   find /var/log/ -type f -name '*log*.gz' -mtime +31 -print0 | \
 xargs --0 rm -f
 
 je me méfie de cela, parfois cela peut déborder de la longueur maxi d'une 
 chaine 'shell', bien que dans le cas particulier de /var/log, ça devrait 
 passer

  Cette commande aura toujours exactement la même longueur. Les
jokers sont protégés par les apostrophes et le résultat du find
est passé dans un tube.

-- 
 Sylvain Sauvage



Re: supprimer fichiers logs auto

2007-06-03 Par sujet Jacques L'helgoualc'h
Sylvain Sauvage a écrit, dimanche 3 juin 2007, à 16:15 :
 Bulot Grégory, dimanche 3 juin 2007, 16:02:20 CEST
 [...]
find /var/log/ -type f -name '*log*.gz' -mtime +31 -print0 | \
  xargs --0 rm -f
  
  je me méfie de cela, parfois cela peut déborder de la longueur maxi d'une 
  chaine 'shell', bien que dans le cas particulier de /var/log, ça devrait 
  passer
 
   Cette commande aura toujours exactement la même longueur. Les
 jokers sont protégés par les apostrophes et le résultat du find
 est passé dans un tube.

Pour montrer que xargs découpe le flot en paquets,

 $ find /var/log -type f | wc
   11661166   3

 $ find /var/log -type f | xargs echo Glop | grep -cw Glop
2

# au diable l'avarice,
 $ find /var/ -type f | xargs echo Glop | grep -cw Glop
69

-- 
Jacques L'helgoualc'h


-- 
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench   
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs From et
Reply-To:

To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]