Pour irc j’utilise irssi, un client en ligne de commande qui tourne en permanence sur mon serveur. Je m’y connecte de temps à autre avec screen et tout va bien.
Pour indexer les logs — ce qui me permet de retrouver en cas de besoin une conversion —, j’ai écrit ce petit script, irclogs2email.php
:
#! /usr/bin/php -q
<?php
$to = $from = 'xxx@rezo.net';
chdir('/home/xxx/irclogs/');
foreach (glob('*/#*.log') as $log) {
$subject = 'irclog: '.$log.' '.date('Y-m-d');
$headers = "From: $from\n"
."To: $to\n"
."List-Id: irclogs\n";
if (strlen($f = file_get_contents($log)))
mail($to, $subject, $f, $headers, '-f '.$from);
# purger le log sans changer son inode
# (sinon irssi pas content)
fclose(fopen($log,'w'));
}
?>
Appelé quotidiennement via la crontab
:
58 23 * * * php /home/xxx/bin/irclogs2email.php
A noter : le #
dans la commande glob()
(qui liste les fichiers de log) sert à n’indexer ainsi que les canaux publics, et non les conversations privées.
Quant au List-Id:
il me permet de filtrer ces logs quand ils arrivent dans mon mail.
3 Messages de forum