以前はバックアップはローカルの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なら事実上容量無制限っぽく使えてしまうので、これはかなり良い手なのではないかと個人的に考えてます。でも、こんなスクリプトにパスワードを生で書いていいのかどうか不安です。けど、まぁ、良いことにしました。