さくらレンタルサーバの複数データベースをPHPとcronで毎日バックアップする設定

Php

複数のサイトを運営しているさくらレンタルサーバ(スタンダードプラン)のデータベースの自動バックアップをずっとやりたいと思つつ中々できてなかったのが、ようやく設定できたのでその内容のメモです。

最初は、ほとんどの記事で推奨されている、シェルスクリプトにmysqldumpコマンドを書いておきcronで定時実行する、という方法をやろうとしました。

ただ、参照した記事は、mysqldumpコマンドのオプション(–all-databases)を使って、複数のデータベースを、一つのバックアップファイルに書き出す、という方法でした。

データを復元するときに管理しやすくするため、データベース毎にバックアップを生成できるようにしたかったのですが、シェルスクリプトでDB毎にdumpファイル生成、の記述方法がよくわからなかったため、シェルスクリプトではなくて、PHPでmysqldumpを実行するようにしました。

以下、その手順です。

バックアップ保存用ディレクトリとphpファイル作成

さくらサーバにSSHでログインします。

#ディレクトリやファイルを作成する非公開ディレクトリへ移動します。
cd /home/{さくらで契約しているユーザ名}

#バックアップ用ディレクトリを作成
mkdir backup

#適当な名前で、phpファイルを作成
vi dbbackup.php

/home/{ユーザ名}/dbbackup.php 

次のコマンドで、phpを実行して、日付のフォルダとその中に各データベースのバックアップファイルが作られていれば正しく動いています。

php dbbackup.php

cronを設定する

サーバのコントロールパネルにログインし、cronの設定画面へ進みます。

実行コマンドの欄に次のように記入します

cd /home/{ユーザ名}; /usr/local/bin/php dbbackup.php 1> /dev/null

Cron

実行日時は、上記画像のように設定して、毎日夜中の3時33分にcronが起動させるようにしました。

cronで設定した日時の後に、バックアップファイルの生成と古いファイルの削除がされていることを確認して、設定が完了です。

参考

mysql の定期的なバックアップ – Qiita
PHP:ディレクトリを簡単に削除する方法 | マイヤーの開発ブログ



スポンサーリンク

シェアする

フォローして更新を受け取る

スポンサーリンク