2006年07月03日
MySQL バックアップを作成するperlスクリプト
「バックアップ」ボタンをブラウザに表示して、ユーザへバックアップを保存してもらう
というのが目的なのだが、mysqldumpで検索をかけても、コマンドラインからの説明ページで
埋もれていて必要な情報が見い出せない。
簡単なものだが若干はまったのでメモ。
perl好きな方、どうぞ。
1.backup.cgiの作成(名前はお好きなものに...)
#!/usr/local/bin/perl$user = "USERNAME";
$passwd = "PASSWORD";
$dbname = "DATABASE NAME";$cmd = "/usr/local/bin/mysqldump $dbname -u $user -p$passwd | gzip> $dbname.gz";
system($cmd);
print "Location:$dbname.gz\n\n";exit;
※-pと$passwdの間に空白を入れるとNG。
※mysqldumpは絶対パスで記述する。
2.apacheのhttpd.conf、以下の行をコメントアウトする。
AddEncoding x-gzip gz
※apacheのデフォルトでは、gzファイルを自動展開される仕様になっているので
これを辞めさせる。
そのままだとブラウザに内容が表示されてしまいダウンロードできない。
レンタルサーバ等で変更できない場合には
〜
$cmd = "/usr/local/bin/mysqldump $dbname -u $user -p$passwd | zip> $dbname.zip";
system($cmd);
print "Location:$dbname.zip\n\n";
〜
と、zip圧縮にしてみる。
これでもダメなら
〜
$cmd = "/usr/local/bin/mysqldump $dbname -u $user -p$passwd > $dbname.HOGE";
system($cmd);
print "Location:$dbname.HOGE\n\n";
〜
と、圧縮しないで更に拡張子はありえないものにする...
投稿者 sio : 20:00