バックアップ用スクリプト
ディレクトリ下の定期バックアップ - ITmedia エンタープライズ
crontabの書き方 | server-memo.net
を参考に(というか丸写しして)バックアップ用のシェルスクリプトを書いたのでメモ。
#!/bin/sh # # 名称 # tar-backup - tarによるバックアップ # # 書式 # tar-backup bakdir [storagedir] # # 解説 # 例: # tar-backup bakdir storagedir # とすると,bakdir以下のディレクトリをtarでまとめ、バックアップをstoragedirに置く。 # # 戻り値 # 0 正常終了 # 1 ユーザの指定間違い # ############################################################ CMDNAME=`basename $0` USAGE="Usage: $CMDNAME bakdir [storagedir]" CURDIR=`pwd` # 現在のディレクトリ # # 引数のチェック # BAKDIR= # バックアップをとる親ディレクトリ STORAGEDIR= # バックアップ置き場 if [ $# -eq 1 ]; then BAKDIR="$1" STORAGEDIR=$CURDIR elif [ $# -eq 2 ]; then BAKDIR="$1" STORAGEDIR="$2" else echo "$USAGE" 1>&2 exit 1 fi if [ ! -d $BAKDIR ]; then echo "$BAKDIR is NOT a directory. " 1>&2 exit 1 fi if [ ! -d $STORAGEDIR ]; then echo "$STORAGEDIR is NOT a directory. " 1>&2 exit 1 fi # メイン処理(tarによる圧縮) cd $BAKDIR /bin/date '+/bin/tar zcvf '$STORAGEDIR'/backup_%y%m%d.tar.gz ./* >> '$STORAGEDIR'/backup_%y%m%d.log' | /bin/sh cd $CURDIR exit 0
- crontabの設定
毎月20日にバックアップファイルを作るように設定。とりあえず/usr にbackup置き場を掘ったけど、どこに置くのが普通なんかなぁ。。。
0 4 20 * * root (/home/suji/shell_script/tar-backup /home/suji/ /usr/backup/) > /dev/null