现在的位置: 首页 > 综合 > 正文

shell启动另一个脚本进行统计,awk在每一行添加当前时间

2013年08月25日 ⁄ 综合 ⁄ 共 1841字 ⁄ 字号 评论关闭

控制脚本,

stat.sh

PID_NUM=$$

PID_FILE=stat.pid

#echo "pid : "$PID_NUM

PROG_NAME=$0
ACTION=$1

usage() {
    echo "Usage: ${PROG_NAME} {start|stop|restart}"
    exit 1;
}

start(){
    sh ./stat_run.sh &
    PID_NUM=$!
    echo "worker pid is " $PID_NUM
    echo ${PID_NUM} > ${PID_FILE}
}

stop(){
    PID_NUM=`cat ${PID_FILE}`
    if [ "" != "${PID_NUM}" ]; then

        echo kill pid is "${PID_NUM}"        
        kill ${PID_NUM}
    fi
}

case "${ACTION}" in
    start)
        start
    ;;
    stop)
        stop
    ;;
    restart)
        stop
        sleep 1
        start
    ;;
    *)
        usage
    ;;
esac

其中$$ 表示当前正在运行的进程的pid,$!表示最近的上一个进程pid

真正运行统计程序的脚本

cat stat_run.sh 
    STAT_FILE=stat_delay.log
    echo "" > $STAT_FILE
    while true; do 
        tail -n10000 perf.log | awk '{print $8}' | grep totalAll | awk -F, 'BEGIN {cnt=0;total=0} {cnt=cnt+1;total=total+$3} END{print '"\"$(date  +%Y-%m-%d-%H:%M:%S)\""', total/cnt}' >> $STAT_FILE;
        sleep 5;
    done;

上面脚本,每5秒统计最新生成的10000条记录的平均值

在awk中每行打印当前时间

[admin@v021130.sqa.cm4 logs]$ cat test.log 
2013-07-30-23:00:12 44.5791
2013-07-30-23:00:17 44.5791
2013-07-30-23:00:22 44.5791
2013-07-30-23:00:27 44.5791
2013-07-30-23:00:32 44.5791
2013-07-30-23:00:37 44.5791
2013-07-30-23:00:42 44.5791
2013-07-30-23:00:47 44.5791
2013-07-30-23:00:52 44.5791
2013-07-30-23:00:58 44.5791
[admin@v021130.sqa.cm4 logs]$ awk '{print '"\"$(date  +%Y-%m-%d-%H:%M:%S)\""', $1}' test.log           
2013-07-30-23:01:21 2013-07-30-23:00:12
2013-07-30-23:01:21 2013-07-30-23:00:17
2013-07-30-23:01:21 2013-07-30-23:00:22
2013-07-30-23:01:21 2013-07-30-23:00:27
2013-07-30-23:01:21 2013-07-30-23:00:32
2013-07-30-23:01:21 2013-07-30-23:00:37
2013-07-30-23:01:21 2013-07-30-23:00:42
2013-07-30-23:01:21 2013-07-30-23:00:47
2013-07-30-23:01:21 2013-07-30-23:00:52
2013-07-30-23:01:21 2013-07-30-23:00:58
[admin@v021130.sqa.cm4 logs]$ awk '{print '"\"$(date  +%Y-%m-%d-%H:%M:%S)\""', $2}' test.log  
2013-07-30-23:01:27 44.5791
2013-07-30-23:01:27 44.5791
2013-07-30-23:01:27 44.5791
2013-07-30-23:01:27 44.5791
2013-07-30-23:01:27 44.5791
2013-07-30-23:01:27 44.5791
2013-07-30-23:01:27 44.5791
2013-07-30-23:01:27 44.5791
2013-07-30-23:01:27 44.5791
2013-07-30-23:01:27 44.5791

抱歉!评论已关闭.