Skip to content

Instantly share code, notes, and snippets.

@i97506051502
Created December 12, 2012 10:42
Show Gist options
  • Save i97506051502/4266806 to your computer and use it in GitHub Desktop.
Save i97506051502/4266806 to your computer and use it in GitHub Desktop.
OS X Mountain Lion: 重要なアプリケーションファイルのバックアップ (http://support.apple.com/kb/PH10941?viewlocale=ja_JP) に列挙されているファイルのバックアップを取得します。 バックアップから 7 日間が経過したファイルは削除されます。 リストアしたいときは解凍してからファイルを戻してください。 UNIX の礼儀に沿わず、フルパスでバックアップしてしまっていますがその点はご容赦ください。
########################################################################
#
# Script Name:
# backup_macosx_important_data
#
# Project:
# Miscellaneous
#
# Execute User: any user you want
#
# crontab
# SHELL=/bin/bash
# 0 5 * * * sh -x backup_macosx_important_data DOC DESK ITUNES MAIL IPHOTO ADDR CAL SAFARI FONTS KEYS STICK PREFER 1>./backup_macosx_important_data.log 2>./backup_macosx_important_data_error.log
#
# Description:
#
# Usage:
# ./backup_macosx_important_data DOC DESK ITUNES MAIL IPHOTO ADDR CAL SAFARI FONTS KEYS STICK PREFER
#
# Advaned Usage:
#
# Last Update: 2012/12/12
#
# Authored by Go Sato (ZOOM DESIGN)
#
########################################################################
#!/bin/bash
cd ~
# ======================================================================
# 環境変数の設定
# ----------------------------------------------------------------------
DATE=`date -v-1d +"%Y-%m-%d"`
# ======================================================================
# ======================================================================
# フォルダ設定
# ----------------------------------------------------------------------
# ベースフォルダ
BACKUP_BASE=~/backup/macosx_important_data
SOURCE_BASE=~/Library
# **********************************************************************
# データ量が大きい場合は BACKUP_BASE のパスを外部記憶媒体にするなどしてください。
# **********************************************************************
# 書類
DOC_SOURCE=~/Documents
DOC_BACKUP=${BACKUP_BASE}/Documents
# デスクトップ
DESK_SOURCE=~/DeskTop
DESK_BACKUP=${BACKUP_BASE}/Desktop
# iTunes
ITUNES_SOURCE=~/Music/iTunes
ITUNES_BACKUP=${BACKUP_BASE}/iTunes
# メール
MAIL_SOURCE=${SOURCE_BASE}/Mail/V2
MAIL_BACKUP=${BACKUP_BASE}/Mail
# iPhoto
IPHOTO_SOURCE=~/Pictures/iPhoto\ Library
IPHOTO_BACKUP=${BACKUP_BASE}/iPhoto
# 連作先
ADDR_SOURCE=${SOURCE_BASE}/Application\ Support/AddressBook
ADDR_BACKUP=${BACKUP_BASE}/AddressBook
# カレンダー
CAL_SOURCE=${SOURCE_BASE}/Calendars
CAL_BACKUP=${BACKUP_BASE}/Calendars
# Safari
SAFARI_SOURCE=${SOURCE_BASE}/Safari
SAFARI_BACKUP=${BACKUP_BASE}/Safari
# フォント
FONTS_SOURCE=${SOURCE_BASE}/Fonts
FONTS_BACKUP=${BACKUP_BASE}/Fonts
# キーチェーン
KEYS_SOURCE=${SOURCE_BASE}/Keychains
KEYS_BACKUP=${BACKUP_BASE}/Keychains
# スティッキーズ
STICK_SOURCE=${SOURCE_BASE}/StickiesDatabase
STICK_BACKUP=${BACKUP_BASE}/Stickies
# その他の環境設定
PREFER_SOURCE=${SOURCE_BASE}/Preferences
PREFER_BACKUP=${BACKUP_BASE}/Preferences
# ======================================================================
# main
# CATEGORY are DOC DESK ITUNES MAIL IPHOTO ADDR CAL SAFARI FONTS KEYS STICK PREFER
for CATEGORY in $@
do
SOURCE=`eval echo '${'$CATEGORY'_SOURCE}'`
BACKUP=`eval echo '${'$CATEGORY'_BACKUP}'`
if [ ! -d ${BACKUP} ]
then
mkdir -p ${BACKUP}
fi
tar jcvf ${BACKUP}/${DATE}.tar.bz2 ${SOURCE}
done
# ======================================================================
# House Keeping
# ----------------------------------------------------------------------
cd ${BACKUP_BASE}
find . -mtime +7 -type f -exec rm -f {} \;
# ======================================================================
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment