101 lines
2.7 KiB
Bash
101 lines
2.7 KiB
Bash
#!/bin/bash
|
|
#Copyright (c) 2020 Huawei Technologies Co.,Ltd.
|
|
#
|
|
#openGauss is licensed under Mulan PSL v2.
|
|
#You can use this software according to the terms and conditions of the Mulan PSL v2.
|
|
#You may obtain a copy of Mulan PSL v2 at:
|
|
#
|
|
# http://license.coscl.org.cn/MulanPSL2
|
|
#
|
|
# THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
|
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
|
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
|
# See the Mulan PSL v2 for more details.
|
|
#-------------------------------------------------------------------------
|
|
#
|
|
# ExecuteSQLOnAllDB.sh
|
|
#
|
|
# IDENTIFICATION
|
|
# src/manager/om/script/gspylib/inspection/lib/checkblacklist/ExecuteSQLOnAllDB.sh
|
|
#
|
|
#-------------------------------------------------------------------------
|
|
|
|
GSPORT=''
|
|
SQLFILE=''
|
|
|
|
function usage()
|
|
{
|
|
echo "***********************************************************************"
|
|
echo "* ExecuteSQLOnAllDB.sh usage *"
|
|
echo "* two indispensable paramater as following *"
|
|
echo "* -p: coordinator port number *"
|
|
echo "* -f: sql file to execute *"
|
|
echo "* example: ./ExecuteSQLOnAllDB.sh -p 25308 -f blacklist_check.sql *"
|
|
echo "***********************************************************************"
|
|
}
|
|
|
|
function parse_para()
|
|
{
|
|
while getopts "p:f:h" opt
|
|
do
|
|
case $opt in
|
|
p)
|
|
if [ -z $GSPORT ]; then
|
|
let GSPORT=$OPTARG
|
|
else
|
|
echo "GSPORT: "$GSPORT
|
|
echo "SQLFILE: "$SQLFILE
|
|
echo "ERROR: duplicate port number"
|
|
usage
|
|
exit 1
|
|
fi
|
|
;;
|
|
f)
|
|
if [ -z $SQLFILE ]; then
|
|
SQLFILE=$OPTARG
|
|
else
|
|
echo "GSPORT: "$GSPORT
|
|
echo "SQLFILE: "$SQLFILE
|
|
echo "ERROR: duplicate sql file"
|
|
usage
|
|
exit 1
|
|
fi
|
|
;;
|
|
h)
|
|
usage
|
|
exit 1
|
|
;;
|
|
?)
|
|
echo "ERROR: unkonw argument"
|
|
echo "GSPORT: "$GSPORT
|
|
echo "SQLFILE: "$SQLFILE
|
|
usage
|
|
exit 1
|
|
;;
|
|
esac
|
|
done
|
|
|
|
if [[ -z $SQLFILE || -z $GSPORT ]]; then
|
|
echo "GSPORT: "$GSPORT
|
|
echo "SQLFILE: "$SQLFILE
|
|
echo "ERROR: must designate -p and -f"
|
|
usage
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
parse_para $*
|
|
|
|
echo "GSPORT: "$GSPORT
|
|
echo "SQLFILE: "$SQLFILE
|
|
|
|
for db in $(gsql -d postgres -p $GSPORT -c "select datname||' GAUSSDB' from pg_database where datname != 'template0'" | grep GAUSSDB | awk '{print $1}')
|
|
do
|
|
echo "****************************************Blacklist Check for DataBase: "$db"**************************************************"
|
|
if [ ! -d ./log ]; then mkdir ./log ;fi
|
|
sql_log=$(pwd)/log/sqlLog.log
|
|
gsql -d $db -p $GSPORT -r -P pager=off -f $SQLFILE >$sql_log
|
|
cat $sql_log
|
|
done
|
|
|