Advertisement
rplantiko

Compute downtimes from logfile

May 11th, 2018
526
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*
  2.  
  3. SAP speichert die Verfügbarkeit und die Downtimes in einem File available.log im Workdirectory
  4.  
  5. Einige Beispielzeilen:
  6.  
  7.     Available   04.06.2015 11:24:40 - 04.06.2015 12:33:40
  8.     Unavailable 04.06.2015 12:34:40 - 04.06.2015 12:36:40
  9.     Available   04.06.2015 12:37:40 - 04.06.2015 14:24:41
  10.     Unavailable 04.06.2015 14:25:41 - 04.06.2015 14:28:22
  11.  
  12. Das folgende Script berechnet aus den Zeitstempeln die Downtimes in Sekunden
  13.  
  14. */
  15.  
  16. (function(){
  17.  
  18. // In node zeilenweise eine Datei lesen  
  19. var lineReader = require('readline').createInterface({
  20.   input: require('fs').createReadStream('C:\\Temp\\p10-available.log')
  21. });
  22.  
  23. lineReader.on('line', function (line) {
  24. // Nur "Unavailable"  
  25.   if (line.startsWith("Unavailable")) {
  26. // Die beiden Zeitstempel einlesen    
  27.     let [from,to] = line.match(/\d{2}\.\d{2}\.\d{4} \d{2}:\d{2}:\d{2}/g)
  28. // In JavaScript-Date-Objekte konvertieren
  29.     let dates = [from,to].map(date);
  30. // Differenz in sec berechnen    
  31.     let duration =(dates[1]-dates[0])/1000;
  32.     if (duration > 0) {
  33.       console.log( "%s - %s : %d", from, to, duration );
  34.     }
  35.   }
  36. });
  37.  
  38. // Aus einem Datums-String im europäischen Format (wie "01.06.2015 18:33:34") ein Date-Objekt konstruieren
  39. function date(s) {
  40.   var p = s.match(/\d+/g);
  41.   return new Date(p[2],p[1],p[0],p[3],p[4],p[5]);
  42. }
  43.  
  44. })();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement