iPodClassicのデータをMacで自動バックアップ
トイデジネタじゃないんですが。。。。

iPodClassicを外付HDD代わりにして、家と仕事場でデータ共有してるんですけどね。
たまに手動で丸ごとコピーしてバックアップとってはいますが、これが結構時間かかるので
相当な間隔でしかやっておらず。
システム開発の仕事が増えてる関係で、これじゃあいかん・・・と思い。

OSのTimemachineとかBackupって、iPodはバックアップできないのかな??
そのあたりがよくわからなくて。
何かソフトないかなーと探しておりましたが、そういえばMacはUNIX系なんだから
スクリプト書けばいいんじゃん・・・と今さらながらに気がつき、ざっくり作ってみました。

なんかまちがってたら教えてください。
というか、もっと簡単にできる方法あれば知りたいです(笑



それでは。用意するのは
・iPod Classic (ハードディスクとして使用しているやつね)
・外付HDD
・Mac (OS Xですね)

0)最初は手動で普通にコピーしてバックアップを取っておいた方が良いです。
 万が一失敗して取り返しがつかなくなる前に。

1)まず、ターミナルを起動させます。
 アプリケーション > ユーティリティの中。

2)はじめてターミナルを起動した人は何がなんだかわからないでしょうけれど
 あまり深く考えずにその画面上で以下の文を言われるがままコピペしてreturnキー!
 
 ls -la /Volumes;


 そうするとこんな表示が出ます。
 drwxrwxr-x 15 tokuda tokuda 578 11 9 17:24 HD-CSU2
 drwxr-x--- 34 tokuda tokuda 1224 11 9 19:58 IO250
 lrwxr-xr-x 1 root admin 1 10 1 15:31 Macintosh HD -> /
 lrwxr-xr-x 1 tokuda admin 19 10 6 13:34 iDisk -> /Volumes/hidetokuda
 drwxr-xr-x@ 334 tokuda tokuda 11424 11 7 15:33 iPod
 ここで確認して欲しいのは、表示されているiPodの名前と、バックアップするHDDの名前です。
 僕の場合はiPodという名前がそのままiPodで、HD-CSU2というのがバックアップ先で使いたいハードディスクです。
 名前には半角スペースを含んでいないことが重要です。
 ※シングルクオートでエスケープしてもシェル内ではディレクトリ判定の -d の処理が
  どうしてもできなかったので(わからなければ読み飛ばしてね)。
 逆に、半角スペースを含んでいなければ、Mac本体のHDDを使っても大丈夫です。
 ※Macintosh HDDだとNG、MacintoshHDDだとOK。


3)iPodの名前とバックアップ先を確認したら、下の文を全てコピーしてMacのテキストエディタで書き換えてください。
 書き換えるところは2箇所。
 FROM_HDD="iPod"<=2で確認したiPodの名前
 TO_HDD="HD-CSU2"<=2で確認したバックアップ先HDDの名前

 行の1番最初が空白にならないように注意してください。。

↓ここからコピー
#!/bin/bash

#ここだけ必ず変更
#FROM_HDDはバックアップしたいiPodやハードディスクドライブ
#TO_HDDはバックアップ先のハードディスクドライブ
#スペース含む名前はだめ
FROM_HDD="iPod"
TO_HDD="HD-CSU2"
##############################################################
LOG="$HOME/iPod_Backup.log"
echo "###START### `date \"+%Y-%m-%d %H:%M:%S\"` ###" >> $LOG
##############################################################
#FROM_HDDとTO_HDDの指定がなかったら
#処理しない
if [ "$FROM_HDD" = "" -o "$TO_HDD" = "" ] ; then
echo "error:NO NAME" >> $LOG
exit
fi
###############################################################
ORIGINAL="/Volumes/${FROM_HDD}"
TARGET="/Volumes/${TO_HDD}/iPod_Backup"
###############################################################
#ディレクトリあるか
if [ ! -d $ORIGINAL ] ; then
echo "error:$ORIGINAL NOT FOUND" >> $LOG
exit
fi
if [ ! -d $TARGET ] ; then
mkdir $TARGET
mkdir "$TARGET"_OLD
fi
##############################################################
#iPod_Backup.sh 1 の場合2世代
if [ "$1" = "1" ] ; then
rsync -a ${TARGET}/ ${TARGET}_OLD
fi
###############################################################
#共通-バックアップ開始
if [ -d $ORIGINAL ] ; then
rsync -a ${ORIGINAL}/ ${TARGET}
fi
##############################################################
echo "###END### `date \"+%Y-%m-%d %H:%M:%S\"` ###" >> $LOG
###############################################################
#END#
###############################################################
#2010.11.09 iPod_Backup.sh by Hidetoshi"hidezushi"Tokuda
###############################################################
#コマンド時
#/Users/ユーザー名/iPod_Backup.sh 1 で2世代バックアップ
#/Users/ユーザー名/iPod_Backup.sh で1世代だけバックアップ
#############################################################
↑ここまでコピー

4)書き換えが終わったら、再びターミナルで以下を入力。

 cd;vi iPod_Backup.sh;

5)何か開いたら、キーボードの a をタイプ。リターンは不要。

6)そのまま、3でさっき書き換えたテキストをペースト

7)ペーストし終えたら esc キーを押して(キーボード右上)、それでこんどは以下を入力してリターン

 :wq

8)問題なければ、iPod_Backup.shに保存完了。

9)ターミナルで今度は

 pwd

 と入力してリターンで表示確認してください。
 /Users/ユーザー名 が表示されてるはずです。(僕の場合は /Users/tokuda )

10)で。ユーザ名のところは置き換えてから。ターミナルで

 chmod 750 /Users/ユーザー名/iPod_Backup.sh

 と入力してリターン。

11)ターミナルで

  crontab -e
 リターン

 a を入力して入力モード

 0 2 * * * /Users/ユーザー名/iPod_Backup.sh 1 を入力(2世代バックアップ)
(1世代だけの場合は
 0 2 * * * /Users/ユーザー名/iPod_Backup.sh を入力
 )
 リターンで改行

esc キー 左上をおしてから

 :wq
 リターンで保存

12)これで毎日深夜2時に/Users/ユーザー名/iPod_BackupとしてiPodが自動でバックアップされます。
  時間を変えたい人はcrontab について調べてね。
  見ればわかると思うけど
  13 21 * * * にした場合は、21時13分です。
  最初と2度目(2世代バックアップの場合)はものすごく時間はかかりますが、
  次からは差分だけの変更なので、たぶんそこまで時間はかからないはずです。

iPodのディスプレイ上で「同期中です」って表示されている間はバックアップ処理が行われています。

・基本的に、更新されたファイル、追加されたファイルが更新されます。
・バックアップ開始時間にiPodがMacに接続されていなかったら当然バックアップはしません。
  直近のバックアップされているデータはそのまま残ります。
・バックアップ側にファイルを追加した場合にはバックアップ側にそのまま残ります。

っていうか、書いたらややこしく見えてきたのでわかる人だけどうぞ・・・。

#使用は自己責任でお願いしますっ
[PR]
     にほんブログ村 写真ブログ トイデジカメへ
by hidezushi | 2010-11-09 21:05


<< サンタトレイン。 シャボン玉飛んだ。 >>