概要
プレーンなphpファイル1本だけでDBダンプやってみました。
Wordpress用ですがwp-config.phpの代わりにdefineを設定すればほかのCMSにも応用可能です。
注意事項
ローカル環境で興味本位に試した方法なのでレストア・セキュリティ考慮まったく無しです。
実際のサーバー環境での使用は激しくお勧めしません。
もしこのプログラムをコピペして使用する際は何が起きても全て自己責任でお願いします。
実装
wp/dump/Terminator.php
<?php
//wp-config.php を読み込む
include dirname(dirname(__FILE__)).'/wp-config.php';
//プログラムの配置ディレクトリに移動
//※この場所にDBダンプファイルを作る
$outputDir = dirname(__FILE__);
exec('cd '.$outputDir);
//出力ファイル名
$outputName = DB_NAME.'.dump.sql';
//DBダンプコマンド組み立て
$cmd = [];
$cmd[] = 'mysqldump --add-drop-table';
$cmd[] = '--databases '.DB_NAME;//MySQLデータベース名
$cmd[] = '-h '.DB_HOST;//MySQLサーバー名
$cmd[] = '-u '.DB_USER;//MySQLユーザー名
$cmd[] = '-p'.DB_PASSWORD;//パスワード
$cmd[] = '>'.$outputName;//ファイル名
//コマンド実行
exec(join($cmd, ' '), $output);
//おしまい
echo "dump! I'll be back!";
unlink(__FILE__);
?>