rsync と SSH で MovableType をバックアップする


このブログは Mac mini を使ったサーバーで運営しています。

本来サーバーの OS バージョンアップというのはリリースから時が立って慎重に行うべきなのでしょうが、元々個人の勉強ブログだし、トラブルも勉強の一つだよね、ってことでMountain Lion に速攻アップデート。

とはいえ、ブログ自体はバックアップ環境で動かしておきたいです。これを機に、スクリプト一つでバックアップを行うようにしました。

バックアップスクリプト

#!/bin/sh
SSH_KEY=/path/to/id_rsa
TOPDIR=/Library/WebServer/Documents
LOCAL_PERL=/usr/bin/perl
REMOTE_PERL=/path/to/perl
MYSQL=/usr/bin/mysql
MYSQLDUMP=/usr/local/mysql/bin/mysqldump
DB_USER=foo
DB_PASS=bar

# MovableType を構成するファイルを rsync
# SSH でログインしてファイルをコピーする
for i in mt mt-static blog; do
    /usr/bin/rsync -e "ssh -i $SSH_KEY" -avz foo@remora.cx:$TOPDIR/$i/ $TOPDIR/$i/
done

# Perl をインストールしているパスが違うのでスクリプトを修正
$LOCAL_PERL -i -ple "s/#!$REMOTE_PERL -w/#!$LOCAL_PERL -w/" $TOPDIR/mt/*cgi

# MySQL をリモートからローカルにバックアップしてリストア
ssh -i $SSH_KEY foo@remora.cx "$MYSQLDUMP -u$DB_USER -p$DB_PASS mt | /usr/bin/gzip" \
    | /bin/zcat | $MYSQL -u$DB_USER -p$DB_PASS mt

# 最後に Apache を再起動
/usr/sbin/apachectl graceful

これで完了。DNS サーバーの設定を書き換えると、バックアップ環境での動作が確認できました。

さて、これから Mountain Lion のインストールに入るわけですが、それ自体はあっさり完了。ただ、その後にトラブルに見舞われたので、備忘録として書いていきます。

続く。

コメントを残す