Salut,
Je n'ai pas beaucoup joué avec les batchs file si ce n'est pour des fonctions simples comme de la copie de fichier... Là j'esaye d'en développer une un peu plus avancée...
J'ai un dossier qui contient des fichiers logs de plusieurs backups (001.log, 002.log,003.log.... etc).
Chaque fichier contient des logs de plusieurs dates, à la fin de chaque backup, ce texte s'ajoute dans le log :
Code :
Nov-17 21:24:52 Job 5: Summary:
Start Time: 11/17/06 21:00:12 End Time: 11/17/06 21:24:52
Job Type: Backup Media Name: xxxxxxMON
#Nodes Requested: 2 #Nodes Missed: 0
#Errors: 0 #Warnings: 0
#Vol. Missed: 0 #Succ./Incomp: 5
#Failed: 0 #Miscompared: 0
--------------------------------------------------------------------------
Source: zzzzzzz/DATA: Session No: 1
Backup Status: Successful Reason:
Compare Status: Compare OK Reason:
#Estimated Files: 18463 #Actual Files: 18463
#Open Files: 0 #Files Miscompared: 0
#Errors: 0 #Warnings: 0
--------------------------------------------------------------------------
Vous remarquerez deux choses qui m'intéressent particulièrement dans ce log :
- xxxxxxxMON : xxxx est une chaine qui peut changer, MON est la période du backup (mon, tue, wed... etc.)
- Backup Status : Peut prendre soit la valeur successful, soit failed et la raison de l'échec.
- Start time : Date et heure de départ du backup
Un même fichier log peut contenir deux ou trois fois la séquence MON (celui de la semaine passée et celui de la semaine actuelle)
Prenons l'exemple suivant :
- J'ai 3 fichiers logs : 001.log, 002.log, 003.log.
- Je cherche les statuts pour les backups de lundi.
Voici ce que je voudrais que le batch fasse :
1. Demande quelle période je veux, je réponds "MON"
2. Crée un nouveau fichier "summary.log"
3. Ouvre le premier log (001.log), et recherche dedans le DERNIER statut pour un backup MON (il peut y en avoir plusieurs)
4. Écrit dans le nouveau summary.log : "001.log : Nov-17 21:24:52 : Successful"
5. Reprend les étapes 2-3-4 pour chaque fichier log.
Au final, le fichier summary devrait ressembler à ça :
001.log : 11/17/06 21:00:12 : Successful
002.log : 11/17/06 21:00:12 : Media write error
003.log : 11/17/06 21:00:12 : Successful
Évidemment, il faudrait aussi prévoir le cas ou il ne trouve pas de résultat et mettre un statut 'impossible to retrieve data'
Je sais que j'ai l'air d'en demander beaucoup, mais je cherche en fait un point de départ. Quelques commandes utiles, quelques une de vos idées pour faire la recherche dans le log... Je ne cherche pas un code maché, juste des points de départ...
Merci,
Simo