2010-12-27 7 views
12

Come faccio a farlo correttamente. Sto cercando di nominare il file sql che viene prodotto da mysqldump nella data e ora correnti. Ho già qualche ricerca in questo sito e ho trovato un codice qui: How to get current datetime on Windows command line, in a suitable format for using in a filename?genera il file di backup utilizzando la data e l'ora come nome file

Ho provato a mescolarlo con il mio codice attuale e mi è venuto in mente questo. Il file è denominato nella data e ora correnti ma è solo un file 1kb e non produce un file .sql. Si suppone che sia un file sql da 7 kb.

@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 Non credo che ci sia un problema con il comando mysqldump dal momento che funziona bene quando lo faccio in questo modo. Il codice seguente usa semplicemente la data come nome file.

@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 

Si prega di aiuto, grazie.

risposta

30

Su Linux, in poche parole $(date +%Y-%m-%d-%H.%M.%S) per mostrare la data e l'ora nel nome del file, in modo che appaia come:

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

(Questo comando comprime anche il file con bzip2)

+1

Funzionerà in 'cron'? – fishcracker

+0

La domanda è specifica per Windows. – MxyL

+0

Per linux: '$ (data +% Y-% m-% d-% H.% M.% S)' right MA cosa per WINDOWS? –

4

Penso che la sintassi del comando mysqldump sia errata;

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

si utilizza sia -p e --pasword=, si dovrebbe utilizzare una sola opzione. E c'è uno spazio prima della password.

Basta provare a eseguire il comando mysqldump sulla riga di comando per visualizzare i messaggi di errore. In alternativa, aggiungere 2>&1 alla fine del comando nel file batch. Quindi vedresti anche i messaggi di errore nel file di output.

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

I don 'Penso che ci sia un problema con il comando mysqldump, per favore vedi la mia modifica – user225269

+0

@ user225269: il comando mysqldump è diverso nel tuo secondo esempio. Ma comunque, puoi mostrarci cosa contiene il file 1kb? – wimh

Problemi correlati