2010-05-28
以前はバックアップはローカルのUSB接続のUSBHDDにrsyncで行っていたのですが、この間サーバー移行の時に確認してみたらきちんと動作していなかった(おそらくHDDがおかしくなった)ので、バックアップをもうちょっとなんとかしようと思って考えて、結局gmailにメールでガンガン送りつけることにしました。メール爆弾のように・・・・。
あまりサイズが多すぎると、プロバイダやらメールサーバーやらに弾かれてしまうのでtar.gzで固めた上で5MBつづに分割して送信することにしました。
以下のような感じです。
«< #!/bin/sh
local target_address=xxxx@gmail.com local sqladmin_password=xxxx
make_bz2 () {
tar -C $1 -jcvf $2 $3
make_bz2_sql () {
mysqldump --password=$sqladmin_password $1 | bzip2 -cv > $2
send_mail () {
uuencode $1 $1 | mail -s $1 $target_address
make_bz2 ‘/’ ‘/backup/work/etc.tar.bz2’ ‘etc’ make_bz2_sql ‘mysql’ ‘/backup/work/mysql.sql.bz2’
cd /backup/work
#10MB以上のファイルを分割 find /backup/work -size +10240k -exec split -b 5m {} {}. \;
#10MB以上のファイルは先にoldへ移動 find /backup/work -size +10240k -exec mv {} /backup/old/ \;
#すべてメールで送信 files=”/backup/work/*” for filepath in ${files} do
send_mail ${filepath}
done
#掃除 mv /backup/work/* /backup/old/ »>
gmailなら事実上容量無制限っぽく使えてしまうので、これはかなり良い手なのではないかと個人的に考えてます。でも、こんなスクリプトにパスワードを生で書いていいのかどうか不安です。けど、まぁ、良いことにしました。