2サイト以上の小規模なサイト運用をしている管理者にとって、バックアップは重要だが手間のかかる作業だ。ここを自動化した。詳細は別途、記事にする。
前提
Cron が使えるレンタルサーバー
本記事では、さくらインターネットのレンタルサーバーを例にする
概要
DBバックアップ:さくらのレンタルサーバーでシェルを使う、実行はCron を1時間ごとに実行
ファイルのダウンロード:Windows のバッチ処理でFTP 接続を使ってダウンロード、バッチはタスクスケジューラーを使って毎週実行
バックアップは1サイトのディレクトリとDBを圧縮している
サーバー丸ごとバックアップしないのは、負荷分散と、復元が1サイトごとになると想定しているため
必要な手動作業
- バックアップ動作を監視する
- 復元テストを定期的に実行する(1回/月、月初に)
- 社内Wiki などに、復元作業手順書、復元テスト履歴を記載する
- 自動化に必要なシェル、バッチファイル、スケジュール計画表を管理
動作
Cron でシェルスクリプトを実行。コンテンツとDBをサーバー内に圧縮保存(毎日0時~、1時間おきに1サイトをバックアップ)
タスクスケジューラーで毎週土曜日12:00~、1時間おきにバッチファイルを実行する
バッチ処理で作業場内のファイルサーバーにデータをダウンロード
管理用ツール
Podesora
Podesora はターミナル。
さくらのレンタルサーバーでシェルスクリプトを手動で動かす
シェルスクリプトの文字エンコーディング:SJIS(管理者用メールで文字化けしないため)
SSH接続例)
1 2 3 4 5 6 7 8 |
ファイル>新規Telenet/SSH接続 ホスト:wwwXXX.sakura.ne.jp プロトコル:SSH2 ポート:SSH2(22) アカウント:{サーバーのアカウント名} 認証方法:パスワード パスフレーズ:{サーバーのパスワード} エンコーディング:shift-jis |
例) /home/mysite/backup/backup_website1.sh と入力、バックアップのシェルスクリプトを実行
7-Zip File Manager 圧縮、解凍ソフト
7-zip は、.sql.bz .tar.gz2 を解凍する
データベースを解凍するときは、文字エンコーディングを”UTF-8″にする。(SJIS だと文字化けする)