- 追加された行はこの色です。
- 削除された行はこの色です。
**概要 [#kd26fa0f]
引数に沿ってファイル(ディレクトリ)をtar + gzip圧縮するスクリプト。~
スクリプト内の変数により数世代を保管することも可能。
**使い方 [#sbd52774]
以下のフォーマットで使用する
./tar_archive.sh [圧縮元ファイル or ディレクトリ] [圧縮先ファイル名]
-例
./tar_archive.sh /home/httpd/preview /home/system/script/preview.tgz
例: ./tar_archive.sh /home/httpd/preview /home/system/script/preview.tgz
**設定 [#ac45a170]
世代管理を行う場合は以下の行に保管する世代を指定する。
ROTATE= 保管世代数
世代数に指定された値を最大値とし、出力ファイル名の末尾にナンバリングを行う。
**コード [#scfb0732]
#!/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