概要

引数に沿ってファイル(ディレクトリ)を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

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2008-03-23 (日) 21:49:43 (5871d)