2013年1月27日日曜日

[MySQL]自動バックアップ

データベースの自動バックアップ用バッチファイル (Windows)
以下のバッチファイルを起動時に走らせることでデータベースの自動バックアップができるようになる。
set DBNAME=cake_test
set BACKDATE=%date:~0,4%%date:~5,2%%date:~8,2%
if "%time:~0,1%"==" " (set BACKTIME=0%time:~1,1%%time:~3,2%%time:~6,2%) else (set BACKTIME=%time:~0,2%%time:~3,2%%time:~6,2%)
set BACKUP_FILENAME=%DBNAME%_%BACKDATE%_%BACKTIME%.sql
c:\usr\xampp\mysql\bin\mysqldump.exe -h localhost -u your_account --pass="your_password" %DBNAME% > sql_backup\%BACKUP_FILENAME%
バックアップファイル名は 2009/03/26 8:27:45 に作成すると cake_test_20090326_082745.sql となる。
%date% により 2009/03/26 という文字列を得ることができる。%date:~0,4% で %date% の 0 文字目から 4 文字だけ切り出したものを得られる。同様にして以下の部分で 20090326 という文字列が BACKDATE に代入される。
set BACKDATE=%date:~0,4%%date:~5,2%%date:~8,2%
%time% により 8:27:45.30 という文字列を得ることができる 時間が 1 桁台の時は 0 文字目が空白になっているので if 分により 0 埋めを行うか判断している。以下の部分で 082745 という文字列が BACKTIME に代入される。
if "%time:~0,1%"==" " (set BACKTIME=0%time:~1,1%%time:~3,2%%time:~6,2%) else (set BACKTIME=%time:~0,2%%time:~3,2%%time:~6,2%)

0 件のコメント:

コメントを投稿