
Envoyez un email des logs du jour de son eggdrop |
| # DailyLogMailer 1.0 # # # # (c) Sébastien Santoro, 2002, sous licence GNU GPL. # # aka Dereckson, UnderNet, #Win # # # # Ce programme est un logiciel libre ; vous pouvez le redistribuer et/ou # # le modifier conformément aux dispositions de la Licence Publique Géné- # # rale GNU, telle que publiée par la Free Software Foundation version 2 # # de la licence, ou encore (à votre choix) toute version ultérieure. # # # # Ce programme est distribué dans l'espoir qu'il sera utile, mais SANS # # AUCUNE GARANTIE ; sans même la garantie implicite de COMMERCIALISATION # # ou D'ADAPTATION A UN OBJET PARTICULIER. Pour plus de détail, voir la # # Licence Publique Générale GNU . # # # # Pour obtenir la Licence Publique Générale GNU, écvirez à la Free Soft- # # ware Foundation Inc., 675 Mass Ave, Cambridge, MA 02139, Etats-Unis. # # Une traduction française de cette licence est (à titre indicatif, sans # # valeur contractuelle) disponible sur www.april.org/gnu/gpl_french.html # # # # # # Dédicacé à ToyMachin. # ########################################################################## ########################################################################## # Configuration # ########################################################################## #Quand l'exécuter ? (par défaut à 05:05) set DailyLogMailer(heure) "05" set DailyLogMailer(minute) "05" #Canal à logger set DailyLogMailer(canal) "#win" #Adresse e-mail set DailyLogMailer(courriel) "sebastien.santoro@espace-win.net" #Objet du courriel set DailyLogMailer(objet) "\[$DailyLogMailer(canal)\] Log de la veille" ########################################################################## # Définition du logging # # Si déjà dans votre .conf, commentez la ligne logfile # ########################################################################## if {![file exists logs]} { exec "mkdir logs" } set log-time 1 if {![info exists logfile-suffix]} { set logfile-suffix ".%d%b%Y" } #logfile pkj $DailyLogMailer(canal) "logs/[string range $DailyLogMailer(canal) 1 end].log" ########################################################################## # BIND # ########################################################################## #bind time - "$DailyLogMailer(heure) $DailyLogMailer(minute) * * *" DailyLogMailer ########################################################################## # Envoi d'un message e-mail (UNIX) # # Cette fonction est utilisable dans tous vos autres TCL, donc déplacez # # la éventuellement dans votre collection de procs tcl réutilisables ... # ########################################################################## proc mail.send {to objet message} { set fd [open "|mail -s \"$objet\" $to" "w"] puts $fd "$message" flush $fd close $fd } ########################################################################## # DailyLogMailer, procédure d'envoi du log de la veille par e-mail # ########################################################################## proc DailyLogMailer {minute hour day month year} { global DailyLogMailer {logfile-suffix} putcmdlog "Préparation du log de la veille et envoi par courriel ..." #Préparation du courriel set msg "Hi,\n" append msg "Voici le log de la veille :\n\n" set fd [open "logs/[string range $DailyLogMailer(canal) 1 end].log.[strftime [string range ${logfile-suffix} 1 end] [expr [unixtime] - 24 * 3600]]" "r"] while {![eof $fd]} { append msg [gets $fd] append msg "\n" } append msg "\n\n--\nPowered by DailyLogMailer 1.0\nCoded by Dereckson, UnderNet, #Win" #Envoi du courriel set fd [open "|mail -s \"$$DailyLogMailer(objet)\" $DailyLogMailer(courriel)" "w"] mail.send $DailyLogMailer(courriel) $DailyLogMailer(objet) $msg putcmdlog "Le courriel est parti :)" } ########################################################################## # Crédit # ########################################################################## putlog "DailyLogMailer 1.0\nCoded by Dereckson, UnderNet, #Win" |