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:
Quellcodeende.
Wer was sieht, der schreit
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
