読者です 読者をやめる 読者になる 読者になる

TimeMachineバックアップの中から重要なファイルのみ自動的にAmazon S3にバックアップする

サーバー管理

前回 書いたように TimeMachineのバックアップをサーバーに移行したのは、使い勝手の向上以外に、TimeMachineバックアップの中から重要なファイルのみ自動的にAmazon S3にバックアップしたかったからです。


バックアップスクリプト

以下のようなshell scriptをcronで1日1回実行します

#!/bin/bash 

time_machine=/Volumes/Backup/マシン名.sparsebundle
home_dir='Backups.backupdb/マシン名/Latest/Machintosh SSD/Users/yy'
backup_list=(Documents Project  Storage)
s3bucket=S3バケット名
bakup_dir=/var/tmp/s3bak/bak
mount_dir=/var/tmp/s3bak/mnt
gen=$((`date +%-j` % 3))

hdiutil attach -mountpoint $mount_dir $time_machine
cd "$mount_dir/$home_dir"
for bak in ${backup_list[@]}; do
  tar czf $bakup_dir/$bak.tgz $bak
done
cd $bakup_dir
hdiutil detach $mount_dir
/usr/local/bin/s3cmd -c /etc/s3cfg --recursive put $bakup_dir s3://$s3bucket/backup$gen/

簡単に解説すると

  • time_machineはサーバー上のTimeMachineのバックアップのパス
  • home_dirはTimeMachineのバックアップを展開した際にバックアップするディレクトリーがあるディレクトリー。この例では私のホームディレクトリー
  • backup_listはhome_dirにあるバックアップするディレクトリー
  • s3bucketはS3のバックアップ先のバケット名
  • bakup_dir, mount_dir はバックアップ作業用ディレクトリー
  • gen はバックアップの世代番号、この例では日付から3世代のバックアップを取っています
  • hdiutil は sparsebundle の操作コマンド
  • S3へのコピーは s3cmd で行っています。s3cmd はhomebrewでインストル出来ます

しかし・・・

実際に動かしてみたところ、S3へのコピー速度が 200〜300Kb/s しか出てなく 5Gbyte程度のコピーで 8時間もかかってしまいます。トホホ・・・

我が家の回線(マンションまでは光ですが部屋まではVDSL)のせいなのか、s3cmdのチューニングなのか調べてみます。ちなみに ey-office.netのサーバーまで scp で同じファイルをコピーすると 2Mb/s くらいは出てるので、単純に回線の問題ではないようです。