apacheのログローテーションスクリプト_Rev.2
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
開始行:
**apacheログローテーションスクリプト [#h14429dc]
#Contents
**概要 [#b87ec583]
rotatelogsを使用した日例ローテーションを行っているサーバ...
**log_ctrl.sh [#c34c27d3]
#!/bin/sh
# ------------------------
# Log Control Script
# ------------------------
# Version : 1.0
# date : 2008/05/16
export LANG=C
export PATH=/bin:/sbin:/usr/bin:/usr/sbin:$PATH
# date
DATEY=`date +%Y --date '1 days ago'`
DATEM=`date +%m --date '1 days ago'`
DATED=`date +%d --date '1 days ago'`
TODAY=`date +%Y%m%d`
LASTDAY=`date +%Y%m%d --date '1 days ago'`
# Script
LOGCUT="/home/system/script/logs/log_cut.sh"
MKDIR="/home/system/script/logs/make_date-dir.sh"
LOGFILE="/home/system/logs/log-cut_"$DATEYDATEM".txt"
# Site
BASEDIR="/home/httpd/【SiteName】"
date +%Y/%m/%d\ %H:%M:%S >> $LOGFILE
echo $BASE >> $LOGFILE
$MKDIR $BASEDIR/log_archive/ >> $LOGFILE
$LOGCUT $LASTDAY $BASEDIR/logs/access.log.2.gz $BASEDIR/...
$LOGCUT $LASTDAY $BASEDIR/logs/access.log.1.gz $BASEDIR/...
$LOGCUT $LASTDAY $BASEDIR/logs/access.log $BASEDIR/log_a...
gzip $BASEDIR/log_archive/$DATEY/$DATEM/【SiteName】_$LA...
exit 0
# EOF
**log_cut.sh [#c47f4f5c]
#!/bin/sh
# ------------------------
# Log Cutting Script
# ------------------------
# Version:2.0
# update :2005.09.29
export LANG=C
export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin...
# Hint
# Commnad [DATE] [FLAG] [OUTPUT] [INPUT]
## -- Check --
# $1
# target date
if [ -z $1 ]; then
echo "ERR : target date not found"
echo "USE : ./log_cut.sh [DATE] [INPUT] [OUTPUT]"
exit 0
else
DATEWC=`echo $1 | wc -m`
if [ $DATEWC = "9" ]; then
TARGETDATE="$1"
DATEY=`date +%Y --date $TARGETDATE`
DATEM=`date +%m --date $TARGETDATE`
DATED=`date +%d --date $TARGETDATE`
DATEE=`date +%e --date $TARGETDATE | sed "s/ //"`
DATEN=`date +%b --date $TARGETDATE`
DATEW=`date +%a --date $TARGETDATE`
else
echo "ERR : "$1" is abnormality format"
exit 0
fi
fi
# $2
# date format
TARGET=$DATED/$DATEN/$DATEY
# $3
# input file
if [ -z $2 ]; then
echo "ERR : Input not found"
echo "USE : ./log_cut.sh [DATE] [INPUT] [OUTPUT]"
exit 0
else
if [ -f $2 ]; then
INFILE="$2"
else
echo "ERR : "$2" not read | not found"
exit 0
fi
fi
# $4
# output path
if [ -z $3 ]; then
echo "ERR : output not found"
echo "USE : ./log_cut.sh [DATE] [INPUT] [OUTPUT]"
exit 0
else
test -w $3 || touch $3
if [ -w $3 ]; then
OUTFILE="$3"
else
echo "ERR : output file write error"
echo "USE : ./log_cut.sh [DATE] [INPUT] [OUTPUT]"
exit 0
fi
fi
# Exec
file $INFILE | grep "gzip" > /dev/null
FILETYPE=`echo $?`
if [ $FILETYPE -eq "0" ]; then
CAT="zcat"
else
CAT="cat"
fi
$CAT $INFILE | grep $TARGET >> $OUTPATH/$OUTFILE
exit 0
#EOF
**make_date-dir.sh [#x3f2c3d7]
#!/bin/sh
# --------------------------------
# Make DateName Directory Script
# --------------------------------
# Version : 1.1
# update : 2007.02.22
export LANG=C
export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin...
# Set
DATEY=`date +%Y --date '1 days ago'`
DATEM=`date +%m --date '1 days ago'`
DATED=`date +%d --date '1 days ago'`
TODAY=`date +%Y%m%d`
LASTDAY=`date +%Y%m%d --date '1 days ago'`
# Check
if [ -z $1 ]; then
echo "ERR : directory not found"
echo "USE : ./make_date-dir.sh [/PATH/LOGFILE]"
exit 0
fi
if [ -d $1 ]; then
LOGPATH=$1
else
echo "ERR : directory not found"
echo "USE : ./make_date-dir.sh [/PATH/LOGFILE]"
exit 0
fi
# Ecex
## Make Dir
# Year Dir
test -d $LOGPATH/$DATEY || mkdir $LOGPATH/$DATEY
# Monthly Dir
test -d $LOGPATH/$DATEY/$DATEM || mkdir $LOGPATH/$DATEY/...
# Dayily Dir
#test -d $LOGPATH/$DATEY/$DATEM/$DATED || mkdir $LOGPATH...
# EOF
終了行:
**apacheログローテーションスクリプト [#h14429dc]
#Contents
**概要 [#b87ec583]
rotatelogsを使用した日例ローテーションを行っているサーバ...
**log_ctrl.sh [#c34c27d3]
#!/bin/sh
# ------------------------
# Log Control Script
# ------------------------
# Version : 1.0
# date : 2008/05/16
export LANG=C
export PATH=/bin:/sbin:/usr/bin:/usr/sbin:$PATH
# date
DATEY=`date +%Y --date '1 days ago'`
DATEM=`date +%m --date '1 days ago'`
DATED=`date +%d --date '1 days ago'`
TODAY=`date +%Y%m%d`
LASTDAY=`date +%Y%m%d --date '1 days ago'`
# Script
LOGCUT="/home/system/script/logs/log_cut.sh"
MKDIR="/home/system/script/logs/make_date-dir.sh"
LOGFILE="/home/system/logs/log-cut_"$DATEYDATEM".txt"
# Site
BASEDIR="/home/httpd/【SiteName】"
date +%Y/%m/%d\ %H:%M:%S >> $LOGFILE
echo $BASE >> $LOGFILE
$MKDIR $BASEDIR/log_archive/ >> $LOGFILE
$LOGCUT $LASTDAY $BASEDIR/logs/access.log.2.gz $BASEDIR/...
$LOGCUT $LASTDAY $BASEDIR/logs/access.log.1.gz $BASEDIR/...
$LOGCUT $LASTDAY $BASEDIR/logs/access.log $BASEDIR/log_a...
gzip $BASEDIR/log_archive/$DATEY/$DATEM/【SiteName】_$LA...
exit 0
# EOF
**log_cut.sh [#c47f4f5c]
#!/bin/sh
# ------------------------
# Log Cutting Script
# ------------------------
# Version:2.0
# update :2005.09.29
export LANG=C
export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin...
# Hint
# Commnad [DATE] [FLAG] [OUTPUT] [INPUT]
## -- Check --
# $1
# target date
if [ -z $1 ]; then
echo "ERR : target date not found"
echo "USE : ./log_cut.sh [DATE] [INPUT] [OUTPUT]"
exit 0
else
DATEWC=`echo $1 | wc -m`
if [ $DATEWC = "9" ]; then
TARGETDATE="$1"
DATEY=`date +%Y --date $TARGETDATE`
DATEM=`date +%m --date $TARGETDATE`
DATED=`date +%d --date $TARGETDATE`
DATEE=`date +%e --date $TARGETDATE | sed "s/ //"`
DATEN=`date +%b --date $TARGETDATE`
DATEW=`date +%a --date $TARGETDATE`
else
echo "ERR : "$1" is abnormality format"
exit 0
fi
fi
# $2
# date format
TARGET=$DATED/$DATEN/$DATEY
# $3
# input file
if [ -z $2 ]; then
echo "ERR : Input not found"
echo "USE : ./log_cut.sh [DATE] [INPUT] [OUTPUT]"
exit 0
else
if [ -f $2 ]; then
INFILE="$2"
else
echo "ERR : "$2" not read | not found"
exit 0
fi
fi
# $4
# output path
if [ -z $3 ]; then
echo "ERR : output not found"
echo "USE : ./log_cut.sh [DATE] [INPUT] [OUTPUT]"
exit 0
else
test -w $3 || touch $3
if [ -w $3 ]; then
OUTFILE="$3"
else
echo "ERR : output file write error"
echo "USE : ./log_cut.sh [DATE] [INPUT] [OUTPUT]"
exit 0
fi
fi
# Exec
file $INFILE | grep "gzip" > /dev/null
FILETYPE=`echo $?`
if [ $FILETYPE -eq "0" ]; then
CAT="zcat"
else
CAT="cat"
fi
$CAT $INFILE | grep $TARGET >> $OUTPATH/$OUTFILE
exit 0
#EOF
**make_date-dir.sh [#x3f2c3d7]
#!/bin/sh
# --------------------------------
# Make DateName Directory Script
# --------------------------------
# Version : 1.1
# update : 2007.02.22
export LANG=C
export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin...
# Set
DATEY=`date +%Y --date '1 days ago'`
DATEM=`date +%m --date '1 days ago'`
DATED=`date +%d --date '1 days ago'`
TODAY=`date +%Y%m%d`
LASTDAY=`date +%Y%m%d --date '1 days ago'`
# Check
if [ -z $1 ]; then
echo "ERR : directory not found"
echo "USE : ./make_date-dir.sh [/PATH/LOGFILE]"
exit 0
fi
if [ -d $1 ]; then
LOGPATH=$1
else
echo "ERR : directory not found"
echo "USE : ./make_date-dir.sh [/PATH/LOGFILE]"
exit 0
fi
# Ecex
## Make Dir
# Year Dir
test -d $LOGPATH/$DATEY || mkdir $LOGPATH/$DATEY
# Monthly Dir
test -d $LOGPATH/$DATEY/$DATEM || mkdir $LOGPATH/$DATEY/...
# Dayily Dir
#test -d $LOGPATH/$DATEY/$DATEM/$DATED || mkdir $LOGPATH...
# EOF
ページ名: