Batch Datei per Taskplaner bricht mit Ergebniswert 1 ab

masterds
Goto Top

Windows 2000 Server Taskplaner Problem

Hallo Gemeinde!

Habe ein Problem mit dem Taskplaner des Windows 2000 Server. Es gibt hier schon einige Beiträge zu Problemen mit Batchdateien die über den Taskplaner ausgeführt werden sollen, aber diese konnten mir nicht helfen.

PROBLEM:
Ich habe eine Batch-Datei, welche mir die Datenbanken des SQL-Servers via mySQLDump exportiert und anschliessend mittels rar.exe komprimiert. Die Batch funktioniert auch einwandfrei wenn ich sie manuell starte. Über den Taskplaner keine Chance.

Ereignislog:
"mySQL-Sicherung(alleDBs).job" (mySQL-Sicherung(alleDBs).bat)
Start: 06.06.2008 11:34:31
"mySQL-Sicherung(alleDBs).job" (mySQL-Sicherung(alleDBs).bat)
Ende: 06.06.2008 11:34:32
Ergebnis: Der Task wurde mit folgendem Ergebniswert abgeschlossenace-sad"1).

Ich habe auch schon versucht eine "einfache" Batch Datei auszuführen, welche nur einen Ordner auf C:\ erstellt und diese FUNKTIONIERT!!!

Weiss jemand Rat?

Gruß

MasterDS

Content-Key: 89284

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

Ausgedruckt am: 14.08.2022 um 10:08 Uhr

Mitglied: Biber
Biber 06.06.2008 um 12:28:34 Uhr
Goto Top
Moin MasterDS,

ohne einen Blick in die mySQL-Sicherung(alleDBs).bat zu werfen wird es ein Stück weit mehr oder weniges hilfloses Herumraten bleiben.

Das wahrscheinlichste ist, dass der User, unter dessen ID das ganze läuft, entweder angesprochene Netzlaufwerke nicht zur Verfügung hat (kein net use->kein Laufwerk) oder das dieser angesprochene User keine DB_Rechte hat.

Ist denn diese mySQL-Sicherung(alleDBs).bat länger als 288cm?
Soviel Platz wäre noch unter diesem Kommentar.

Grüße
Biber
Mitglied: masterds
masterds 06.06.2008 um 13:10:08 Uhr
Goto Top
Hey,

danke für die schnelle Antwort. Ich poste einfach mal den Inhalt der Batch. Netzlaufwerke werden allerdings nicht angesprochen und der User ist das Adminkonto des Servers.

@echo OFF

set jahr=%date:~-4%
set monat=%date:~-7,2%
set tag=%date:~-10,2%

set stunde=%time:~-11,2%
set minute=%time:~-8,2%
set sekunde=%time:~-5,2%
set msekunden=%time:~-2%
set STAMP=%jahr%%monat%%tag%%stunde%%minute%%sekunde%
set LOG="mySQLSicherung_LOG_%STAMP%.txt"

echo ############################################################ > %LOG%
echo ######### Ereignislog zur MySQL Datensicherung ########### >> %LOG%
echo ############################################################ >> %LOG%
echo. >> %LOG%
echo Datum / Uhrzeit: %tag%.%monat%.%jahr% Uhrzeit: %stunde%:%minute%.%sekunde% >> %LOG%
cd..
mkdir Sicherung_ALLE_%STAMP%

cd Tool
echo. >> %LOG%
echo Ordner 'Sicherung_ALLE_%STAMP%' wurde im Verzeichnis erstellt. >> %LOG%
echo Sicherungsvorgang gestartet - Bitte warten... >> %LOG%

mysqldump.exe mysql>Sicherung_mysql.sql

echo. >> %LOG%
echo Sicherung ERFOLGREICH erstellt >> %LOG%

echo Sicherung komprimieren und Archiv erstellen... >> %LOG%

rar.exe a Sicherung_ALLE_DBs.rar *.sql >> %LOG%
echo. >> %LOG%
echo Archiv wird verschoben... >> %LOG%

move Sicherung_ALLE_DBs.rar ..\Sicherung_ALLE_%STAMP%

echo Sicherung erfolgreich verschoben! >> %LOG%

del Sicherung_mysql.sql

echo Temporäre Dateien gelöscht. >> %LOG%

echo Ende der Datensicherung um %time%. >> %LOG%
move %LOG% ..\Sicherung_ALLE_%STAMP%

exit


Ich denke was die Batch macht ist relativ klar. Zur Info: Die Batch liegt in einem Verzeichnis "Tool". Die Ordner für die einzelnen Sicherungen werden in der Ordnerstruktur darüber erstellt. Aber eigentlich funktioniert die Batch... face-confused

Danke dennoch.
Mitglied: Biber
Biber 06.06.2008 um 13:38:27 Uhr
Goto Top
Re-Hey,

dass der batch eigentlich funktioniert, das glaub ich doch.
Davon hab ich 100er ...eigentlich...

Frage:
Findet der User "Administrator" die "rar.exe"? Liegt die im selben Verzeichnis?
Findet der User "Administrator" die "mysqldump.exe"? Liegt die im selben Verzeichnis?
Ist der User "administrator" der mySQL-DB bekannt?

Grüße
Biber
Mitglied: 60730
60730 06.06.2008 um 13:39:30 Uhr
Goto Top
Moin,

Ich denke was die Batch macht ist relativ klar. Zur Info: Die Batch liegt in einem Verzeichnis "Tool".
Die Ordner für die einzelnen Sicherungen werden in der Ordnerstruktur darüber erstellt. Aber eigentlich funktioniert die Batch... face-confused

mach mal folgendes
at 14:00 c:\xyz\tool\mysql.bat /interactive
ich "mag" AT immer noch lieber als "Geplante Tasks" - auch wegen dem Schalter /interactive
?oder gibts den bei Geplante Tasks auch und ich hab Ihn nur noch nie probiert?
Mitglied: masterds
masterds 06.06.2008 um 13:51:45 Uhr
Goto Top
Frage:
Findet der User "Administrator" die "rar.exe"? Liegt die im selben Verzeichnis?
Findet der User "Administrator" die "mysqldump.exe"? Liegt die im selben Verzeichnis?
Ist der User "administrator" der mySQL-DB bekannt?

Ja. Die rar.exe und die mysqldump.exe liegen beide im gleichen Verzeichnis. Und auf der console kann ich mysqldump auch benutzen, wenn ich mit dem Adminkonto angemeldet bin. Sollte also auch gehen. Wie gesagt die Batch an sich geht.

Ich teste jetzt mal parallel die "at"-Geschichte, wobei mir der Taskplaner aufgrund der UI lieber wäre. Dennoch danke für den Tipp.
Mitglied: 60730
60730 06.06.2008 um 14:17:41 Uhr
Goto Top
Ich teste jetzt mal parallel die "at"-Geschichte, wobei mir der Taskplaner aufgrund der UI lieber wäre.

Mach mal und gehe "Spasseshalber" danach in "Geplante Tasks" - der Job mit dem Namen At1 ist dann genauso in der Ui zu sehen, als ob du ihn direkt dort angelegt hättest.
Damit [AT] kriegst du auch einen Job ohne viel "Klickibunti" als System gestartet (wenn du Adminrechte hast) - all das fehlt mir in der Gui von schtasks und die Gui mag ich persönlich nicht so gerne.
Dennoch danke für den Tipp
Gern geschehen - AT/? wäre für den Fall dass es klappt bzw. /Every:Mo - je nach OS Sprache Di oder Tue usw.
Mitglied: masterds
masterds 06.06.2008 um 14:27:20 Uhr
Goto Top
Soooooo...... Ergebnisreport --> Funktioniert NICHT!!!

(Aber der "at" Befehl ansich bleibt ein guter Tipp) face-wink

Habe den Task mit at geplant und nach der Zeit war er auch verschwunden. Ausgeführt hat er die Batch allerdings nicht.

Log ist identisch.

"At3.job" (mySQL-Sicherung(alleDBs).bat)
Start: 06.06.2008 14:22:00
"At3.job" (mySQL-Sicherung(alleDBs).bat)
Ende: 06.06.2008 14:22:00
Ergebnis: Der Task wurde mit folgendem Ergebniswert abgeschlossenace-sad"1).


Woran (so ein sch...) kann das denn liegen, wenn sich die Batch so normal ausführen lässt? Versteh ich nicht.
Mitglied: 65627
65627 06.06.2008 um 14:55:35 Uhr
Goto Top
Unter welchen Nutzerdaten soll denn der Task im Taskplaner ausgeführt werden?
Wenn du den AT-Befehl verwendest willst, musst du auch das "Dienstkonto" angeben.

Lies dich dazu mal in der Windows-Hilfe ein.
Mitglied: 60730
60730 06.06.2008 um 15:03:17 Uhr
Goto Top
poste mal den Inhalt des erzeugten .logs hier.
Da werden wir (anhand der Batch, die das log erzeugt) besser sehen, wo es klemmt.

Tipp vorab - probiers mal mit 7zip anstelle von RAR - vermutlich liegt da der Hund begraben.
Mitglied: masterds
masterds 06.06.2008 um 15:19:50 Uhr
Goto Top
poste mal den Inhalt des erzeugten .logs hier.


Na meine Batch erzeugt kein Log. Sollte sie zwar, aber sie wird ja nicht ausgeführt. Das mit 7zip werd ich testen.

Wenn du den AT-Befehl verwendest willst, musst du auch das "Dienstkonto" angeben.


Was soll denn "Dienstkonto" bedeuten? Ich bin als Administrator angemeldet!?!
Mitglied: 60730
60730 06.06.2008 um 15:26:54 Uhr
Goto Top
Na meine Batch erzeugt kein Log. Sollte sie zwar, aber sie wird ja nicht ausgeführt.

Ach jetzt hab ichs... Hä???

Startet "überhaupt" ein Script aka


Das mit 7zip werd ich testen.
Kannste gerne - aber nicht, weil das mein Liebling ist und da das Skript nicht läuft, sollten wir vorher das lösen...
Wenn du den AT-Befehl verwendest willst, musst du auch das "Dienstkonto" angeben.
Oder es genauso machen wie ichs geschreiben habe, dann läuft der Job als System / wenn du Admin bist.
Mitglied: masterds
masterds 06.06.2008 um 15:32:07 Uhr
Goto Top
Ich glaube wir reden aneinander vorbei.

Mein Script funktioniert so wie es ist. Allerdings nur wenn ich es per Doppelklick ausführe. Es funktioniert hingegen nicht über den TaskPlaner oder den "at"-Befehl. Das ist ja das kuriose... Ich teste dann jetzt mal 7zip. face-smile
Mitglied: 60730
60730 06.06.2008 um 16:03:02 Uhr
Goto Top
moin,

neee nee - wir reden sicher nicht aneinander vorbei.

Ich wollte wissen, ob überhaupt ein Script per Taskplaner durchgeführt wird.
Du schreibst ja - daß kein Log erstellt wird - und das Log wird ja ab Zeile 11 - wo Rar usw. noch gar nicht im Spiel sind erzeugt (sollte) erzeugt werden.
An deinem Script sehe ich erstmal keinen Fehler. Was du auch glaubhaft sagst, weil es per Doppelklick läuft.
Mitglied: 65627
65627 06.06.2008 um 16:33:51 Uhr
Goto Top
Dann pack doch endlich mal ein


an den Anfang deiner Batch. Es kann doch nicht sein, dass man sich mit so einem Pipifax seitenlang beschäftigt.
Mitglied: Biber
Biber 09.06.2008 um 07:40:02 Uhr
Goto Top
Moin masterds,

bevor Du noch mehr nervenschwache Mitglieder in die Abmeldung treibst:
Hast Du denn inzwischen mal eine "echo Kuckuck, Script läuft"-Zeile in diese Batchdatei eingebaut und diese Zeile auf dem Bildschirm wiedergesehen?

Oder hast Du Dich anders an eine Lösung herangetastet - wenn ja, wie?

Grüße
Biber
Mitglied: masterds
masterds 09.06.2008 um 11:20:37 Uhr
Goto Top
Guten morgen zusammen!

Also ich möchte hier sicherlich niemanden in die Verzweiflung, geschweige denn in die Abmeldung treiben. face-wink Leider ist es nun mal so, dass sich manche Probleme nicht so einfach lösen lassen.

Ja, ich habe ein echo zu beginn des Scripts eingebaut. Ergebnis: Das Script wird nicht ausgeführt, bzw. das echo wird nicht angezeigt und im Log steht folgendes:

"At4.job" (mySQL-Sicherung(alleDBs).bat)
Start: 09.06.2008 11:16:00
"At4.job" (mySQL-Sicherung(alleDBs).bat)
Ende: 09.06.2008 11:16:00
Ergebnis: Der Task wurde mit folgendem Ergebniswert abgeschlossenace-sad"1).


Ich versuche jetzt noch mal das Script Stück für Stück. Vielleicht komme ich so weiter.
Mitglied: masterds
masterds 09.06.2008 um 11:41:36 Uhr
Goto Top
Problem gelöst!

Nachdem ich jetzt quasi Zeile für Zeile das Script in eine Test.bat kopiert und jedesmal erneut im Taskplaner getestet habe, konnte ich das Problem finden und lösen. Leider war es das dämlichste Problem was auftreten konnte.

Das Script war absolut in Ordnung. NUR DER NAME DER BATCHDATEI WAR AUSSCHLAGGEBEND!!!
"mySQL-Sicherung(alleDBs).bat" findet der Taskplaner scheinbar nicht so prickelnd. Ich vermute aufgrund der Klammern, denn mit unterstrich funktioniert es.

Vielen vielen Dank dennoch für eure Hilfe.