Salut,
Pour commencer, je précise que je suis totalement débutant en PERL
Pour le boulot, on m'a demandé d'écrire un petit script qui :
-> se connecte à un serveur et ouvre 2 fichiers selon la date du jour (fichiers de log créés chaque jour)
-> selon la taille du fichier, envoi d'un mail si c'est ok ou s'il y a des erreurs.
Les 2 fichiers que je dois analyser chaque jour se nomment par exemple :
- BatchPorterExport_error_11-03-18_244845.log
- BatchPorterExport_error_11-03-18_243214.log
J'ai déjà réussi à récupérer la date du jour + le mois + l'année de façon à ouvrir les logs mais je souhaite virer les 6 derniers chiffres qui correspondent à l'heure exacte du log.
Je bloque actuellement à l'ouverture du fichier. Pour le moment je souhaite juste ouvrir le fichier et écrire dedans pour voir si mon ouverture se passe bien :
Citation :
#!/usr/bin/perl use strict; use warnings; my $filesize = -s "test.txt"; print "Size: $filesize\n"; if ($filesize > 136) {print "ATTENTION ERREURS DANS LE FICHIER TEST\n";} else {print "PAS D'ERREUR\n";} my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time); $year = $year - 100; $mon = sprintf("%02d",$mon+1); $mday = sprintf("%02d",$mday); print "Nous sommes le : ".$mday." du mois ".$mon." de l'annee ".$year."\n"; open (FILE1, '>>',"BatchPorterExport_error_".$year."-".$mon."-".$mday."_*.log" ) || die("Probleme d'ouverture FILE1\n" ); print FILE1 ("Nous sommes le : ".$mday." du mois ".$mon." de l'ann←e ".$year."\n" );
|
Voilà ça bloque au niveau du ."_*.log". L'étoile doit servir à remplacer l'heure dans le nom de fichier pour ouvrir n'importe lequel de mes 2 fichiers de logs (je ferais une boucle pour cela) mais je ne vois pas comment m'y prendre......
Merci d'avance pour votre aide
A++
Message édité par little28 le 18-03-2011 à 10:20:04