itschlumpf
Goto Top

Programm zur Batch-Überwachung

Hallo zusammen,

ich bin gelernter Fachinformatiker und mache gerade ein Duales Studium zum Wirtschaftsinformatiker.
Ich habe jetzt den Autrag bekommen, ein Programm im Internet zu suchen, welches den Ablauf von verschiedenen Batch Programmen überwacht und bei einem Stillstand des Ablaufes eine Aktion ausführt. Kennt ihr vll so ein Programm?
Kennst einer von euch vll noch ein Backup Programm, welches Kostenlos ist und mit dem ich auf entfernte Rechner zugreifen kann um dort bestimmte Ordner zu sichern?
Habe bisher nichts gefunden bzw. nur kostenpflichtige Tools und dachte Ihr könntet mir vll helfen.

Vielen dank im Voraus face-smile

Grüße

ITSchlumpf

Content-Key: 172782

Url: https://administrator.de/contentid/172782

Ausgedruckt am: 29.03.2024 um 07:03 Uhr

Mitglied: onkel-ossi
onkel-ossi 08.09.2011 um 09:13:11 Uhr
Goto Top
Hallo ITSchlumpf,

Zu Punkt 1: Willkommen im Internet und viel Spass mit der Suche face-wink Um was für Batchdateien geht es denn, denkbar wäre es zum Beispiel mit einem Tool die ausgeführten Prozesse zu kontrollieren, oder das Ergebnis (z.B. Ein Logfile) auf geänderte Inhalte oder Dateidaten ( von Datum) zu überprüfen. Tools gibt es soviele wie Möglichkeiten, da solltest du etwas genauer spezifizieren was genau gefordert / gegeben ist.

Zu Punkt 2: wenn du über eine Freigabe ( und sei es c$) auf den anderen Rechner zugreifen kannst würde zum Beispiel robocopy soetwas shr gut können ( sofern es denn um Windowsrechner geht)

Gruss
Thomas
Mitglied: ITSchlumpf
ITSchlumpf 08.09.2011 um 09:20:50 Uhr
Goto Top
Hallo Thomas,

danke für die schnelle Antwort. Also es sind gekapselte SQL-Abfragen welche als Batch ausgeführt werden müssen. Das Programm sollte erkennen, wenn die Batch dateien fehler werfen/still stehen und sie dann stoppen und evtl. neu starten.
Robocopy werd ich dann mal ausprobieren. Danke.


Gruss
Schlumpf
Mitglied: 60730
60730 08.09.2011 um 09:43:12 Uhr
Goto Top
moin,

im speziellen Fall wäre wohl eine Steuer & Überwachungsbatch genauso wenig verkehrt, wie der SQL Statement Batch beizubringen, Ihre Logs in eine Logdatei auszugeben.

Die Frage ist jedoch - warum soll das gemacht werden.
"Nur" aus Jux und Dollerei, oder weil der Ablauf öfters klemmt.

Denn so pauschal global kann man da nicht die Lösung nennen, nur einen Weg nach Rom.

Gruß
Mitglied: ITSchlumpf
ITSchlumpf 08.09.2011 um 10:02:20 Uhr
Goto Top
Der Ablauf klemmt ab und zu mal also eher sporadisch und beendet sich dann auch nicht sondern bleibt nach dem durchlauf einfach stehen. Ich hab jetzt mal was von Cronjobs gelesen und möchte das mal ausprobieren.


Also hab mir grad nochmal das Szenario erklären lassen vll hilft es ja wenn ihr mehr Infos habt face-smile

Szenario 5 Batch + 5 Java dateien werden gestart. Im Taskmanager steht jetzt 5 mal cmd.exe und 5 mal java.exe. Wenn eine von den Batch dateien bzw. Java dateien abstürzt(Verbindungsabbruch) soll das Programm erkennen, welche der Dateien das Problem verursacht und diesen Task dann abschießen. D.h. das Programm müsste erkennen welche Batch welche Task im Taskmanager ist und diese dann schließen.
Also irgendwie glaube ich nicht ganz daran, dass es dafür eine Lösung gibt aber okay ich lass mich überraschen ^^

Gruß
Mitglied: ITwissen
ITwissen 08.09.2011 um 12:59:03 Uhr
Goto Top
Wenn die batch oder das java "abstürtzt", ist der Prozess dann nicht sowieso weg? Dann braucht man ihn doch nicht abschiessen.
Mitglied: 99045
99045 08.09.2011 um 13:02:45 Uhr
Goto Top
Hi,

gib jeder Batch-Datei einen eindeutigen TITLE, dann kannst du mit Tasklist nach dem Windowtitle suchen und gezielt beenden.
Mitglied: ITSchlumpf
ITSchlumpf 08.09.2011 um 13:06:50 Uhr
Goto Top
@ITwissen: Teilweise beenden sich die Tasks auch aber teilweise bleiben sie eben stehen, dann startet der gleiche Task nochmal und schon blockieren sie sich gegenseitig aufm SQL Server.

@99045: Danke. Die Idee ist zwar gut, aber dann steht im Taskmanager immernoch cmd.exe und ich kann nicht unterscheiden welche Batch welche cmd.exe ist und welche java datei dazugehört. Aber der Ansatz wäre schonmal sehr gut. face-smile
Mitglied: 99045
99045 08.09.2011 um 13:10:43 Uhr
Goto Top
Wie? So:
<code type=plain">
TITLE Mein tolles Batchprogramm
Mitglied: ITwissen
ITwissen 08.09.2011 um 13:35:23 Uhr
Goto Top
Also, wenn deine batch/java nicht einen speziellen Mechanismus haben, mit dem sie anzeigen, dass die "hängen" kann man das nur mit einem Timeout erledigen. Dann könnte man den Windows "Task Scheduler" dafür missbrauchen.

Oder man schreibt einen 10 Zeiler mit AutoIT, das die Prozesse startet und sich die PIDs merkt und verwaltet.

Wenn man verhindern möchte, dass ein Task zweimal startet, speichert man die PID in einer Datei und prüft das vor den erneuten starten (Befehl: tasklist).
Mitglied: ITSchlumpf
ITSchlumpf 08.09.2011 um 14:05:42 Uhr
Goto Top
Also ich habe jetzt mal den Weg von Kaputtnick gewählt und habe mir einen Taskkill befehl geschrieben welchen den Titel des Fenster abfrägt. Leider funktioniert der noch nicht ganz und ich weiß grad net wieso, weil viel kann man jan nicht falsch machen.

taskkill /F /FI "WINDOWTITLE eq #DropMyRights#" /IM cmd.exe

So müsste das doch eigentlich funktionieren oder?
Mitglied: 99045
99045 08.09.2011 um 14:15:08 Uhr
Goto Top
Zitat von @ITSchlumpf:
So müsste das doch eigentlich funktionieren oder?

Wenn Windowtitle tatsächlichg #DropMyRights# ist und dir das auch so von Tasklist /V angezeigt wird: Ja.
Vorausgesetzt, der Benutzer der Batch ist der angemeldete Benutzer, ansonsten musst du den Benutzer auch noch angeben.
Mitglied: ITSchlumpf
ITSchlumpf 08.09.2011 um 14:34:23 Uhr
Goto Top
Ja steht drinne als cmd.exe und wenn ich den Befehl ausführe, bekomme ich die Meldung, dass keine Aufgaben mit diesen Kriterien gefunden wurden.
Mitglied: 99045
99045 08.09.2011 um 14:40:24 Uhr
Goto Top
Das Filter Windowtitle verträgt auch die Wildcard * am Ende, versuch's mal damit, vielleicht hast du ein Space zuviel.
Mitglied: ITSchlumpf
ITSchlumpf 08.09.2011 um 14:43:53 Uhr
Goto Top
Mitglied: ITSchlumpf
ITSchlumpf 08.09.2011 um 14:46:23 Uhr
Goto Top
  • als Wildcard hab ich schon getestet geht auch nicht. Habs grad mit
taskkill /F /FI "WindowTitle Administrator:* " /IM cmd.exe
geschafft aber dann schließen sich alle cmd Fenster und das sollte nicht passieren. Irgemdwie komisch das ganze.
Mitglied: 99045
99045 08.09.2011 um 14:50:02 Uhr
Goto Top
Das ist ja nun ganz falsch. Wenn, dann mit /FI "Username eq Administrator" /FI Windowtitle equ usw.....

taskkill /F /FI "Windowtitle eq #DropMyRights#" /IM cmd.exe
funktioniert hier einwandfrei.
Mitglied: ITSchlumpf
ITSchlumpf 08.09.2011 um 14:56:49 Uhr
Goto Top
Fühle mich grad von meinem Windows total verarscht wenn es bei dir geht.
Also in der tasklist steht Administrator: DropMyrights deswegen hab ich es mal mit dem Administrator als zusatz gewählt. Okay danke dann muss ich mal schauen ob es an irgendwelchen berechtigungen liegt oder so.
Mitglied: ITSchlumpf
ITSchlumpf 08.09.2011 um 15:07:30 Uhr
Goto Top
Es liegt wohl am Windows 7 und AD Berechtigungen. Hab es jetzt auf ner XP Maschine getestet und da läuft es einwandfrei.

Vielen dank für die ganzen Hilfen von euch hat mich echt weiter gebracht.

Dann schließ ich mal den Thread.
Mitglied: 99045
99045 08.09.2011 um 15:10:51 Uhr
Goto Top
Also in der tasklist steht Administrator: DropMyrights
Dann musst du auch nach "Windowtitle eq Administrator: DropMyrights" filtern.
Mitglied: ITSchlumpf
ITSchlumpf 08.09.2011 um 15:25:16 Uhr
Goto Top
Hab ich ja und es ging trotzdem unter Win7 nicht und unter XP trotzdem mit dem gleichen Befehl. Ist halt komisch.