tarバックアップ(ローテーション付き)
http://extstrg.asabiya.net/pukiwiki/index.php?tar%A5%D0%A5%C3%A5%AF%A5%A2%A5%C3%A5%D7%A1%CA%A5%ED%A1%BC%A5%C6%A1%BC%A5%B7%A5%E7%A5%F3%C9%D5%A4%AD%A1%CB概要 †
引数に沿ってファイル(ディレクトリ)をtar + gzip圧縮するスクリプト。
スクリプト内の変数により数世代を保管することも可能。
使い方 †
以下のフォーマットで使用する
./tar_archive.sh [圧縮元ファイル or ディレクトリ] [圧縮先ファイル名]
例: ./tar_archive.sh /home/httpd/preview /home/system/script/preview.tgz
設定 †
世代管理を行う場合は以下の行に保管する世代を指定する。
ROTATE= 保管世代数
世代数に指定された値を最大値とし、出力ファイル名の末尾にナンバリングを行う。
コード †
#!/bin/sh # ------------------------ # tar archive make script # ------------------------ # Version : 1.0 # date : 2007/03/13 export LANG=C export PATH=/bin:/sbin:/usr/bin:/usr/sbin:$PATH ## Set ROTATE="4" # TARGET if [ -z $1 ]; then echo "ERR : target Directory unknown" echo "USE : ./tar_archive.sh [TargetDirectory] [OUTPUT FILE NAME]" exit 0 fi if [ -e $1 ]; then INFILE=$1 else echo "ERR : $1 not found" echo "USE : ./tar_archive.sh [TargetDirectory] [OUTPUT FILE NAME]" fi # OUTPUT if [ -z $2 ]; then echo "ERR : Output File unknown" echo "USE : ./tar_archive.sh [TargetDirectory] [OUTPUT FILE NAME]" exit 0 else OUTFILE=$2 fi ## Exec # Rotate test -f $OUTFILE.$ROTATE && rm -rf $OUTFILE.$ROTATE while [ $ROTATE -ge 1 ]; do i=$((ROTATE-1)) if [ -f $OUTFILE.$i ]; then mv $OUTFILE.$i $OUTFILE.$ROTATE fi ROTATE=$i done test -f $OUTFILE && mv $OUTFILE $OUTFILE.1 # TAR tar cfPz $OUTFILE $INFILE # EOF
Last-modified: 2008-03-23 (日) 21:49:43 (5871d)