雑日記&備忘録

データベースをバックアップしよう

MySQLのファイルをバックアップしてXREAサーバーにも送るシェルスクリプトを作ったので備忘録として残しておきます。

「XREAサーバー」とは、私が少し前から使っている「XREA Mail & Backup」サーバーの話です。
サーバー間コピーを使っています。

XREAの設定

こんな感じ。

転送方法の違い

よく忘れるしXREAのマニュアルが雑なので残しとく。

更新(削除なし) リモート側で更新されたファイルのみコピー
ミラー(削除あり) リモート側と全く同じ状態になるようコピー
ミラー(削除なし) ローカル側に存在するファイルは削除せずコピー
差分(削除なし) ローカル側に存在しないファイルのみコピー
存在(削除なし) ローカル側にあるファイルのみコピー

参考ページ: サーバー間コピーの新規作成 | マニュアル | サポート | レンタルサーバー CORESERVER(コアサーバー)

シェルスクリプトなど

データベースの接続情報 (.db.cnf)

[client]
user=db_username
password=db_password
host=dbhost.example.com

メインファイル (dbbackup.sh)

#!/bin/bash

DATE=`date +%Y-%m-%d_%H-%M-%S`

# gzファイルに圧縮
mysqldump --defaults-extra-file=$HOME/.db_connectconfig/.db.cnf batabase_name | gzip -9 -c > $HOME/path/to/save/${DATE}.sql.gz
echo "DB Backup Completed!"

# XREAへコピーする
sh $HOME/dbcopy.sh

XREAへ送る (dbcopy.sh)

#!/bin/bash

# XREA Config
server_name=host.xrea.com
account=account_name
api_key=YourAPIKey
copy_id=1

echo "XREA: ${server_name} への送信を開始します…"
curl -X POST -H "Content-Type: application/x-www-form-urlencoded" -d "account=${account}&server_name=${server_name}&api_secret_key=${api_key}&param[no][0]=${copy_id}" https://api.xrea.com/v1/server_copy/process
echo "\n"

ちなみにcopy_idはAPIリクエストで確認してください。

 

あとはこれをcrontabでも使って動かせばOK。

XREA Mail & Backup は、月額86円からと、とても手頃な値段で使えるので結構良きです。
Value Domainに登録して、XREAサーバーも契約してみてくださいね。

ABOUT ME
鮎月 -Liteyan-
DiscordのBot作ったり、気まぐれで小説書いたりする人。

COMMENT

メールアドレスが公開されることはありません。