Created
April 19, 2012 16:23
-
-
Save takamii/2422102 to your computer and use it in GitHub Desktop.
iPhoneバックアップスクリプト(iOS5.x用)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
# | |
# iOS5.xの設定ファイル&データのバックアップスクリプト | |
# | |
# 使い方: | |
# rootユーザでbkup_system.shを実行すると、カレントに現在の年月日でフォルダを作成しその中にtgz形式で | |
# バックアップを取得します。主に/var/mobile/Library配下の設定ファイルやデータをバックアップ。 | |
# バックアップファイルは、各フォルダ名.tgz | |
# | |
# 詳細: | |
# /var/mobile/Library配下でバックアップするフォルダを追加したい場合は、MOBILE_LIB_DIRSに指定。 | |
# バックアップから除外したいファイルやフォルダがある場合は、「cat >${EXCLUDE} << EOF」から「EOF」間に追記。 | |
# | |
# /var/mobile/Library以外には、現在は | |
# /var/wireless、/var/root配下のdotfile(.bashrc等)、/etc/ssh、/etc/apt/sources.list.dをバックアップ。 | |
# バックアップ元を追加したい場合は最後の方の行の「bkup "/etc" "ssh"」と書いてある所に追記。 | |
# 第一引数を基準に第二引数のフォルダ(スペースで区切って複数指定可)をバックアップ。 | |
# バックアップ後のtgzのファイル名は第二引数名を使用する。 | |
# | |
# 補足: | |
# iCloudでバックアップを取っている場合は、AdressBook、Calendar、Mail、Notes、Safariあたりの | |
# バックアップは不要と思います。ただしiCloudは個別にリストアしたり出来ないため、念のために | |
# 取っておくようにしています。 | |
# | |
# その他: | |
# 自分がこのスクリプトでのバックアップ以外に取ってるもの。 | |
# /var/mobile/Media配下のデータ(カメラロールのDCIMフォルダ等) | |
# /var/mobile/Application配下のデータ(AppStoreアプリのデータ) | |
# ↑自動化が面倒&サイズが大きいため個別にiExplorer等で取っています。 | |
# | |
MOBILE_LIB="/var/mobile/Library" | |
#MOBILE_LIB_DIRS="AddressBook Caches/libactivator.plist Calendar ConfigurationProfiles iFile Keyboard Mail Maps Notes Preferences SBSettings SMS Safari SpringBoard Voicemail WebClips YouTube" | |
MOBILE_LIB_DIRS="AddressBook Caches/libactivator.plist Calendar ConfigurationProfiles iFile Keyboard Maps Notes Preferences SBSettings SMS Safari SpringBoard Voicemail WebClips YouTube" | |
EXCLUDE="`pwd`/exclude.txt" | |
LOGFILE="`pwd`/bkup.log" | |
cat >${EXCLUDE} <<EOF | |
AddressBook/IntellibornLicenses | |
iFile/Cache | |
iFile/Trash | |
Keyboard/DisplayRecorder | |
Preferences/TimeCapsule | |
SBSettings/Themes | |
wireless/awdd | |
wireless/spool | |
EOF | |
log(){ | |
echo "$1" | |
echo "`date "+%Y/%m/%d %H:%M:%S"` :$1" >>${LOGFILE} | |
} | |
bkup(){ | |
BASEDIR=$1 | |
TARGETDIR=$2 | |
FILE_PREFIX=${dirDate//./} | |
pushd ${BASEDIR} >/dev/null | |
for DIR in ${TARGETDIR} | |
do | |
log "Backup ${BASEDIR}/${DIR}" | |
tar zcf ${BACKDIR}/${DIR%%/*}_${FILE_PREFIX}.tgz ${DIR} -X ${EXCLUDE} 2>>${LOGFILE} | |
done | |
popd >/dev/null | |
} | |
bkup_file(){ | |
BASEDIR=$1 | |
TARGETFILE=$2 | |
FILE_PREFIX=${dirDate//./} | |
pushd ${BASEDIR} >/dev/null | |
log "Backup ${BASEDIR}/${TARGETFILE}" | |
tar zcf ${BACKDIR}/${BASEDIR##*/}_${FILE_PREFIX}.tgz ${TARGETFILE} -X ${EXCLUDE} 2>>${LOGFILE} | |
popd >/dev/null | |
} | |
dirDate="`date +%Y.%m.%d`" | |
if ! [ -e $dirDate ]; then | |
mkdir $dirDate | |
fi | |
BACKDIR="`pwd`/${dirDate}" | |
log "== Backup STARTED!! ==" | |
bkup ${MOBILE_LIB} "${MOBILE_LIB_DIRS}" | |
bkup "/var" "wireless" | |
bkup_file "/var/root" ".[A-z]*" | |
bkup "/etc" "ssh" | |
bkup "/etc/apt" "sources.list.d" | |
bkup_file "/var/lib/cydia" "metadata.plist" | |
log "== Backup FINISHED!! ==" | |
rm ${EXCLUDE} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment