You've already forked mariadb-columnstore-engine
mirror of
https://github.com/mariadb-corporation/mariadb-columnstore-engine.git
synced 2025-12-20 01:42:27 +03:00
95 lines
2.9 KiB
Bash
Executable File
95 lines
2.9 KiB
Bash
Executable File
#!/bin/bash
|
|
#
|
|
#/*******************************************************************************
|
|
#* Script Name: getsql.sh
|
|
#* Date Created: 2009.02.17
|
|
#* Author: Joseph Williams
|
|
#* Purpose: extract lines from log file within time block
|
|
#*
|
|
#* Parameter: date - A day of month in question (dd)
|
|
#* starttime - A start time in (HH:mm)
|
|
#* endtime - An end time in (HH:mm)
|
|
#*
|
|
#******************************************************************************/
|
|
#
|
|
#-----------------------------------------------------------------------------
|
|
# command line parameters
|
|
#-----------------------------------------------------------------------------
|
|
date=$1
|
|
starttime=$2
|
|
endtime=$3
|
|
#
|
|
host=$(hostname -s)
|
|
#
|
|
# change date format to match sql log date format
|
|
newdate=`date +%y%m$1`
|
|
#
|
|
# clean up previous data files
|
|
if [ -d /tmp/$host/sql ]
|
|
then
|
|
rm -rf /tmp/$host/sql
|
|
fi
|
|
mkdir -p /tmp/$host/sql
|
|
#
|
|
# create the beginning and ending time search variables
|
|
st=`echo $starttime | awk -F":" '{ printf "%.4d\n", $1$2 }'`
|
|
sh=`echo $starttime | awk -F":" '{ print $1 }'`
|
|
sm=`echo $starttime | awk -F":" '{ print $2 }'`
|
|
et=`echo $endtime | awk -F":" '{ printf "%.4d\n", $1$2 }'`
|
|
eh=`echo $endtime | awk -F":" '{ print $1 }'`
|
|
em=`echo $endtime | awk -F":" '{ print $2 }'`
|
|
start="$newdate $sh:$sm"
|
|
end="$newdate $eh:$em"
|
|
foundstart="no"
|
|
foundend="no"
|
|
#
|
|
#-----------------------------------------------------------------------------
|
|
# Search through the file looking for start and end time matches
|
|
#-----------------------------------------------------------------------------
|
|
k=$st
|
|
while [ $k -ge $st ] && [ $k -le $et ] && [ $foundstart == "no" ]; do
|
|
if [ $sm -ge 60 ]; then
|
|
k=`expr $k + 39`
|
|
sm=`expr $sm - 61`
|
|
elif [ $k -ge $st ] && [ $k -le $et ]; then
|
|
grep -q "$newdate $sh:$sm" /usr/local/mariadb/columnstore/mysql/db/$host.log
|
|
if [ "$?" -eq "0" ] && [ $foundstart == "no" ]; then
|
|
start="$newdate $sh:$sm"
|
|
foundstart="yes"
|
|
fi
|
|
fi
|
|
if [ $foundstart == "no" ]; then
|
|
k=`expr $k + 0`
|
|
k=$((k + 1))
|
|
((sm++))
|
|
fi
|
|
done
|
|
while [ $k -ge $st ] && [ $k -le $et ] && [ $foundend == "no" ]; do
|
|
if [ $em -ge 60 ]; then
|
|
k=`expr $k + 39`
|
|
em=`expr $em - 61`
|
|
elif [ $k -ge $st ] && [ $k -le $et ]; then
|
|
grep -q "$newdate $eh:$em" /usr/local/mariadb/columnstore/mysql/db/$host.log
|
|
if [ "$?" -eq "0" ] && [ $foundend == "no" ]; then
|
|
end="$newdate $eh:$em"
|
|
foundend="yes"
|
|
fi
|
|
fi
|
|
if [ $foundend == "no" ]; then
|
|
k=`expr $k + 0`
|
|
k=$((k + 1))
|
|
((em++))
|
|
fi
|
|
done
|
|
#
|
|
# create the awk command and write it to a temporary run file
|
|
cmd="/$start/,/$end/ {print \$0} "
|
|
echo $cmd >> /tmp/$host/sql/cmd.$$
|
|
#
|
|
# execute the command
|
|
awk -f /tmp/$host/sql/cmd.$$ /usr/local/mariadb/columnstore/mysql/db/$host.log > /tmp/$host/sql/temp.log
|
|
#
|
|
exit
|
|
#
|
|
# End of Script
|