jhaustein
Goto Top

Problem beim Ausführen einer bat Datei zur Sicherung

Hallo Gemeinschaft,

habe ein Problem mit dem Ausführen einer Bat Datei wenn ich sie manuell ausführe - dann klappt die Sicherung

führe ich sie als aufgabe aus - dann wird die Datei erstellt aber mit Größe 0

@echo off

mysqldump -uadmin -ppass 2023 > "Z:\Sicherung_Datenbank\DS.sql"  

habt ihr ne Idee woran das liegen kann

Content-ID: 23972230125

Url: https://administrator.de/forum/problem-beim-ausfuehren-einer-bat-datei-zur-sicherung-23972230125.html

Ausgedruckt am: 22.12.2024 um 07:12 Uhr

viragomann
viragomann 23.05.2024 um 17:42:02 Uhr
Goto Top
Hallo,

das heiß jedenfalls, dass der mysqldump Befehl keine Ausgabe produziert.

Versuche es mit der Angabe des vollständigen Pfads.

Das Passort im Batch-File mag mysql auch nicht mehr. Es sollte besser ein Konfig-File verwendet werden.
Aber das sollte im schlimmsten Fall zu einer Warnung führen.

LG
jhaustein
jhaustein 23.05.2024 aktualisiert um 17:56:03 Uhr
Goto Top
was meinst du mit vollständigem Pfad?
wie kann es denn sein, dass wenn ich es manuell ausführe - dann klappt
viragomann
viragomann 23.05.2024 um 18:03:51 Uhr
Goto Top
C:\...\mysqldump ...

wie kann es denn sein, dass wenn ich es manuell ausführe - dann klappt
Ja, ich glaube, ich kenne das Problem eher von UNIX Systemen, bin mir aber nicht sicher.
Xerebus
Xerebus 23.05.2024 um 18:07:00 Uhr
Goto Top
Zitat von @jhaustein:

wie kann es denn sein, dass wenn ich es manuell ausführe - dann klappt
Weil du vielleicht da schon im Pfad bist.
Versuchs doch einfach. Hört sich doch gut an die Idee.
vossi31
vossi31 23.05.2024 aktualisiert um 18:28:35 Uhr
Goto Top
Moin,

der (nicht angemeldete) User, der deine Aufgabe ausführt kennt den Pfad zum mysqldump und/oder Laufwerk Z: nicht.
Ersetze es also durch den kompletten Pfad bzw. UNC-Pfad.

Henning
viragomann
viragomann 23.05.2024 um 18:29:47 Uhr
Goto Top
Zitat von @vossi31:
der (nicht angemeldete) User, der deine Aufgabe ausführt kennt den Pfad zum mysqldump und/oder Laufwerk Z: nicht.

Dann würde es da auch keine Datei erstellen.
BassFishFox
BassFishFox 23.05.2024 um 22:05:32 Uhr
Goto Top
Das > erzeugt halt eine Datei.
Schau mal rein was im Fehlerfall drin steht in der erzeugten Datei.
jhaustein
jhaustein 24.05.2024 um 06:11:34 Uhr
Goto Top
nee - leider ist die Datei leer

habs nun so probiert
kein Erfolg

manuell gehts - als Aufgabe nicht

SETLOCAL

rem ----EINSTELLUNGEN--------------------------------

set "MySQLPath=C:\xampp1\mysql\bin"  
set "BackupPath=Z:\Sicherung_Datenbank"  

set "MySQLDB=2023"  
set "MySQLUser=admin"  
set "MySQLPwd=admin"  
set "MySQLPort=3306"  

rem -------------------------------------------------


set "BackupDate=%date:~-4%%date:~-7,2%%date:~-10,2%"  
set "BackupTime=%time:~-11,2%%time:~-8,2%%time:~-5,2%"  

set "BackupFile=%BackupDate%_%BackupTime%.sql"  

%MySQLPath:~0,2%

cd %MySQLPath%\bin

echo DS Datenbank-Backup wird erstellt... [Datenbank: %MySQLDB%]

mysqldump -u%MySQLUser% -p%MySQLPwd% %MySQLDB% --port=%MySQLPort%> "%BackupPath%\%BackupFile%"  
kpunkt
kpunkt 24.05.2024 um 06:51:51 Uhr
Goto Top
Sicher, dass der Pfad für mysqldump ein "C:\xampp1\mysql\bin\bin" ist?
jhaustein
jhaustein 24.05.2024 aktualisiert um 07:18:27 Uhr
Goto Top
wie gesagt - es geht ja, wenn man es manuell auslöst

hab mal getestet
@echo off
xcopy "C:\Sicherung" "Z:\Datensicherung" /c /d /i /y  
exit

das geht
13034433319
13034433319 24.05.2024 aktualisiert um 07:21:56 Uhr
Goto Top
SETLOCAL

rem ----EINSTELLUNGEN--------------------------------

set "MySQLPath=C:\xampp1\mysql\bin"    
set "BackupPath=\\Server\Share\Sicherung_Datenbank"    

set "MySQLDB=2023"    
set "MySQLUser=admin"    
set "MySQLPwd=admin"    
set "MySQLPort=3306"    

rem -------------------------------------------------


set "BackupDate=%date:~-4%%date:~-7,2%%date:~-10,2%"    
set "BackupTime=%time:~-11,2%%time:~-8,2%%time:~-5,2%"    

set "BackupFile=%BackupDate%_%BackupTime%.sql"   

echo DS Datenbank-Backup wird erstellt... [Datenbank: %MySQLDB%]
>"%BackupPath%\%BackupFile%" "%MySQLPath%\mysqldump.exe" -u%MySQLUser% -p%MySQLPwd% %MySQLDB% --port=%MySQLPort%    

Taskeinstellungen ???
elbonai
elbonai 24.05.2024 um 07:19:27 Uhr
Goto Top
Moin,

ich könnte mir auch vorstellen, das der Benutzer mit dem die Aufgabe ausgeführt wird, keine Berechtigung auf dem Zielpfad hat.

LG
jhaustein
jhaustein 24.05.2024 um 07:22:21 Uhr
Goto Top
@13034433319: set "BackupPath=\\192.168.178.98\Sicherung_Datenbank" - so geht es nicht
@elbonai: dann dürfte es doch manuell nicht funktionieren
13034433319
13034433319 24.05.2024 aktualisiert um 07:27:41 Uhr
Goto Top
Zitat von @jhaustein:

@13034433319: set "BackupPath=\\192.168.178.98\Sicherung_Datenbank" - so geht es nicht
Da fehlt ja auch der Share-Name ...
Und ganz unten der redirect wurde auch geändert, denn wenn beim Redirect Zahlen davor stehen gibt es Probleme das statt Stdout ein anderer Kanal ausgegeben wird .

Die Taskeinstellungen kennt hier auch niemand .... Mal wieder Freitag 🐟🐟

Lies die Fehlermeldung!! Und lass sie dir aus der Batch im Task in eine Datei ausgeben
em-pie
em-pie 24.05.2024 um 07:25:37 Uhr
Goto Top
Moin,

wie gesagt - es geht ja, wenn man es manuell auslöst
Dann ermittle die Unterschiede!
  • Sind die user identisch, sprich ist es der gleiche User im geplanten Task, wie der, der das Script manuell ausführt?
  • Haben, bei verschiedenen Usern, beide Zugriff auf den Pfad (was dafür spricht, sonst würde auch die 0Kb-Datei nicht erstellt werden)?
  • dürfen beide User auf C:\xampp1\mysql\bin zugreifen?
elbonai
elbonai 24.05.2024 um 07:26:35 Uhr
Goto Top
Manuell führst du die Bat durch nen Doppelklick aus?
Wenn ja, dann wird sie mit dem aktuell angemeldeten Benutzer ausgeführt.

Als Aufgabe halt mit dem Benutzer den du in der Aufgabenplanung angegeben hast. Und wenn der ein anderer ohne Schreibrechte ist, dann wird halt nur ne leere Datei erstellt.
jhaustein
jhaustein 24.05.2024 um 07:28:20 Uhr
Goto Top
nun aber face-smile


\\192.168.178.98\Public

manuell geht es

task nicht - Datei leer
jhaustein
jhaustein 24.05.2024 um 07:29:36 Uhr
Goto Top
@elbonai - habe es nun so gemacht, dass ich die Task als Admin ausführe - gleich Ergebnis
jhaustein
jhaustein 24.05.2024 um 07:31:35 Uhr
Goto Top
@em-pie
Sind die user identisch, sprich ist es der gleiche User im geplanten Task, wie der, der das Script manuell ausführt? - ja
Haben, bei verschiedenen Usern, beide Zugriff auf den Pfad (was dafür spricht, sonst würde auch die 0Kb-Datei nicht erstellt werden)? - gleiche user
dürfen beide User auf C:\xampp1\mysql\bin zugreifen? - ist nur ein user
13034433319
13034433319 24.05.2024 aktualisiert um 07:59:35 Uhr
Goto Top
Wie gesagt Fehler erst mal mit ausgeben lassen und auch erst mal lokal dann siehst du auch was schief läuft, Log-Ordner natürlich vorher anlegen
>"C:\temp\status.log" 2>&1 "%MySQLPath%\mysqldump.exe" -u%MySQLUser% -p%MySQLPwd% %MySQLDB% --port=%MySQLPort%      
Klappt das, dann damit nochmal den orignalen Pfad einsetzen und File begutachten
>"%BackupPath%\%BackupFile%" 2>&1 "%MySQLPath%\mysqldump.exe" -u%MySQLUser% -p%MySQLPwd% %MySQLDB% --port=%MySQLPort%      
jhaustein
jhaustein 24.05.2024 um 08:04:16 Uhr
Goto Top
beides mal das gleiche - manuell wie auch task

korrekte Ausgabe - lokal geht es
13034433319
13034433319 24.05.2024 aktualisiert um 08:08:06 Uhr
Goto Top
Zitat von @jhaustein:

beides mal das gleiche - manuell wie auch task

korrekte Ausgabe - lokal geht es

Na also, dann mach den Fred zu wenn es nun geht.
jhaustein
jhaustein 24.05.2024 um 08:09:08 Uhr
Goto Top
leider nur nicht auf Z
13034433319
Lösung 13034433319 24.05.2024 um 08:10:29 Uhr
Goto Top
Beantworte erst mal alle Fragen von den obigen Posts ...
kpunkt
kpunkt 24.05.2024 um 08:15:11 Uhr
Goto Top
Zitat von @13034433319:

Beantworte erst mal alle Fragen von den obigen Posts ...

Da ist er lernresistent. Fehlermeldungen wirst du so gut wie nie von ihm bekommen. Da kommt immer nur ein "geht nicht".
jhaustein
jhaustein 24.05.2024 um 08:16:40 Uhr
Goto Top
nein - es wird auch keine log Datei erstellt
jhaustein
jhaustein 24.05.2024 um 08:23:32 Uhr
Goto Top
nun klappt es - lieben Dank für deine Hilfe
13034433319
13034433319 24.05.2024 aktualisiert um 09:19:57 Uhr
Goto Top
Zitat von @jhaustein:

nun klappt es
Aha, sehr aufschlussreich. Übernimm dich bitte nicht bei den überrragend vielen Tastenanschlägen.
elbonai
elbonai 24.05.2024 um 10:22:30 Uhr
Goto Top
Und woran hat et jelegen?
viragomann
viragomann 24.05.2024 um 11:23:44 Uhr
Goto Top
Zitat von @elbonai:

Und woran hat et jelegen?

Ist Betriebsgeheimnis!
Könnte ja ein Konkurrent Nutzen daraus ziehen.
13034433319
13034433319 24.05.2024 aktualisiert um 14:56:42 Uhr
Goto Top
Seine Shift-Taste funktioniert nicht .... :-P