Mac で iTunes の差分バックアップを自動でするシェルスクリプト

TimeMachine が動かないので rsync を使って、iTunes をバックアップするシェルスクリプトを bash で書いてみました。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#!/bin/sh
 
NASiTunesDir=/Volumes/hoge/iTunes
LocaliTunesDir=/Users/hoge/Music/iTunes/
 
programStart=`date +"%Y-%m-%d %H:%M:%S"`
echo "program start ${programStart}"
 
if [ -d $NASiTunesDir -a -d $LocaliTunesDir ]; then
	echo iTunes Backup Start...
	rsync -a --delete $LocaliTunesDir $NASiTunesDir
	echo ...iTunes Backup End
fi
 
programEnd=`date +"%Y-%m-%d %H:%M:%S"`
echo "program end ${programEnd}"

NASiTunesDir にはバックアップを取るディレクトリを書きます。
LocaliTunesDir には iTunes のファイルがあるディレクトリを指定します。ここはスラッシュで終わるように書いてください。

実際にはこのコードを iTunesBackup.sh などのファイル名で保存して、ターミナルから以下のように起動します。

1
sh ~/iTunesBackup.sh

一番最初のバックアップは全てのファイルをコピーするため、とても時間がかかりますが、次回からは変更のあったファイル、新規ファイルなど差分だけをコピーしますので、すぐに終わります。

また、cron で毎時実行するようにすれば、自分で意識することなく、ほぼ常に最新のバックアップファイルを保持することができます。

1
crontab -e

以下のように書いておけば毎時00分に自動実行されます。

1
00 * * * * sh ~/iTunesBackup.sh > ~/backup.log

コメント

コメントは受け付けていません。