↓これの応用編。
MySQLデータベースをバックアップしようMySQLのファイルをバックアップしてXREAサーバーにも送るシェルスクリプトを作ったので備忘録として残しておきます。...
Misskeyのデータベースをバックアップするシェルスクリプトを作成したので、その備忘録(コピペ用)です。
スポンサーリンク
SSH接続用の鍵ファイルを作る
パスワードでのログインも出来ますが、自動化には向かないので公開鍵認証をします。
こちらのサイトが大変参考になりました。
API経由でSSH許可をしてもらう
他のデバイスからもXREAのサーバーにSSHアクセスすることがあるので、APIリクエスト用のスクリプトを書きました。
これを xrea_ipallow.sh
とします。
#!/bin/bash
curl -X POST https://api.xrea.com/v1/tool/ssh_ip_allow \
-d 'api_secret_key=API_KEY' \
-d 'account=ACCOUNT_NAME' \
-d 'server_name=SERVER_ADDRESS' \
-d "param[addr]=$(curl -sS ifconfig.me)"
このスクリプトも、先程の参考サイトのコピペです。先人の知恵を無料で使えるこの時代良すぎます。
.pgpass と .ssh/config の設定
.pgpass
pg_dumpする際にパスワード入力を省略するためのファイルです。
.ssh/config
Host xrea_svr
HostName host.xrea.com
User username
IdentityFile ~/.ssh/id_rsa
これにより、scpコマンドがすっきりします。
ファイル圧縮してscpで転送
#!/bin/bash
# 先にXREA IP許可
sh xrea_ipallow.sh
sleep 2m
DATE=`date +%Y-%m-%d_%H-%M-%S`
# gzファイルに圧縮
pg_dump -U username -w db_name | gzip -9 -c > $HOME/misskey_db/${DATE}.sql.gz
echo "DB Backup Completed!"
# XREAに送る儀式
scp $HOME/misskey_db/${DATE}.sql.gz xrea_svr:/virtual/username/misskey_db
echo "XREA Backup Completed!"
sleep 2m
は、SSH接続許可を待つ時間です。
コントロールパネルでは「登録後、5分程度で接続できるようになります。」とありますが、実測上は2分かからないくらいで接続ができました。
あとはこれをCronで定期実行すればOK。
ちなみに私はXREAに送った後はローカルからは消しています。
スポンサーリンク
スポンサーリンク