supprimer fichiers logs auto
Bonjour, Je cherche la façon de supprimer les fichiers logs avec lextension .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. Davance merci
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 lextension .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
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
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
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 lextension .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
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
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
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
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]