로그파일안에서 특정문자열만 추출하려고 한다.
* while 파일을 readline으로 읽고
* READ_LINE=$(echo $line)
* 구분자로 잘라 문자열을 추출 : cut -d "["
REQUEST_ID=$(echo $READ_LINE | cut -d "[" -f 3 | cut -d "]" -f 1)
#!/bin/bash
topStat(){
while read line
do
READ_LINE=$(echo $line)
REQUEST_ID=$(echo $READ_LINE | cut -d "[" -f 3 | cut -d "]" -f 1)
topStat(){
while read line
do
READ_LINE=$(echo $line)
REQUEST_ID=$(echo $READ_LINE | cut -d "[" -f 3 | cut -d "]" -f 1)
EXE_DATE=$(echo $READ_LINE | awk -F " " '{print $8}')
TASK_EXE_TIME=$(echo $READ_LINE | awk -F ":" '{print $2 ":" $3}')
grep ${REQUEST_ID} $LOG_FILENAME | awk -F " " '{print $7 " " $9}'>>$MSG_FILE
echo $TASK_EXE_TIME"]" , $EXE_DATE>>$MSG_FILE
done<$SCRIPT_HOME_DIR/logs/${TODAY}_top50.logs
echo "$TODAY 수행시간 top 50">>$MSG_FILE
}
topStat
TASK_EXE_TIME=$(echo $READ_LINE | awk -F ":" '{print $2 ":" $3}')
grep ${REQUEST_ID} $LOG_FILENAME | awk -F " " '{print $7 " " $9}'>>$MSG_FILE
echo $TASK_EXE_TIME"]" , $EXE_DATE>>$MSG_FILE
done<$SCRIPT_HOME_DIR/logs/${TODAY}_top50.logs
echo "$TODAY 수행시간 top 50">>$MSG_FILE
}
topStat
'쉘스크립트애들' 카테고리의 다른 글
쉘스크립트로 로그파일에 임의의 필드값을 더해 총갯수를 구하기 (0) | 2015.12.03 |
---|---|
string to int and sum (${TOTAL_ITEM_CNT#0}) (0) | 2015.12.03 |
linux diff 확인 하는 쉘스크립트 (0) | 2015.12.03 |
ps afxu | grep httpd | awk '{print $2}' | xargs kill -9 (0) | 2015.11.10 |
쉘 스크립트로 rsync 수행하기 : rsync -avz --exclude (0) | 2015.11.10 |