[Perl] fichier log + conversion Date en Epoch
pianoclassique
Messages postés
108
Date d'inscription
Statut
Membre
Dernière intervention
-
lami20j Messages postés 21331 Date d'inscription Statut Modérateur, Contributeur sécurité Dernière intervention -
lami20j Messages postés 21331 Date d'inscription Statut Modérateur, Contributeur sécurité Dernière intervention -
Bonjour,
J’ai besoin d'un script perl ?
J'ai reçu comment convertir en eposh mais svp intègre cette script de convertissions pour avoir un script complète.
je veux poser un date et un temps de forme secondes, minutes, heure et jours, mois, année.
Puis le script le convertit en codage eposh ensuite il prend le résultat en epoch pour chercher si cette résultat existe dans le fichier log de MRTG (installer sous ubuntu) ou non.
Si il existe il me rendre tout le ligne de log file correspondant a cette résultat eposh.
par exemple :
Données saisie:
Date au format jj/mm/aaaa : 12/04/2008
Heure au format hh:mm:ss : 10:30:55
10:30:55 12/04/2008 -> epoch : 1207996255
Correspond
Resultat:
Si : 1207996255 existe dans le fichier log de MRTG le resultat de script retourne tout la ligne de fichier log deMRTG 1207996255 937 713 937 713.
Sinon : 1207996255 n'existe pas.
Merci............................
J’ai besoin d'un script perl ?
J'ai reçu comment convertir en eposh mais svp intègre cette script de convertissions pour avoir un script complète.
je veux poser un date et un temps de forme secondes, minutes, heure et jours, mois, année.
Puis le script le convertit en codage eposh ensuite il prend le résultat en epoch pour chercher si cette résultat existe dans le fichier log de MRTG (installer sous ubuntu) ou non.
Si il existe il me rendre tout le ligne de log file correspondant a cette résultat eposh.
par exemple :
Données saisie:
Date au format jj/mm/aaaa : 12/04/2008
Heure au format hh:mm:ss : 10:30:55
10:30:55 12/04/2008 -> epoch : 1207996255
Correspond
Resultat:
Si : 1207996255 existe dans le fichier log de MRTG le resultat de script retourne tout la ligne de fichier log deMRTG 1207996255 937 713 937 713.
Sinon : 1207996255 n'existe pas.
Merci............................
A voir également:
- [Perl] fichier log + conversion Date en Epoch
- Fichier bin - Guide
- Fichier .dat - Guide
- Fichier epub - Guide
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
3 réponses
Salut,
voilà
Le script
Le résultat
voilà
Le script
lami20j@debian:~/trash$ cat time2epoch.pl #!/usr/bin/perl use strict;use warnings; use Time::Local; #ouverture de fichier.log open LOG,"fichier.log" or die "E/S fichier.log : $!\n"; print "Date au format jj/mm/aaaa : "; chomp(my $d = <STDIN>); # lit depuis le clavier # et enleve le caractère \n s'il existe print "Heure au format hh:mm:ss : "; chomp(my $h = <STDIN>); # idem (voir plus haut) my ($heure,$min,$sec) = split /:/,$h; # le format de la saisie est hh:mm:ss # le fonction split permet d'elcater la chaîne # selon le caratère de séparation : # pour obtenir les 3 variabes my ($jour,$mois,$annee) = split /\//,$d; # idem my $epoch = timegm($sec, $min, $heure, $jour, $mois-1, $annee-1900); print "$h $d -> epoch : $epoch\n"; while (<LOG>){next unless /$epoch/ and print} __END__
Le résultat
lami20j@debian:~/trash$ cat fichier.log 1036567881 2313865839 3040227868 1036567881 937 713 937 713 1036567581 1561 229 1561 229 1036571100 1831 240 2561 273 1036567200 2473 643 2561 1647 1036566900 2312 1305 2513 1647 1036567881 2313865839 3040227868 1036567881 937 713 937 713 1036567581 1561 229 1561 229 1036571100 1831 240 2561 273 1036567200 2473 643 2561 1647 1036566900 2312 1305 2513 1647 1036567881 2313865839 3040227868 1036567881 937 713 937 713 1036567581 1561 229 1561 229 1036571100 1831 240 2561 273 1036567200 2473 643 2561 1647 1036566900 2312 1305 2513 1647 lami20j@debian:~/trash$ perl time2epoch.pl Date au format jj/mm/aaaa : 06/11/2002 Heure au format hh:mm:ss : 08:25:00 08:25:00 06/11/2002 -> epoch : 1036571100 1036571100 1831 240 2561 273 1036571100 1831 240 2561 273 1036571100 1831 240 2561 273 lami20j@debian:~/trash$
J'ai oublié de traiter le cas quand n'existe pas
lami20j@debian:~/trash$ cat time2epoch.pl #!/usr/bin/perl use strict;use warnings; use Time::Local; #ouverture de fichier.log open LOG,"fichier.log" or die "E/S fichier.log : $!\n"; my $test; print "Date au format jj/mm/aaaa : "; chomp(my $d = <STDIN>); # lit depuis le clavier # et enleve le caractère \n s'il existe print "Heure au format hh:mm:ss : "; chomp(my $h = <STDIN>); # idem (voir plus haut) my ($heure,$min,$sec) = split /:/,$h; # le format de la saisie est hh:mm:ss # le fonction split permet d'elcater la chaîne # selon le caratère de séparation : # pour obtenir les 3 variabes my ($jour,$mois,$annee) = split /\//,$d; # idem my $epoch = timegm($sec, $min, $heure, $jour, $mois-1, $annee-1900); print "$h $d -> epoch : $epoch\n"; while (<LOG>){next unless /$epoch/ and print and ++$test;} print "$epoch n'existe pas\n" unless $test; __END__