web-dev-qa-db-ja.com

ファイル名として日付と時刻を使用してバックアップファイルを生成する

これを正しく行うにはどうすればよいですか。 mysqldumpによって生成されているsqlファイルに現在の日付と時刻を付けようとしています。私はすでにこのサイトでいくつかの調査を行っており、ここにコードを見つけました: Windowsコマンドラインで現在の日時をファイル名で使用するのに適した形式で取得する方法?

それを私の現在のコードと混同しようとしました、そして私はこれを思いつきました。このファイルは現在の日時に名前が付けられていますが、1kbのファイルのみで、.sqlファイルは生成されません。 7 kbのsqlファイルであると想定されています。

@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 [〜#〜]mysqldumpコマンドは、これを実行するとうまく機能するため、問題はないと思います仕方。以下のコードでは、日付をファイル名として使用しています。

@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

助けてください、ありがとう。

19
user225269

Linuxでは、単純に$(date +%Y-%m-%d-%H.%M.%S)を入れてファイル名に日付と時刻を表示すると、次のようになります。

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

(このコマンドは、bzip2を使用してファイルも圧縮します)

36
chrowe

Mysqldumpコマンドの構文は間違っていると思います。

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

-p--pasword=の両方を使用しています。使用できるオプションは1つだけです。そして、パスワードの前にスペースがあります。

コマンドラインでmysqldumpコマンドを実行して、エラーメッセージを確認してください。または、バッチファイルのコマンドの最後に2>&1を追加します。次に、出力ファイルにエラーメッセージも表示されます。

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