2010-12-27 9 views
12

Wie mache ich das richtig. Ich versuche, die SQL-Datei, die von mysqldump erzeugt wird, in das aktuelle Datum und die Uhrzeit zu benennen. Ich habe bereits einige Forschung auf dieser Seite und fand einen Code hier: How to get current datetime on Windows command line, in a suitable format for using in a filename?Backup-Datei mit Datum und Uhrzeit als Dateiname generieren

Versucht, es mit meinem aktuellen Code gemischt und ich kam mit diesem. Die Datei wird in das aktuelle Datum und die Uhrzeit benannt, aber es ist nur eine 1-KB-Datei und erzeugt keine .SQL-Datei. Es soll eine 7 kb sql-Datei sein.

@For /f "tokens=2-4 delims=/ " %%a in ('date /t') do @(set mydate=%%c-%%a-%%b) 
@For /f "tokens=1-2 delims=/:" %%a in ('time /t') do @(set mytime=%%a%%b)  

@echo mydate= %mydate% 
@echo mytime= %mytime% 

mysqldump -u root -p --add-drop-table --create-options --password= onstor >c:\%mydate%_%mytime%.sql 

UPDATE Ich glaube nicht, ein Problem mit dem mysqldump Befehl gibt es, da es gut funktioniert, wenn ich es auf diese Weise tun. Der folgende Code verwendet nur das Datum als Dateinamen.

@For /F "tokens=2,3,4 delims=/ " %%A in ('Date /t') do @( 
    Set Month=%%A 
    Set Day=%%B 
    Set Year=%%C 
)  

@echo DAY = %Day% 
@echo Month = %Month% 
@echo Year = %Year%  

mysqldump -u root --add-drop-table --create-options --password= onstor >c:\%Day%-%Month%-%Year%.sql 

Bitte helfen, danke.

Antwort

30

Unter Linux setzen einfach $(date +%Y-%m-%d-%H.%M.%S) im Dateinamen Datum und Uhrzeit zu zeigen, so dass es wie folgt aussieht:

mysqldump -u <user> -p <database> | bzip2 -c > <backup>$(date +%Y-%m-%d-%H.%M.%S).sql.bz2 

+1

Funktioniert das in 'cron'? – fishcracker

+0

Die Frage ist Windows-spezifisch. – MxyL

+0

Für Linux: '$ (Datum +% Y-% m-% d-% H.% M.% S)' richtig ABER was für WINDOWS? –

4

Ich denke, die Syntax Ihres mysqldump-Befehls ist falsch;

mysqldump -u root -p --add-drop-table --create-options --password= onstor 

Sie verwenden beide -p und --pasword=, sollten Sie nur eine Option. Und es gibt ein Leerzeichen vor dem Passwort.

Versuchen Sie einfach, den Befehl mysqldump auf der Befehlszeile auszuführen, um Fehlermeldungen anzuzeigen. Alternativ fügen Sie 2>&1 am Ende des Befehls in der Batchdatei hinzu. Dann würden Sie auch Fehlermeldungen in der Ausgabedatei sehen.

mysqldump -u root --add-drop-table --create-options --password=onstor >c:\%mydate%_%mytime%.sql 2>&1 
+0

I don (Dieser Befehl auch die Datei mit bzip2 komprimiert) Ich glaube, es gibt ein Problem mit dem Befehl mysqldump, siehe meine Editierung – user225269

+0

@ user225269: Der Befehl mysqldump unterscheidet sich in Ihrem zweiten Beispiel. Aber können Sie uns auch zeigen, was die 1kb-Datei enthält? – wimh