# rotate des logs

## Atreillou

hello a tous,

je posséde un serveur de petite dimention (j'entends par là sa charge de travail...)

mes logs ne sont donc pas trés lours à gérer.

par défault, la gentoo fait une rotation de ses logs assez réguliérement...

la commande 

server root # syslogd-listfiles -a

/var/log/imapd.log

/var/log/syslog

/var/log/mail.log

/var/log/daemon.log

/var/log/messages

/var/log/lpr.log

/var/log/auth.log

/var/log/ppp.log

/var/log/debug

/var/log/mail.err

/var/log/mail.info

/var/log/kern.log

/var/log/named.log

/var/log/mail.warn

/var/log/uucp.log

/var/log/user.log

permet de savoit quels sont les fichiers qui subbiront la rotation.

Pour ma part, j'aimerais supprimer la rotation sur certains de ses fichiers  (mails, dns etc...)

le cron est défini dans le rep /etc/cron.daily

 dans le fichier syslog.cron  (je suppose)    qui fait lui même appel a  syslogd-listfiles qui va cherche les fichiers concernés dans syslogd.conf   (j espere que vous suivez toujours et que je ne me trompe pas)

ma question:

comment limiter la rotation de ces log ?

comment la supprimer ?

comment la passer en mensuel, voir trimestrielle ?

il y a peut etre un tuto ma dessus que je n'ai pas vu...

merci de votre aide

----------

## arlequin

Histoire d'affiner la chose: la rotation des logs signifie que les logs sont remis à zero ?

----------

## Atreillou

oui...

ils sont archivés puis remis à 0

ce qui donne des trucs de ce style:

-rw-r-----    1 root     adm            0 Feb 18 00:00 mail.err

-rw-r-----    1 root     adm            0 Feb 17 00:00 mail.err.0

-rw-r-----    1 root     adm            31 Feb 16 00:00 mail.err.1.gz

-rw-r-----    1 root     adm            31 Feb 15 00:00 mail.err.2.gz

-rw-r-----    1 root     adm            31 Feb 14 00:00 mail.err.3.gz

-rw-r-----    1 root     adm            31 Feb 13 09:15 mail.err.4.gz

-rw-r-----    1 root     adm           141 Feb 13 09:18 mail.err.5.gz

-rw-r-----    1 root     adm            31 Jan  5 00:00 mail.err.6.gz

je prefere avoir une seul fichier de mail.err    et si il prends bcp de places, je me chargerais de l'archiver...

----------

## arlequin

Hum, intéressant...

Dis moi, tu as déjà jeté un oeil au fichier '/etc/syslog.conf' ? chui entrain de le parcourir... je dis pas qu'il y a ce que tu cherches...

Sinon, faut voir dans le man ou si il existe un how-to qui pourrait nous en dire plus...

----------

## Atreillou

oui mais je n y trouve rien...   juste certains fichiers listés par le syslogd-listfiles  -a   normal car c le fichier de config de syslog..

il y a juste le "-" devant certains fichiers que je ne comprends pas:

auth,authpriv.*                 /var/log/auth.log

*.*;auth,authpriv.none          -/var/log/syslog

#cron.*                         /var/log/cron.log

daemon.*                        -/var/log/daemon.log

kern.*                          -/var/log/kern.log

lpr.*                           -/var/log/lpr.log

mail.*                          /var/log/mail.log

user.*                          -/var/log/user.log

----------

## SuperTomate

 *Atreillou wrote:*   

> il y a juste le "-" devant certains fichiers que je ne comprends pas

 

Le "-" avant le nom de fichier dit à syslogd de ne pas faire un sync sur le fichier à chaque écriture.

 *man syslogd wrote:*   

> The - may only be used to  prefix  a  filename  if  you  want  to  omit sync'ing the file after every write to it.

 

----------

## SuperTomate

 *Atreillou wrote:*   

> je prefere avoir une seul fichier de mail.err    et si il prends bcp de places, je me chargerais de l'archiver...

 

Il ne semble pas y avoir de fichier de config pour paramétrer la rotation des logs mais tu peux faire ce que tu veux en bidouillant le fichier /etc/cron.daily/syslog.cron.

Pour la désactiver complètement, rendre le script non exécutable devrait suffire :

```
chmod -x /etc/cron.daily/syslog.cron
```

Sinon, tu peux déplacer ce fichier dans /etc/cron.monthly par exemple pour effectuer la rotation tous les mois. Ou même rajouter une entrée pour le script syslog.cron (que t'aurais déplacé ailleurs) dans ton /etc/crontab pour l'exécuter quand tu veux...

Si tu veux *juste* virer la rotation de mail.err, le plus simple est de modifier la ligne "for LOG in `/usr/sbin/syslogd-listfiles -a`" dans /etc/cron.daily/syslog.cron en :

```
for LOG in `/usr/sbin/syslogd-listfiles -a|grep -v mail.err`
```

----------

## Atreillou

cela me semble une trés bonne solution...

je vaiq le dépacer dans le monthly et utiliser le grep pour les qq fichiers dont je ne veux faire aucune rotation...

merci bcp a tous

----------

## DuF

Je vais peut être posé une question bête, mais n'y a-t-il pas moyen de donner une tax maximum pour les fichiers logs, et qd il arrive à cette taille, il supprime petit à petit le contenu le plus vieux du log ?

----------

## Atreillou

dans le syslog je ne crois pas mais un simple script devrait y arriver

(je ne suis pas un expert en scripts..)

----------

## DuF

oui c'est bien ce qui me semblait, un petit script pour tous les logs qui supprime toutes les lignes plus vieilles de 30 jours.

----------

