|
发表于 2005-12-9 16:05:45
|
显示全部楼层
- #! /bin/bash
- # Written by li-jiahuan@sohu.com
- # 05/12/09
- #日记文件
- LOGFILE=$1
- DATE=$(date +%y.%m.%d)
- #备份文件
- LOG_BAK=$LOGFILE.$DATE
- TMPFILE=log.$$
- LOCAL_LOG=true
- E_BADLOG=65
- E_NO_CHANGE=66
- Usage()
- {
- echo usage: `basename $0` LOGFILE
- exit $E_BADLOG
- }
- if [[ "$#" != 1 ]] || [[ ! -f $LOGFILE ]] ;then
- Usage
- fi
-
- cat $LOGFILE | while read lines
- do
- ##找到localhost的行,添加 localhost 标记
- if echo $lines | grep '^http://localhost.*' > /dev/null 2>&1 ;then
- echo $lines | sed 's/^/localhost /' >> $TMPFILE
- LOCAL_LOG=true
- ##找到非localhost的行
- elif echo $lines | grep '^http' > /dev/null 2>&1 ;then
- LOCAL_LOG=false
- echo $lines >> $TMPFILE
- else
- ##找到属于localhost记录的行,添加 localhost 标记
- if [[ $LOCAL_LOG == true ]];then
- echo $lines | sed 's/^/localhost /' >> $TMPFILE
- else
- ##找到不属于localhost记录的行
- echo $lines >> $TMPFILE
- fi
- fi
- done
- # 比较原文件与临时文件
- diff $LOGFILE $TMPFILE > /dev/null 2>&1
- if [[ $? == 0 ]];then
- echo -e "\nLocalhost's log not found, Log file not changed.\n"
- rm -f $TMPFILE
- exit $E_NO_CHANGE
- fi
- # 备份原日记
- echo "Creating backup file to $LOG_BAK ..."
- mv $LOGFILE $LOG_BAK
- echo -e "done\n"
- #把带有 localhost 标记的行删除
- grep -v "^localhost" $TMPFILE > $LOGFILE
- rm -f $TMPFILE
- exit 0
复制代码 |
|