Serverüberwachung über Dateilese

aschweizer

Grünschnabel
Hallo zusammen,

wir sollen ein Java-Programm schreiben, daß aus einem Verzeichnis Dateien mit den Serverstati einliest, prüft und gegebenenfalls Fehlerdateien anlegt, die widerum gelesen werden sollen um aus ihnen den Fehler anzugeben, und die Zeit.
Im Ende soll das ganze als HTML-Seite dargestellt sein, mit einer selbstständigen Aktualisierung, aber ich verzweifle erst noch an der Dateiensache..

Mein Problem:
Wenn sich die Uhrzeit einer Serverdatei ändert, dann löscht es mir alle Fehlerdateien, und allgemein funktioniert das nicht so ganz...



Quellcode:
Code:
package test
import java.io.*;
import java.util.*;
import java.io.File;

//Zeitkontrolle fehlerhaft (Überschreibung)
//startzeit- wann die letzte Überprüfung war
//Möglichkeit der Intervalleingabe
//ausgabe von fehlerhaften Servern nach Behebung? --> Uhrzeitkriterium.. Fehler in XML-Datei schreiben(?!)

public class Status {

	static String sPath="H:/Eclipse/workspace/server_status/spielwiese"; //Quellordner
	static String ePath=sPath+"/error";//fehlerordner
	static String sHost, eHost;
	static String sStatus, eStatus;
	static String sTime, eTime;
	static String sDate, eDate;
	
	  public static void main( String args[] ) throws IOException
	  {
		 start();	   
	  }

private static void start() throws IOException {
		
		File file = new File(sPath); 				//Verzeichnis auszählen, bzw. auslesen
        File[] dirContent = file.listFiles(); 
        String files[] = file.list();
        
        File efile = new File(ePath);
        File[] efiless = efile.listFiles();
        String efiles[]= efile.list();

	        int countServer = 0; 
	        int anzahlVerzeichnisse = 0; 
	        int OKcounter=0;      
	        //System.out.println(file.indexOf("OK"));

		      				for (int i = 0; i < dirContent.length; i++) 
		      				{ //Ordner-Datei-Unterscheidung, keine autom. ehebung!
							            File tmpFile = dirContent[i]; 
							             
							            if(tmpFile.isDirectory()){ 
							                anzahlVerzeichnisse++;      
							            }else	{countServer++;} 
							            OKcounter=countServer;      
		      				} 
	        System.out.println("\nSource: " + sPath 
	            + " \nAnzahl Server " + countServer 
	            + "\nAnzahl Unterverzeichnisse " + anzahlVerzeichnisse	          );

	        
	        
//Prüfen ob Serverfehler vorhanden	        
for (int i=0; i<files.length; i++) {
	             
if(files[i].indexOf("failed")>0)//	JA
{	        	OKcounter--;
//Schnipsler 
	      StringTokenizer tokens= new StringTokenizer(files[i], "_" ); //Dateinamenzerleger
	      
	      while(tokens.hasMoreTokens())
	      {		//Zerlegung
	      String host= tokens.nextToken();
	      String status=tokens.nextToken();
	      String date= tokens.nextToken();
	      String time= tokens.nextToken();
	      	      
	      if(time.endsWith(".xml")) {			//Ende
	      time= time.substring(0,time.length()-4);}
	      
	      sHost=host;
  	      sStatus=status;
  	      sDate=date;
  	      sTime=time;  
	      }//Ende Schnipsler
	      
	      System.out.println("------------------\n"+" Date\t" + sDate + "\n" +
      	 		" Time\t" + sTime + "\n" + " Host\t" + sHost + "\n" + " Status\t" + sStatus);
	      
	      //Fehlerdatei schon vorhanden? Ja-nicht überschreiben | Nein-erstellen

	      if(efiles.length<1)
	      {String dateiName = sHost+"_failing_"+sDate+"_"+sTime+".txt";
	 		String text = "Optionaltext"; 		        	 		
	 		FileOutputStream schreibeStrom = new FileOutputStream(ePath+"/"+dateiName);

				for (int k=0; k < text.length(); k++)
				{
				schreibeStrom.write((byte)text.charAt(k));
				}
//schreibeStrom.close();
// System.out.println("Datei ist geschrieben!");}//JA
    	 	}// Ende
	      else
	      {
	      for (int o=0; o>efiles.length; o++) {  //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~warum
	      System.out.println("grrr");
	    	  if(efiles[o].indexOf(sHost)>0)//Fehlerdatei vorhanden 
	        		 {
	        		 }
	    	  else// Nicht vorhanden--> Erzeugung
		        	 	{	String dateiName = sHost+"_failing_"+sDate+"_"+sTime+".txt";
	        	 		String text = "Optionaltext"; 		        	 		
	        	 		FileOutputStream schreibeStrom = new FileOutputStream(ePath+"/"+dateiName);
	      
	      				for (int k=0; k < text.length(); k++)
	      				{
	      				schreibeStrom.write((byte)text.charAt(k));
	      				}
	        //schreibeStrom.close();
	       // System.out.println("Datei ist geschrieben!");}//JA
		        	 	}// Ende-else
	      }}
}
else//Server ok --> Prüfung ob Fehlerdatei noch vorhanden: Ja->löschen!
{
	for (int j=0; j<efiles.length; j++) {
	    	             
	  if(efiles[j].indexOf("failing")>0)//proof of failing					~~~~~~~~~~~~~~~~~~~~~viel Potenzial~~~~~~~~~~~~~~~~~~~~~~~~~
	  {    		 
	  String fileName = (ePath+"/"+efiles[j]);	
	  new File(fileName).delete();			
	  }
	  									}	 
}

}// Ende-for-Schleife   

//Ausgabe der Fehlerdateien
for (int j=0; j<efiles.length; j++) {
StringTokenizer tokens= new StringTokenizer(files[j], "_" ); //Dateinamenzerleger
while(tokens.hasMoreTokens())
{		//Zerlegung
String host= tokens.nextToken();
String status=tokens.nextToken();
String date= tokens.nextToken();
String time= tokens.nextToken();
	      
if(time.endsWith(".txt")) {			//Ende
time= time.substring(0,time.length()-4);}

eHost=host;
  eStatus=status;
  eDate=date;
  eTime=time;  
}

System.out.println("------------------\n"+" Date\t" + eDate + "\n" +
 		" Time\t" + eTime + "\n" + " Host\t" + eHost + "\n" + " Status\t" + eStatus);
}



	         System.out.println("------------------\n");
	         System.out.println("\nServer OK: "+OKcounter);
	     	      System.out.println("Server failed: "+ (countServer-OKcounter)); 
	}//start

	         
}
/*	private static void auslesen() throws IOException { //Fehlerdateiinhalt
		byte zeichen;
	     char buchstabe;
	     String text = "";
	     String dateiName = "Test.txt";
	     FileInputStream leseStrom = new FileInputStream(dateiName);
	     do{
	       zeichen = (byte)leseStrom.read();
	       System.out.print(zeichen+" ");
	       text += (char)zeichen;
	     } while (zeichen !=-1);
	     leseStrom.close();
	     System.out.println();
	     System.out.println(text);

	}*/

Quellcodeende.


Wer was sieht, der schreit :)
 

Neue Beiträge

Zurück