Bonjour à tous,
Je suis actuellement en train d'écrire un script AutoIt qui extrait les Events logs de Windows, tout en normalisant certains champs.
Ces données sont stockées dans un fichier .csv, qui sera ensuite envoyé dans une base de données SQLite afin de pouvoir interroger les Events.
J'ai besoin, pour mener mon projet à bien, de pouvoir reprendre la lecture de mon fichier .csv la ou le programme c'est arrêté, afin de gagner en temps d'exécution du script, mais surtout car cela est vraiment plus propre et professionnel.
Mon idée est de faire une boucle qui vérifie si la date de l'Event est plus veille que la date de la dernière exécution du script sur ce fichier .csv !
Mais après de nombreuses recherches et plusieurs tests, je n'arrive toujours pas à réaliser cela.
Quelqu'un aurait-il une idée ?
Merci d'avance.
Reprendre la lecture d'un fichier .csv à partir de la dernière lecture effectuée
Règles du forum
- Merci de consulter la section "Règles du forum" et plus particulièrement "Règles et Mentions Légales du site autoitscript.fr" avant d'écrire un message.
-
- Niveau 1
- Messages : 3
- Enregistré le : mar. 21 févr. 2017 11:35
- Status : Hors ligne
- orax
- Modérateur
- Messages : 1479
- Enregistré le : lun. 23 mars 2009 04:50
- Localisation : ::1
- Status : Hors ligne
Re: Reprendre la lecture d'un fichier .csv à partir de la dernière lecture effectuée
Bienvenue sur le forum.
J'aurais juste une autre idée à proposer. Au lieu de récupérer la date de la dernière exécution du script, je récupérerais la dernière ligne du fichier .csv. Je suppose que cette ligne contient les données qui indiquent à quel endroit le script s'est arrêté (dans l'extraction des logs) lors de sa dernière exécution.
J'aurais juste une autre idée à proposer. Au lieu de récupérer la date de la dernière exécution du script, je récupérerais la dernière ligne du fichier .csv. Je suppose que cette ligne contient les données qui indiquent à quel endroit le script s'est arrêté (dans l'extraction des logs) lors de sa dernière exécution.
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
-
- Niveau 1
- Messages : 3
- Enregistré le : mar. 21 févr. 2017 11:35
- Status : Hors ligne
Re: Reprendre la lecture d'un fichier .csv à partir de la dernière lecture effectuée
Bonjour,
Merci pour l'accueil et pour votre réponse. Il semblerait en effet qu'il y ait quelque chose à creuser de ce côté la, je regarde cela et vous tiendrais au courant ici.
N'y aurait-il également quelque chose à faire autour du paramètre $iOffset de la fonction _EventLog_Read ?
Doc AutoIt3 - _EventLog_Read
Merci pour l'accueil et pour votre réponse. Il semblerait en effet qu'il y ait quelque chose à creuser de ce côté la, je regarde cela et vous tiendrais au courant ici.
N'y aurait-il également quelque chose à faire autour du paramètre $iOffset de la fonction _EventLog_Read ?
Doc AutoIt3 - _EventLog_Read
- orax
- Modérateur
- Messages : 1479
- Enregistré le : lun. 23 mars 2009 04:50
- Localisation : ::1
- Status : Hors ligne
Re: Reprendre la lecture d'un fichier .csv à partir de la dernière lecture effectuée
Il y aurait peut-être une piste avec les bookmarking events. J'ai vu que le programme WEvtUtil peut en utiliser.
Et je suis également tombé sur cet outil en ligne de commande : Logparser qui pourrait peut-être convenir (voir l'option
Et je suis également tombé sur cet outil en ligne de commande : Logparser qui pourrait peut-être convenir (voir l'option
-i:EVT
).De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
- parazitenew
- Niveau 7
- Messages : 310
- Enregistré le : sam. 10 déc. 2011 15:08
- Localisation : Algerie
- Status : Hors ligne
Re: Reprendre la lecture d'un fichier .csv à partir de la dernière lecture effectuée
Bonsoir,
Pourquoi ne pas mettre une colonne ID, à chaque exécution, le numéro ID est enregistré dans fichier texte externe. À la reprise, le script lit le nombre à partir du fichier texte et reprend la lecture du CSV à partir de cette ligne, remet à jour le chiffre et ainsi de suite.
Pourquoi ne pas mettre une colonne ID, à chaque exécution, le numéro ID est enregistré dans fichier texte externe. À la reprise, le script lit le nombre à partir du fichier texte et reprend la lecture du CSV à partir de cette ligne, remet à jour le chiffre et ainsi de suite.
-
- Niveau 1
- Messages : 3
- Enregistré le : mar. 21 févr. 2017 11:35
- Status : Hors ligne
Re: Reprendre la lecture d'un fichier .csv à partir de la dernière lecture effectuée
Re-bonjour à tous,
La méthode retenue est de stocker le record number (qui est un numéro présent et unique sur chaque Event) dans un fichier .ini.
Je récupère ensuite cette valeur au début de ma boucle dans une variable, que j'appelle lors de mon _EventLog_Read en mentionnant ma variable récupérée dans le paramètre $iOffset
Et à la fin de la boucle, je ré-ouvre mon fichier .ini en y inscrivant la valeur actuelle du dernier record number traité.
De cette manière, lorsque je ré-exécute mon code, celui-ci traite seulement les Events avec un record number plus grand que celui stocké dans mon fichier .ini.
Merci à vous pour votre aide.
J'attends un retour de votre part, dans le cas ou un bout de code vous est nécessaire pour une meilleure compréhension !!
Bonne journée
La méthode retenue est de stocker le record number (qui est un numéro présent et unique sur chaque Event) dans un fichier .ini.
Je récupère ensuite cette valeur au début de ma boucle dans une variable, que j'appelle lors de mon _EventLog_Read en mentionnant ma variable récupérée dans le paramètre $iOffset
De cette manière, lorsque je ré-exécute mon code, celui-ci traite seulement les Events avec un record number plus grand que celui stocké dans mon fichier .ini.
Merci à vous pour votre aide.
J'attends un retour de votre part, dans le cas ou un bout de code vous est nécessaire pour une meilleure compréhension !!
Bonne journée
