该脚本主要用于大致诊断MYSQL主机和数据库配置及性能收集,脚本部分功能展示如下:
实现该上述展示功能的shell脚本如下:file_output='os_mysql_summary.html'
td_str=''
th_str=''
myuser="root"
mypasswd="password"
myip="192.168.11.101"
myport="3307"
mysql_cmd="mysql -u${myuser} -p${mypasswd} -h${myip} -P${myport} --protocol=tcp --silent"
create_html_css(){
echo -e "
body {font:12px Courier New,Helvetica,sansserif; color:black; background:White;}
table,tr,td {font:12px Courier New,Helvetica,sansserif; color:Black; background:#FFFFCC; padding:0px 0px 0px 0px; margin:0px 0px 0px 0px;}
th {font:bold 12px Courier New,Helvetica,sansserif; color:White; background:#0033FF; padding:0px 0px 0px 0px;}
h1 {font:bold 12pt Courier New,Helvetica,sansserif; color:Black; padding:0px 0px 0px 0px;}
}
create_html_head(){
echo -e "
$1
"}
create_table_head1(){
echo -e "
}
create_table_head2(){
echo -e "
}
create_td(){
td_str=`echo $1 | awk 'BEGIN{FS="|"}''{i=1; while(i<=NF) {print "
"$i"";i++}}'`}
create_th(){
th_str=`echo $1|awk 'BEGIN{FS="|"}''{i=1; while(i<=NF) {print "
"$i"";i++}}'`}
create_tr1(){
create_td "$1"
echo -e "
$td_str
" >> $file_output}
create_tr2(){
create_th "$1"
echo -e "
$th_str
" >> $file_output}
create_tr3(){
echo -e "
`cat $1`
" >> $file_output}
create_table_end(){
echo -e "
"}
create_html_end(){
echo -e ""
}
NAME_VAL_LEN=12
name_val () {
printf "%+*s | %s\n" "${NAME_VAL_LEN}" "$1" "$2"
}
get_virtual () {
local file="/var/log/dmesg"
if grep -qi -e "vmware" -e "vmxnet" -e 'paravirtualized kernel on vmi' "${file}"; then
echo "VMWare";
elif grep -qi -e 'paravirtualized kernel on xen' -e 'Xen virtual console' "${file}"; then
echo "Xen";
elif grep -qi "qemu" "${file}"; then
echo "QEmu";
elif grep -qi 'paravirtualized kernel on KVM' "${file}"; then
echo "KVM";
elif grep -q "VBOX" "${file}"; then
echo "VirtualBox";
elif grep -qi 'hd.: Virtual .., ATA.*drive' "${file}"; then
echo "Microsoft VirtualPC";
else
echo "Physical Machine"
fi
}
get_physics(){
name_val "Date" "`date -u +'%F %T UTC'` (local TZ: `date +'%Z %z'`)"
name_val "Hostname" "`uname -n`"
name_val "Uptime" "`uptime`"
name_val "System" "`dmidecode -s "system-manufacturer" "system-product-name" "system-version" "chassis-type"`"
name_val "Service_num" "`dmidecode -s "system-serial-number"`"
name_val "Platform" "`uname -s`"
name_val "Release" "`cat /etc/{oracle,redhat,SuSE,centos}-release 2>/dev/null|sort -ru|head -n1`"
name_val "Kernel" "`uname -r`"
name_val "Architecture" "CPU=`lscpu|grep Architecture|awk -F: '{print $2}'|sed 's/^[[:space:]]*//g'`;OS=`getconf LONG_BIT`-bit"
name_val "Threading" "`getconf GNU_LIBPTHREAD_VERSION`"
name_val "SELinux" "`getenforce`"
name_val "Virtualized" "`get_virtual`"
}
get_cpuinfo () {
file="/proc/cpuinfo"
virtual=`grep -c ^processor "${file}"`
physical=`grep 'physical id' "${file}" | sort -u | wc -l`
cores=`grep 'cpu cores' "${file}" | head -n 1 | cut -d: -f2`
model=`grep "model name