56 lines
1.5 KiB
Bash
Executable File
56 lines
1.5 KiB
Bash
Executable File
#!/bin/bash
|
|
# Author: Kun Huang <academicgareth@gmail.com>
|
|
#
|
|
# Basic Usage: TODO
|
|
#
|
|
# TODO announce the advantage and disadvantages
|
|
#
|
|
|
|
log_file_var=general_log_file
|
|
log_switch_var=general_log
|
|
log_file=/tmp/mysqllive.log
|
|
old_log_file=`mysql -e "SELECT @@$log_file_var" | grep -v $log_file_var | grep -v '\-\-\-\-\-'`
|
|
old_log_switch=`mysql -e "SELECT @@$log_switch_var" | grep -v $log_switch_var | grep -v '\-\-\-\-\-'`
|
|
|
|
reset () {
|
|
echo -------------------------------------
|
|
echo reset $log_file_var to $old_log_file
|
|
echo reset $log_switch_var to $old_log_switch
|
|
mysql -e "SET GLOBAL $log_switch_var = $old_log_switch;"
|
|
mysql -e "SET GLOBAL $log_file_var = '$old_log_file';"
|
|
|
|
echo remove $log_file
|
|
echo -------------------------------------
|
|
sudo rm $log_file
|
|
}
|
|
|
|
trap "reset" SIGINT SIGTERM
|
|
|
|
echo -------------------------------------
|
|
echo reserve $log_file_var: $log_file
|
|
echo reserve $log_switch_var: ON
|
|
echo -------------------------------------
|
|
|
|
mysql -e "SET GLOBAL $log_file_var = '$log_file';"
|
|
mysql -e "SET GLOBAL $log_switch_var = ON;"
|
|
|
|
sleep 1
|
|
sudo chmod +r $log_file
|
|
|
|
# TODO use awk /reg/ statement instead
|
|
tailf $log_file | awk '{
|
|
if ( $1 + 0 != $1 )
|
|
# TODO cat this line on its above line
|
|
print $0;
|
|
else if ( $1 + 0 == $1 && $2 == "Query" && $3 == "SELECT" && $4 == "1" )
|
|
;
|
|
else if ( $1 + 0 == $1 && $2 == "Query" && $3 == "COMMIT" )
|
|
;
|
|
else if ( $1 + 0 == $1 && $2 == "Query" && $3 == "ROLLBACK" )
|
|
;
|
|
else
|
|
# TODO flag to control empty line
|
|
{ $1=$2=""; print $0; print ""}
|
|
}
|
|
'
|