毎日のブログのバックアップの保管場所をどこにしようかと悩んでいたんですが、Gmailに送ってしまえば良い事に気がつきました。
容量的には問題はないですし、毎日のバックアップの置き場としては問題無さそうです。
暗号化とかは後で考えるとして、とりあえず下のようなスクリプトを書いてみました。
#!/bin/sh
AFIO=/usr/local/bin/afio
MYSQLHOTCOPY=/usr/bin/mysqlhotcopy
SENDMAIL=/usr/sbin/sendmail
WORKDIR=/var/tmp
WWWDIR=/var/www
LOGDIR=/var/log
if [ -f /etc/wp_backup ]; then
. /etc/wp_backup
fi
if [ ${MYSQL_USER:-nothing} = "nothing" ]; then
exit 1
fi
if [ ${MAIL_FROM:-nothing} = "nothing" ]; then
exit 1
fi
function cleanup() {
rm -rf $WORKDIR/mysql
rm -f $WORKDIR/$name.afz
rm -f $WORKDIR/mysql_$name.afz
}
trap "cleanup" EXIT
name=${1:-blog}
if [ ! -d $WORKDIR/mysql ]; then
mkdir $WORKDIR/mysql
fi
(
echo "BACKUP START: `date`"
# backup mysql
$MYSQLHOTCOPY -u $MYSQL_USER -p $MYSQL_PASSWORD $name $WORKDIR/mysql
cd $WORKDIR/mysql
find $name | $AFIO -ovz -Z -U $WORKDIR/mysql_$name.afz
# backup wordpress
cd $WWWDIR
find $name | $AFIO -ovz -Z -U $WORKDIR/$name.afz
echo "BACKUP FINISHED: `date`"
) >> $LOGDIR/wp_backup.log 2>&1
# send the backup files
(
cat <<__END__
From: $MAIL_FROM
To: $MAIL_TO
Subject: $name backup `date`
blog name: $name
date: `date`
`uuencode $name.afz < $WORKDIR/$name.afz`
`uuencode mysql_$name.afz < $WORKDIR/mysql_$name.afz`
__END__
) | $SENDMAIL -f $MAIL_FROM -t $MAIL_TO
exit 0
バックアップを Gmail に送信する事はできたので問題は解決したかと思ったんですが、Gmail は uuencode の添付ファイルを認識しないんですねぇ。手元の Apple Mail でも認識していないので単に時代遅れなだけか。
もう少し考えねば

