MySQL Dump batchscript

Alles, was MariaDB und MySQL betrifft, kann hier besprochen werden.

MySQL Dump batchscript

Postby goran75 » 05. February 2007 13:46

Hab da mal ne Frage was das ausführen eines Batch Scriptes unter Windows angeht.
Ich habe ein batch script erstellt, welches mir ein Backup von einer Datenbank automatisch erstellt. Nun möchte ich jedoch dieses Script unter Windows Tasks täglich einmal ausführen, was auch klappt, nur habe ich das problem, das es immer wieder dieselbe Backup Datei überschreibt, da ich keine Datumsvariable dem Backupdateinamen hinzugefügt habe.
So sieht mein Script aus:
Code: Select all
@echo off
echo USE phpmyadmin; > E:\mysql5\backup\sv_phpmyadmin\sv_phpmyadmin.sql
e:\mysql\bin\mysqldump.exe phpmyadmin -h localhost -a -C -c -e --user=root --password=123456 >> e:\mysql\sauvegarde\sv_phpmyadmin\sv_phpmyadmin.sql
echo Backup der Datenbank phpmyadmin wurde erstellt


Wie ihr erkennen könnt, gibt es keine Datumsvariable, welche jeden Tag das Datum an den Dateinamen anhängt.
Ich bin in der Batch programmierung nicht gerade ein fachmann, hoffe einer kennt sich da besser aus.

Hat jemand ne Idee?

Danke und Gruss

Goran
goran75
 
Posts: 32
Joined: 03. August 2006 08:32

Postby Wiedmann » 05. February 2007 14:05

da ich keine Datumsvariable dem Backupdateinamen hinzugefügt habe.

Die sich sinnvollerweise %date% nennt.
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby goran75 » 05. February 2007 14:18

Wiedmann wrote:
da ich keine Datumsvariable dem Backupdateinamen hinzugefügt habe.

Die sich sinnvollerweise %date% nennt.


Jep, aber weder %date% noch %time% funktionieren beim ausführen des scripts.
Oder besser gesagt, wenn ich diese optionen hinzufüge wird nicht einmal mehr ein Backup erstellt. So schaut es jetzt aus:

Code: Select all
@echo off
echo USE phpmyadmin; > E:\mysql5\backup\sv_phpmyadmin\sv_phpmyadmin_%date%.sql
e:\mysql\bin\mysqldump.exe phpmyadmin -h localhost -a -C -c -e --user=root --password=123456 >> e:\mysql\sauvegarde\sv_phpmyadmin\sv_phpmyadmin_%date%.sql
echo Backup der Datenbank phpmyadmin wurde erstellt


Ich führe dies Script auf Windows XP und 2003 Server aus.
Oder müssen diese Variablen in Klammern rein?

Noch ne Idee?

Danke

Gruss

Goran[/code]
goran75
 
Posts: 32
Joined: 03. August 2006 08:32

Postby Wiedmann » 05. February 2007 14:24

Also dann fange doch langsam an...

Damit.
Code: Select all
@echo off
echo USE phpmyadmin; > E:\mysql5\backup\sv_phpmyadmin\sv_phpmyadmin_%date%.sql

Sollte er ja dann schonmal die Datei anlegen mit dem Inhalt "USE phpmyadmin;"?

BTW:
Für was gibt es diese Zeile überhaupt?
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby goran75 » 05. February 2007 14:38

Wiedmann wrote:Also dann fange doch langsam an...

Damit.
Code: Select all
@echo off
echo USE phpmyadmin; > E:\mysql5\backup\sv_phpmyadmin\sv_phpmyadmin_%date%.sql

Sollte er ja dann schonmal die Datei anlegen mit dem Inhalt "USE phpmyadmin;"?

BTW:
Für was gibt es diese Zeile überhaupt?


Ja OK, die 2. Zeile ist eigentlich vollkommen sinnlos, die brauche ich gar nicht. Habe sie rausgenommen und nochmal das script ausgeführt. Ohne variable funktionierts und mit der Variable leider nicht.
Ich habe die Datei in backup.bat und in backup.cmd gespeichert und ausgeführt. Aber irgendwie läuft dat nich so, wie ich mir dat vorstelle :wink:

Die dritte Zeile steht dann für den eigentlich Backup Befehl der mysql Datenbank, mit all den Optionen die ich gerne hätte, also complete inserts etc.
Haste noch ne Idee ?
goran75
 
Posts: 32
Joined: 03. August 2006 08:32

Postby Wiedmann » 05. February 2007 14:50

Also:
Code: Select all
@echo off
e:\mysql\bin\mysqldump.exe phpmyadmin -h localhost -a -C -c -e --user=root --password=foo > e:\mysql\sauvegarde\sv_phpmyadmin\sv_phpmyadmin_%date%.sql
echo Backup der Datenbank phpmyadmin wurde erstellt

tut bei mir einwandfrei...
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby goran75 » 05. February 2007 15:17

Seltsam.
Also wie gesagt mit der Datumsoption erstellt mir das script erst gar nicht die Backup Datei. Aber ohne läufts einwandfrei.
Habe auch schon mit nem anderen Editor das teil erstellt, aber es ist immer das gleiche.
Eigentlich brauch man die Datumsvariable ja nicht deklarieren, da sie ja ein fester Bestandteil der Batch scriptsprache ist.
Gibt es da Abweichungen bezüglich der Variablen gegenüber einiger Windows versionen? Wie gesagt ich arbeite unter XP Pro und Server 2003. Welches nutzt du?
goran75
 
Posts: 32
Joined: 03. August 2006 08:32

Postby Wiedmann » 05. February 2007 15:26

Wie gesagt ich arbeite unter XP Pro und Server 2003.

%date% gibt es ab W2k.

Wie rufst du das Script den auf?
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby goran75 » 05. February 2007 15:37

Ich mach einfach ein doppelklick auf die backup.bat Datei.
goran75
 
Posts: 32
Joined: 03. August 2006 08:32

Postby goran75 » 05. February 2007 16:02

Habe jetzt mal diesen Befehl manuell in der Dos Console gestartet

Code: Select all
e:\mysql\bin\mysqldump.exe phpmyadmin -h localhost -a -C -c -e --user=root --password= > e:\mysql\sauvegarde\sv_phpmyadmin\sv_phpmyadmin_%date%.sql


Dabei habe ich folgende Fehlermeldung erhalten:

Der Zugriffspfad ist unauffindbar!!!

Er hat anscheinend echt ein Problem damit diese Variable als solches anzuerkennen. Hört sich fast so an, als glaube das system, das es sich um ein Verzeichnis handelt.

Ich werd einfach nicht schlau draus
goran75
 
Posts: 32
Joined: 03. August 2006 08:32

Postby Wiedmann » 05. February 2007 16:22

Der Zugriffspfad ist unauffindbar!!!

Gib mal folgende 2 Zeilen von Hand in der Eingabeaufforderung (cmd.exe) ein:
Code: Select all
echo %date%
dir e:\mysql\sauvegarde\sv_phpmyadmin

Was kommt da dann alles?
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby goran75 » 05. February 2007 16:38

Wiedmann wrote:
Der Zugriffspfad ist unauffindbar!!!

Gib mal folgende 2 Zeilen von Hand in der Eingabeaufforderung (cmd.exe) ein:
Code: Select all
echo %date%
dir e:\mysql\sauvegarde\sv_phpmyadmin

Was kommt da dann alles?


Da bekomme ich dieses Resultat

Code: Select all
05/02/2007 dir d:\xampplite\mysql\backup\sv_phpmyadmin


[/code]
goran75
 
Posts: 32
Joined: 03. August 2006 08:32

Postby Wiedmann » 05. February 2007 17:17

Der Code waren 2 Zeilen, die auch jeweils mit einem Return ausgeführst werden müssen.
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby KSchneider » 14. March 2007 22:33

Code: 05/02/2007 ... /Code

Bei mir sieht das "echo %date%" von der Konsole anders aus:
14.03.2007

Ich vermute mal, dass das Zeichen Slash "/" in Dateinamen nicht erlaubt ist.
Schau mal in die Ländereinstellungen von deinem Windows und stelle Deutsch/Deutschland ein.

Versuche doch mal Folgendes um das Datum in den Dateinamen einzubauen:

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

echo %jahr%%monat%%tag%
erzeugt dann z.B.:20050921
KSchneider
 
Posts: 1
Joined: 14. March 2007 22:25


Return to MariaDB - MySQL

Who is online

Users browsing this forum: No registered users and 1 guest