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 くらいは出てるので、単純に回線の問題ではないようです。