<景品表示法に基づく表記>

このサイトのコンテンツには、商品プロモーションが含まれている場合があります。

雑日記&備忘録

scpコマンドによるファイル転送 (XREA)

↓これの応用編。

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に送った後はローカルからは消しています。

ABOUT ME
鮎月 / あゆつき
似非プログラマーで、ブロガーで、作家で、VTuberで、VRChatter。 気ままに生きる、いち学生です。

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です