executer

Werbung
Projekt “Executer”
Heiko Burdack
Mail: [email protected]
Home: http://www.uni-magdeburg.de/burdack/executer
1. Projekt Executer
1.1 Warum Executer ?
Wer kennt es nicht, wenn es darum geht große Client/Server- Landschaften auf
Basis von Win95/98/NT/2000 zu verwalten, ist es oft erforderlich Kommandos auf
verschiedenen System auszuführen. Bei diesen Aufgaben stoßt man recht schnell an
die Grenzen, der normalen Kommando- bzw. Batch-Verarbeitung.
Zwar sind die meisten Aufgaben recht einfach über Batch Dateien realisierbar, doch
kommt es hier all zu oft zu Problemen.
1.2 Grundidee Executer
In meiner täglichen Arbeit stellte sich immer wieder verschiedene Aufgaben, in denen
verschiedene Kommandos über eine Serverliste ausgeführt werden sollten.
Hierbei entstand die Idee ein Tool zu schreiben, welches über vordefinierte Jobs
diese Aufgaben ausführen und die Ergebnisse entsprechend auswerten sollte.
Dabei sollte das Tool recht flexibel sein, damit es auch für unterschiedliche Aufgaben
genutzt werden kann. Es sollte auch möglich sein, Aufgaben in einer quasi Rekursion
zu verschachteln.
Die Aufgabenstellung war meines Erachtens zunächst ausreichend um einfach mal
anzufangen. Ein Ergebnis folgt auch bald der Executer V1.0 der schon viele
Aufgaben erledigen konnte.
1.3 Projekt Executer
Nachdem die erste Version fertig war, kamen viele Ideen und Anregungen für
Erweiterungen auf. Daher entschloss ich mich dazu, diese Aufgabe als ein Projekt
anzusehen, um die Erweiterungen in neuen Version implementieren zu können.
1.4 Vision Executer
Folgende Erweiterungen sind für den Executer geplant :
 Erstellung einer Win32 Applikation um den Executer anzusprechen bzw.
komfortabel Jobs erstellen zu können .
 Unter Win NT/2000 ermöglichen den Executer als Dienst zu installieren
 Implementierung der Möglichkeit der TCP/IP Socket-Verbindung um den
Executer remote über TCP/IP anzusprechen.
 Einfügen einer Scheduler Funktionalität.
 Erweiterung der Funktonalität zur Systemüberwachung
2. Programm Executer
2.1 Wie funktioniert der Executer ?
Der Executer ließt die Job-Daten aus einer ini-Datei und führt die entsprechenden
Befehle aus. Dann überprüft er die Rückgaben auf Übereinstimmung mit den
Suchkriterien. Dabei werden die Befehle im Programm über eine System Pipe
ausgeführt.
Dabei ist es möglich neben der eigentlichen Batch Verarbeitung, eine Vor- bzw.
Nachverarbeitung durchzuführen. Dadurch kann eine Art Rekursion aufgebaut
werden.
2.2 Wie und wann benutze ich den Executer ?
Die Anwendung erfolgt über eine zu erstellende bzw. zu modifizierende ini Datei. Am
einfachsten nutzt man die beiliegende Standard job.ini Datei als Muster bzun
Besipiel.
Das Anwendungsspektrum des EXECUTER recht groß, daher kann kein allg.
Anwendungsbereich angeben werden. Die Anwendung lohnt sich grundsätzlich,
wenn Rückgaben von Commandos bzw. Befehlen ausgewertet werden sollen.
In folgenden Anwendungsbereichen findet der EXECUTER bereits Anwendung:
 als Tool im Bereich Systemmanagment, um den Zustand von Server-Farmen
darzustellen.
 Cleint Verwaltung, um Daten der Cleints abzufragen
 Security Überprüfung von Systemen und Client Rechnern
 Software Verteilung
2.3 Die „executer.exe“
Beim Aufruf der executer.exe ohne Parameter wird standardmäßig versucht die
job.ini zu öffnen.
Die executer.exe kann mit dem Startparameter –f <jobdatei> aufgerufen werden, um
einen spezielle Job zu verwenden.
Aufruf :
c:\executer (job.ini wird geöffnet)
c:\executer.exe –f batch.ini (andere Datei wird geöffnet)
Die Ausführung des Jobs wird in der „Job“.log Datei entsprechend protokolliert.
Das Ergebnis des Jobs wird in die Datei „Job“.txt geschrieben.
2.4 Die Job.ini Datei – erstellen eines Jobs
Die Job Datei baut sich in mehrere Bereich auf.
Bemerkungszeilen werden durch ein #-Symbol angezeigt. Alle Zeilen, die mit #
beginnen werden in der Job Verarbeitung nicht berücksichtig.

Bereich [job]
[job]
suchmodus= 0 (0=Standard 1=Nach Suchmaske)
Festlegen wie die Ausgabe der Befehle nach den Suchkriterien durchsucht werden soll.
0=Standard, das bedeutet, alle Suchkriterien ODER verknüpft; Es wird ein Hit angezeigt,
wenn eins der Suchkriterien enthalten sind.
suchmaske= &...| (|=ODER &=UND)
Suchfunktion über die Suchkriterien bilden. Die Suchmaske wird mit den Zeichnen „&“ für
UND und „|“ für ODER gebildet.
log_modus= 0
Ausgabemodus der Log Datei festlegen.
0=Standard Ausgabe;
1=detailierte Ausgabe (Alle Ausgaben der Befehle werden in die Log Datei geschrieben)
out_modus= 0
Format der Ausgabe-Datei festlegen;
0=Standard, Suchbezogen; es werden die gefunden Zeilen ausgegeben
1=Standard detailliert; es wird zusätzlich die Treffer Informationen angezeigt
2=Ausgabe der Servername wenn ein Treffer vorlag
3=nur die Servernamen geschrieben. Die Output Datei kann als rekursive Server Datei
verwendet werden.
4=nur die Rückgaben der Befehle werden bei einem Hit werden ausgegeben .
srv_modus= 0
Server-Platzhalter Modus aktivieren
0=Einzelmodus;
1=Mehrfachmodus über zentrale server.ini;
2=Mehrfachmodus über eigene Server Datei.
srv_datei= itocheck.srv
Name der eigenen Server Datei angeben
platzhalt= $$$$$
Platzhalter Zeichenkette angeben

Bereich [command]
[command]
# Befehle die ausgeführt werden sollen
ping $$$$$
Hier sind die entsprechenden Befehle einzugeben. Max. 50 Befehle a 256 Zeichen

Bereich [check]
[check]
# Wonach die Ausgabe der Befehle gecheckt werden soll
Zeit•berschreitung
!Antwort
Hier sind die entsprechenden Suchkriterien einzugeben. Max. 50 Kriterien a 256 Zeichen
Wenn vor das Suchkriterium ein ! gestellt wird, wird dies als NICHT interpretiert. D.h. Wenn
das Suchkriterium nicht gefunden wird, erfolgt ein Hit.

Bereich [before]
[before]
# Befehle die vor der Ausführung ausgeführt werden sollen
copy job.txt job.sik
Hier können Befehle angegeben werden, die vor der Ausführung des Job durchlaufen sollen.
Z.B Sicherung alter logs usw. Max. 50 Befehle a 256 Zeichen

Bereich [after]
[after]
# Befehle die nach der Verarbeitung ausgeführt werden sollen
sendmail job.txt [email protected]
executer job2.ini
Hier können Befehle angegeben werden, die nach der Ausführung des Job durchlaufen
werden sollen. Z.B Ergebnis per Mail versenden, oder der Aufruf eines anderen Jobs usw.
Max. 50 Befehle a 256 Zeichen
2.5 Der Suchmodus – die Suchmaske
Mit Hilfe der Suchmaske kann eine Suchfunktion gebildet werden, mit der die
Suchkriterien verknüpft werden. Dies ergibt eine Suchemaske, die einen Hit ergibt,
wenn die Maske den Wert TRUE liefert. Dabei wird die Suchmaske wie mit den
Zeichnen „&“ für UND und „|“ für ODER gebildet. Die Suchmaske wird das dann wie
folgt über die Suchkriterien gelegt.
&
/
&
/
Suchk1.
Suchmaske=&&
\
\
\
\
Suchk2. Suchk3.
Dabei gilt, wenn ein Suchkriterium gefunden wird liefert das Suchkriterium den Wert
TRUE zurück. Im Obigen Beispiel müssten also alle drei Suchkriterien enthalten sein,
damit er einen Treffer anzeigt.
2.6 Die Log Datei – der Logmodus
Abhängig vom Logmodus wird eine entsprechende Log Datei angelegt. Der
Dateiname der Log Datei ist „Job-Name“.log. In dieser Datei wird während der
Ausführung alles protokolliert. Es werden alle Fehlermeldungen und Fehlercodes
ebenfalls in die Log Datei geschrieben. Wenn der log_mod=1 aktiviert wurde, werden
zusätzlich alle Rückgaben der Befehle in der Pipe, ins log geschrieben. Daher sollte
bei einer Fehleranalyse immer log_mod=1 gewählt werden.
2.7 Das Ergebnis – nutzen des Ausgabemodus
Das Ergebnis des Durchlaufes wird in die Datei „Job-Name“.txt geschrieben. Dabei
kann zwischen verschiedenen Ausgabeformaten gewählt werden.
Die Standausgabe stellt das Ergebnis für jeden Server und jeden Befehl einzeln dar.
Als eine Alternative kann der out_mod=3 gewählt werden. Dieses Ausgabeformat
stellt im Kurzformat nur die Server dar, in denen die Ausgabe gefunden wurde.
Dieses Ausgabeformat eignet sich z.B. dazu Systemzustände darzustellen (Server
wird angezeigt => Server hat Problem ).
Ein weiteres Ausgabeformat ermöglicht den Aufbau von quasi Rekursionen bzw.
Schleifen. In diesem Format werden bei Treffern nur die Servernamen in die
Ausgabedatei geschrieben. Dadurch ist es möglich diese Ausgabedatei als Eingabe
Server-Datei für einen zweiten Aufruf vom Executer zu benutzen.
2.8 Die Server Datei – arbeiten mit Platzhalter
Um Mehrfachaufrufe über Platzhalter durchführen zu können, wird die Server Datei
benötig. Hier gibt es zunächst einmal die zentrale Server.ini Datei, welche über den
srv_mod=1 angesprochen wird. Dabei darf man sich nicht an dem Begriff „Server“
stören, da dies nur eine Anwendung ist. Anstatt von Servernamen kann natürlich
auch jede andere Zeichenfolge in diese Dateien eingetragen werden.
Neben der zentralen Server Datei, gibt es auch die Möglichkeit eine individuelle Job
bezogene Server Datei zu erstellen und zu verwenden. Dazu ist lediglich eine Datei
mit den entsprechenden Servernamen zu erstellen. Der Name der Datei ist in der Job
Datei unter srv_datei = „Dateiname“ zu vermerken, wobei der srv_mod=2 eingestellt
sein muss.
Für die Server Datei besteht folgende Begrenzung: 200 Zeilen a 40 Zeichen.
Die Abgrenzung der einzelnen Server geschieht zeilenweise, d.h. es wird immer
zeilenweise eingelesen und eine Zeile entspricht einem Server bzw. Platzhalter.
2.9 Nutzung von Vor- bzw. Nachverarbeitung – Aufbau von quasi Rekursionen
Mit der Vor- bzw. Nachverarbeitung bietet die Möglichkeit, einzelne Befehle vor bzw.
nach der Ausführung des eigentlichen Jobs, ausführen zu lassen. Dadurch lassen
sich z.B. alte logs sichern oder Protokollmails versenden. Damit erhält man die
Möglichkeit eine Art Rekursion aufzubauen.
Ein Beispiel:
Sie erstellen eine Job1.ini mit der alle Server aus der Server.ini nach einer
Eigenschaft abgeprüft werden. Alle Hits werden in die job1.txt geschrieben(Wichtig
das out_mod=2 !!!). Schreiben sie beim Job1 als Nachverarbeitungsbefehl den Aufruf
executer –f job2.ini rein. Erstellen Sie eine job2.ini und schreiben bei ihr unter
srv_datei=job1.txt. Dadurch wird die Ausgabe des ersten Jobs zur Server-Liste für
den zweiten Job. Damit erhalten sie eine einfache Verschaltung der Jobs.
Genauso können Sie die Vorverarbeitung benutzen. Im obigen Beispiel müsste nur
executer –f job1.ini als Vorverarbeitungsbefehl in die Job2.ini eingeschrieben
werden, womit man das gleiche Ergebnis hätte.
3. Beispiele und „Erste Schritte“
In dem Dokument Beispiele und „Erste Schritte“ finden Sie eine Einführung zum
Executer mit praktischen Beispielen.
4. Die Fehlermeldungen
Beim arbeiten mit dem Executer sind folgende Fehlermeldung möglich.
Fehler 1000: Die Job-Datei konnte nicht geöffnet werden !!!
Ursache: Die angegebene Job Datei ist nicht vorhanden
Problemlösung: Dateinamen überprüfen
Fehler 1001: Die Output Datei.txt konnte nicht geöffnet werden !!!
Ursache: Die Output Datei kann nicht angelegt werden
Problemlösung: prüfen ob ein anderes Prog. auf die Datei zugreift
Fehler 1002: System Pipe konnte nicht geöffnet werden !!!
Ursache: Das Betriebsystem verweigert das öffnen einer Pipe
Problemlösung: Rechner ggf. überlastet , Rechner neu starten
Fehler 1003: Die Job srv Datei konnte nicht geöffnet werden !!!
Ursache: Die angegebene srv Datei ist nicht vorhanden
Problemlösung: Dateinamen überprüfen, prüfen ob Datei vorhanden ist
Fehler 1004: Eine Datei konnte nicht geschlossen werden !!!
Ursache: evt.greifen andere Prozesse auf die Datei zu
Problemlösung: zugreifende Prozesse beenden
Fehler 1005: Job Datei Fehlerhaft !!!
Ursache: Die Job.ini Datei enthält nicht die nötigen Job Daten
Problemlösung: Format der Job Datei überprüfen
Fehler 1007: Die Datei server.ini konnte nicht geöffnet werden !!!
Ursache: Die angegebene server.ini Datei ist nicht vorhanden
Problemlösung: Dateinamen überprüfen, prüfen ob Datei vorhanden ist
Fehler 1008: Server Datei fehlerhaft !!!
Ursache: Die Server Datei hat ein ungültiges Format
Problemlösung: Einträge in der Server Datei überprüfen
Fehler 1009: Eine Pipe konnte nicht geschlossen werden !!!
Ursache: Der Befehl, der in der Pipe ausgeführt wurde leifert eine Fehlermeldung zurück
Problemlösung: überprüfen sie die Rückgaben anhand der log Datei und ändern ggf. den
Befehl.Wobei es auch möglich ist, dass der Befehl die richtige Rückgabe
liefert, aber dennoch diese Meldung kommt. In diesem Fall kann diese
Fehlermeldung ignoriert werden
Fehler 1011: Suchmasken Schlüssel enthält undefinierte Zeichen, korregieren sie die INI Datei!!!
Ursache: Die Suchmaske darf nur aus den Zeichen „&“ und „|“ bestehen
Problemlösung: Ändern sie die Suchmaske
Fehler 1013: Fehler in JOB INI-Datei. Anzahl zu groß. Nur max 50 Einträge je Bereich zulässig!!!
Ursache: Die Job Datei hat ein ungültiges Format
Problemlösung: Einträge in der Job Datei überprüfen
Fehler 1014: Fehler in JOB INI-Datei. Suchmaske oder Anzahl Suchkriterien stimmen nicht!!!
Ursache: Die Job Datei hat ein ungültiges Format
Problemlösung: Einträge in der Job Datei überprüfen
5. Hinweise
5.1 Verwendung von Umlauten
Da es ggf. zu Problemen bei der Verwendung von Umlauten kommen kann,
folgender Hinweis.
Damit ihr Suchkriterium mit Umlauten auch wirklich gefunden wird, verfahren sie wie
folgt. Erstellen sie zunächst ihren Job. Lassen sie diesen mit log_mod=1 durchlaufen.
Kopieren sie aus der Rückgabe ihrer Befehle den Bereich, der als Suchkriterium
gelten soll, in die Job Datei. Nun sind sie sicher das die Zeichenfolge gefunden wird.
6. History

01.08.2000 Executer V1.0
Erste Version von Executer ist verfügbar und über Homepage Executer
downloadbar http://www.uni-magdeburg.de/burdack/executer

08.08.2000 Executer V1.1
Neuerungen:
 Eingabe von NICHT Suchkriterien möglich.



Suchfunktion überarbeitet
Eingabemöglichkeit von Suchmasken
Ausgabemodus 4 implementiert, der nur die gefundenen Zeilen ausgibt.
7. Copyright
Alle Rechte liegen bei © 2000 Heiko Burdack.
Für durch das Programm verursachte Fehler und Schäden an Soft- und Hardware
übernimmt der Autor keine Haftung !!!
Das Programm ist Freeware, es ist für die private sowie gewerbliche Nutzung
freigegeben.
Die Verteilung, der Verkauf oder sonstige kommerzielle Nutzung des Programms ist
nur mit Zustimmung des Autors Heiko Burdack erlaubt. Eine Verlinkung der
Internetseite ist erlaubt und ausdrücklich erwünscht.
Executer © 2000, 02.08.2000 Heiko Burdack
Herunterladen