#!/bin/bash # Variable pour l'endroit où sont stockés les fichiers. Ne pas mettre de / à la fin de la chaine ! dirlog=/home/khaganat/supybot/config/logs/ChannelLogger/freenode dirarch=/home/khaganat/archivelog/freenode # On liste les divers canaux logués liste="khanat ryzomforge ryzomdev ryzomatys ryzomsupport ryzomgraphic ryzomlinux ryzommac krypte" for chan in $liste; do # On vérifie que ça existe ( -d pour dossier) if [ -d $dirlog/\#$chan ]; then #d'abord on va dans chacun des dossiers de log de channel cd $dirlog/\#$chan/ # puis on récupère le nom des logs en variable # On récupère la date, en formattant comme pour les logs for f in *.log do year=${f: -14:4} month=${f: -9:2} day=${f: -6:2} # On se fait une jolie variable qui imite la partie datée du nom des fichiers de log log=$year-$month-$day # On vérifie que les fichiers de log existent ( -e pour existe) if [ -e $dirlog/#$chan/#$chan.$log.log ]; then # on créé le dossier de chaque mois dans les archives s'il n'existe pas mkdir -p "$dirarch/$chan/$year/$month/" # on déplace ces logs dans leur archive, à condition qu'ils soit plus âgés que 7 jours. find $dirlog/#$chan/#$chan.$log.log -type f -mtime +7 -exec /bin/mv {} $dirarch/$chan/$year/$month/$chan.$log.log \; fi done fi done