• 追加された行はこの色です。
  • 削除された行はこの色です。
**概要 [#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


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS