1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

さくらのレンタルサーバーでデータベースのバックアップを自動化。

Posted at

手動保存するのが面倒になるほど、バックアップする案件が増えたので、google先生にデータベースのアックアップの自動化を聞いてみました。
その答えとして、古い記事ですが「さくらインターネット環境でDBデータをcronで自動バックアップする」を参考にさせて頂きました。

記事のプログラムを動かしてみる

参考記事の最終更新日が2016年ですが、問題なくバックアップファイルが作成されました。

ただ、以下のWarningが表示されました。

mysqldump: [Warning] Using a password on the command line interface can be insecure.

コマンドラインにパスワードを入力したら安全でない場合があるよ!との事なので、ユーザーID・パスワード・ホストを別ファイルに記入して、読み込むように変更しました。

ユーザーID・パスワード・ホストを別ファイルに移動

db_dump.sh
# !/bin/sh

# ----- 設定 -----
DBCONF=/home/ユーザー名/scripts/mydb.cnf
DBNAME=データベース名

PATH=/bin:/usr/bin:/usr/local/bin

# 保存する日数
bk_days=7

# ---------- ファイル名を設定 ----------
# タイムスタンプを取得
TSNOW=`date +%Y%m%d`
TSOLD=`date -v -"${bk_days}"d +%Y%m%d`

# バックアップ先のディレクトリ・ファイル
bk_dir=/home/ユーザー名/db_backup/

# ファイル名を設定
file_temp=${DBNAME}_${TSNOW}.sql
file_backup=${DBNAME}_${TSNOW}.tar.gz
file_remove=${DBNAME}_${TSOLD}.tar.gz

# ---------- バックアップ処理 ----------
# バックアップ先のディレクトリに移動
cd ${bk_dir}
if [ $? != 0 ]; then
echo "Backup directory does not exist."
exit 1
fi

# データベースをダンプ
mysqldump --defaults-extra-file=${DBCONF} ${DBNAME} > ${file_temp}
if [ $? != 0 -o ! -e ${file_temp} ]; then
echo "Cannot dump database."
exit 1
fi

# アーカイブを作成
tar cfz ${file_backup} ${file_temp}
if [ $? != 0 -o ! -e ${file_backup} ]; then
echo "Cannot archive files."
exit 1
fi

# テンポラリファイルを削除
rm -f ${file_temp}

# ローテーション処理
if [ -e ${file_remove} ]; then
rm -f ${file_remove}
fi

exit 0
mydb.cnf
[mysqldump]
user=データベースユーザー名
password=データベースパスワード
host=データベースホスト

上記のように、mydb.cnfにデータベース情報を記入し、mysqldumpのオプション--defaults-extra-fileにmydb.cnfの絶対パスを設定しています。

利用するには

「/home/ユーザー名/」に「scripts」「db_backup」フォルダを作成。
scriptsフォルダに上記プログラムを設置。

設置が完了したら下記コマンドでバックアップ。

/home/ユーザー名/scripts/db_dump.sh 1> /dev/null

サーバー管理画面から上記コマンドをcronに設定してやれば、データベースのバックアップ自動化の完成です。

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?