phpMyAdminとか開いてバックアップをとるのは非常に面倒くさい。
今回はPowerShellを使って、MySQLに登録されたデータの取り出しの簡易化を試みます。
対象はBitnamiで立ち上げたWordpressです。
ご参考まで。
手順
- PowerShellの処理を作る
- 起動用のバッチを作る
- バッチを起動し必要な情報を入力する
PowerShellの処理を作る
ファイル名:mysql_backup.ps1
以下の内容をコピーしてmysql_backup.ps1という名前で保存。
# **** 移行元のサーバー情報 ****
# ユーザーID
$user_name=Read-Host "接続先のユーザーIDを指定してください"
# ドメイン情報
$domain=Read-Host "接続先のドメインを指定してください。"
# 秘密鍵(.pem)ファイルパス(C:\Users以下に配置しないとアクセス権の問題で失敗します) ex."C:\Users\WordpressKeyPair.pem"
$pemfile_path=Read-Host "秘密鍵(.pem)ファイルの保存先を指定してください。C:\Users\の以下に配置されている必要があります"
# バックアップファイルを保存する先 ex."C:\backup\dump.sql.tar.gz"
$backup_path=Read-Host "SQLのdumpファイルの保存先を指定してください。ex.C:\backup"
# MySQLのログイン名を指定してください
$mysql_user=Read-Host "MySQLのログイン名を指定してください"
# MySQLのパスワードを指定してください
$mysql_pass=Read-Host "MySQLのパスワードを指定してください"
# ログイン情報の作成
$login_info=$user_name+"@"+$domain
# dump処理を実行する
ssh -i $pemfile_path $login_info "mysqldump -u $mysql_user -p$mysql_pass -h localhost bitnami_wordpress | gzip > /tmp/dump.sql.gz"
# SCP接続先情報を作成
$dump_tar_path=$login_info+":"+"/tmp/dump.sql.gz"
# SCP接続を使用してデータを取得
scp -i $pemfile_path $dump_tar_path $backup_path
# 圧縮ディレクトリを削除
"不要になった圧縮ディレクトリを削除しています。"
ssh -i $pemfile_path $login_info "rm -f /tmp/dump.sql.gz;exit;"
起動用のバッチを作る
ファイル名:mysql_backup.bat
以下の内容をコピーしてバッチファイルを作成する。
powershell -NoProfile -ExecutionPolicy Unrestricted .\mysql_backup.ps1
pause
必要な情報を入力する
以下の順で情報の入力を求めてきます。
事前に調べておきましょう。
- 接続先のユーザーID
- 接続先のユーザーIDは最近のものであればおそらくbitnami。
- 秘密鍵(.pem)ファイルの保存先
- .pemファイルはWordpress作成時に保存した秘密鍵ファイル
- SQLのdumpファイルの保存先
- 自分のPCのお好きなところで
- MySQLのユーザーID
- MySQLのパスワード
- MySQLのユーザーIDとパスワードは[WordPress(bitnami) – MySQLのパスワード調べ方]をご参照ください
ダウンロード
課題
作ってはみましたが、2点ほど課題を残しています。
- warningが出る
- 不要なディレクトリを削除しています、で止まる
1.については諦めます。
こんな感じの警告。コマンドラインでパスワード使うのはセキュアじゃないらしい。
mysqldump: [Warning] Using a password on the command line interface can be insecure.
2.については・・・結構悩んだのですが解決できませんでした。
わかる人がいたら修正方法を教えてください。
ちゃんと削除されてますし、Enterを押せば終了できます。
まとめ
次は自動でリストアか・・・。
おわり
コメントを残す