ここでは自作のスクリプトなどを紹介していきます。自由に使っていただいてかまいませんが、無保証です。自己責任でお試しください。
bashスクリプトです。bashの場所は環境に合わせて変更してください。
実行ユーザのホームディレクトリをバックアップします。~/backup/(なければ作成)に圧縮ファイルを作成します。~/backup/log/の中に作られるバックアップログを見れば、いつどのファイルがバックアップされたかが分かります。
前回実行時から変更のないファイルは、バックアップしません。-fをつけて実行すると、強制的にフルバックアップになります。
~/backup/ignoreにディレクトリ名を書いておくと、そのディレクトリはバックアップの対象外になります。
#!/usr/local/bin/bash #usrbak #author: mit (mit@atcake.com) #ホームディレクトリの差分バックアップを行うスクリプト #$HOME/backup/ignoreに記述したディレクトリは無視される #-fオプションによりフルバックアップ backup=${HOME}/backup lastlog=${backup}/.lastlog log=${backup}/log ignore=${backup}/ignore exitflag="no" #引数をチェックする [ $# != 1 -a $# != 0 ] && exitflag="yes" [ $# = 1 -a "$1" != "-f" ] && exitflag="yes" if [ ${exitflag} = "yes" ]; then echo "Parameter invalid" echo "Usage: usrbak [-f]" exit 1 fi #ディレクトリとファイルをチェックする [ -d ${backup} ] || mkdir ${backup} [ -d ${log} ] || mkdir ${log} if [ ! -f ${ignore} ]; then touch ${ignore} echo "${backup}" > ${ignore} echo "${HOME}/.mozilla/*/Cache" >> ${ignore} echo "${HOME}/.phoenix/*/Cache" >> ${ignore} fi #無視するディレクトリのリストを作成する ignorelist=`cat ${ignore}` for dir in ${ignorelist} do param="${param} -o -path ${dir} -prune" done #検索し結果をファイルに出力する if [ -f ${lastlog} -a $# = 0 ]; then find ${HOME} ! -type d -newer ${lastlog} \ -print${param} > ${lastlog}.tmp full="" else find ${HOME} ! -type d -print${param} > \ ${lastlog}.tmp full="full-" fi #圧縮ファイルとログファイルを作成する day=`date +"%Y%m%d-%H%M"` tar -cz -T ${lastlog}.tmp -f \ ${backup}/${full}${day}.tar.gz &> /dev/null [ -f ${lastlog} ] && rm -f ${lastlog} mv ${lastlog}.tmp ${lastlog} cp ${lastlog} ${log}/${full}${day}