通过shell检查mysql主机和数据库,生成html报表的脚本[通俗易懂]

通过shell检查mysql主机和数据库,生成html报表的脚本[通俗易懂]该脚本主要用于大致诊断MYSQL主机和数据库配置及性能收集,脚本部分功能展示如下: 郑州不孕不育医院:http://mobile.03913882333.com/ 郑州输卵管造影费用是多少:http…

通过shell检查mysql主机和数据库,生成html报表的脚本

该脚本主要用于大致诊断MYSQL主机和数据库配置及性能收集,脚本部分功能展示如下:

郑州不孕不育医院:http://mobile.03913882333.com/

image.png

image.png

image.png

image.png

郑州输卵管造影费用是多少:http://jbk.39.net/yiyuanfengcai/tsyl_zztjyy/3025/

实现该上述展示功能的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 "<html> <head> <style type="text/css"> 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;} </style> </head> <body>"
}
create_html_head(){
echo -e "<h1>$1</h1>"
}
create_table_head1(){
  echo -e "<table width="68%" border="1" bordercolor="#000000" cellspacing="0px" style="border-collapse:collapse">"
}
create_table_head2(){
  echo -e "<table width="100%" border="1" bordercolor="#000000" cellspacing="0px" style="border-collapse:collapse">"
}
create_td(){
    td_str=`echo $1 | awk "BEGIN{FS="|"}""{i=1; while(i<=NF) {print "<td>"$i"</td>";i++}}"`
}
create_th(){
    th_str=`echo $1|awk "BEGIN{FS="|"}""{i=1; while(i<=NF) {print "<th>"$i"</th>";i++}}"`
}
create_tr1(){
  create_td "$1"
  echo -e "<tr> $td_str </tr>" >> $file_output
}
create_tr2(){
  create_th "$1"
  echo -e "<tr> $th_str </tr>" >> $file_output
}
create_tr3(){
  echo -e "<tr><td> <pre style="font-family:Courier New; word-wrap: break-word; white-space: pre-wrap; white-space: -moz-pre-wrap" > `cat $1` </pre></td></tr>" >> $file_output
}
create_table_end(){
  echo -e "</table>"
}
create_html_end(){
  echo -e "</body></html>"
}
NAME_VAL_LEN=12
name_val () {
   printf "%+*s | %s " "${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" "${file}"|sort -u|awk -F: "{print $2}"`
   speed=`grep -i "cpu MHz" "${file}"|sort -u|awk -F: "{print $2}"`
   cache=`grep -i "cache size" "${file}"|sort -u|awk -F: "{print $2}"`
   SysCPUIdle=`vmstat | sed -n "$ p" | awk "{print $15}"`
   [ "${physical}" = "0" ] && physical="${virtual}"
   [ -z "${cores}" ] && cores=0
   cores=$((${cores} * ${physical}));
   htt=""
   if [ ${cores} -gt 0 -a $cores -lt $virtual ]; then htt=yes; else htt=no; fi
   name_val "Processors" "physical = ${physical}, cores = ${cores}, virtual = ${virtual}, hyperthreading = ${htt}"
   name_val "Models" "${physical}*${model}"
   name_val "Speeds" "${virtual}*${speed}"
   name_val "Caches" "${virtual}*${cache}"
   name_val "CPUIdle(%)" "${SysCPUIdle}%"
}
get_meminfo(){
   echo "Locator |Size |Speed |Form Factor | Type | Type Detail" >>/tmp/tmpmem3_h1_`date +%y%m%d`.txt
   dmidecode| grep -v "Memory Device Mapped Address"|grep -A12 -w "Memory Device" 
   |egrep "Locator:|Size:|Speed:|Form Factor:|Type:|Type Detail:" 
   |awk -F: "/Size|Type|Form.Factor|Type.Detail|^[ ]+Locator/{printf("|%s", $2)}/^[ ]+Speed/{print "|" $2}" 
   |grep -v "No Module Installed" 
   |awk -F"|" "{print $4,"|", $2,"|", $7,"|", $3,"|", $5,"|", $6}" >>/tmp/tmpmem3_t1_`date +%y%m%d`.txt
   free -glht >>/tmp/tmpmem2_`date +%y%m%d`.txt
   memtotal=`vmstat -s | head -1 | awk "{print $1}"`
   avm=`vmstat -s| sed -n "3p" | awk "{print $1}"`
   name_val "Mem_used_rate(%)" "`echo "100*${avm}/${memtotal}" | bc`%" >>/tmp/tmpmem1_`date +%y%m%d`.txt
  
}
get_diskinfo(){
   echo "Filesystem |Type |Size | Used | Avail | Use% | Mounted on | Opts" >>/tmp/tmpdisk_h1_`date +%y%m%d`.txt
   df -ThP|grep -v tmpfs|sed "1d"|sort >/tmp/tmpdf1_`date +%y%m%d`.txt
   mount -l|awk "{print $1,$6}"|grep ^/|sort >/tmp/tmpdf2_`date +%y%m%d`.txt
   join /tmp/tmpdf1_`date +%y%m%d`.txt /tmp/tmpdf2_`date +%y%m%d`.txt
   |awk "{print $1,"|", $2,"|", $3,"|", $4,"|", $5,"|", $6,"|", $7,"|", $8}" >>/tmp/tmpdisk_t1_`date +%y%m%d`.txt 
   lsblk >>/tmp/tmpdisk1_`date +%y%m%d`.txt 
   for disk in `ls -l /sys/block|awk "{print $9}"|sed "/^$/d"|grep -v fd`
   do
      echo "${disk}" `cat /sys/block/${disk}/queue/scheduler`  >>/tmp/tmpdisk2_`date +%y%m%d`.txt 
   done
   pvs >>/tmp/tmpdisk3_`date +%y%m%d`.txt
   echo "====================== ===== ===== ===== ===== ===== ========== =======" >>/tmp/tmpdisk3_`date +%y%m%d`.txt
   vgs >>/tmp/tmpdisk3_`date +%y%m%d`.txt
   echo "====================== ===== ===== ===== ===== ===== ========== =======" >>/tmp/tmpdisk3_`date +%y%m%d`.txt
   lvs >>/tmp/tmpdisk3_`date +%y%m%d`.txt
}
get_netinfo(){
   echo "interface | status | ipadds | mtu | Speed | Duplex" >>/tmp/tmpnet_h1_`date +%y%m%d`.txt
   for ipstr in `ifconfig -a|grep ": flags"|awk "{print $1}"|sed "s/.$//"`
   do
      ipadds=`ifconfig ${ipstr}|grep -w inet|awk "{print $2}"`
      mtu=`ifconfig ${ipstr}|grep mtu|awk "{print $NF}"`
      speed=`ethtool ${ipstr}|grep Speed|awk -F: "{print $2}"`
      duplex=`ethtool ${ipstr}|grep Duplex|awk -F: "{print $2}"`
      echo "${ipstr}"  "up" "${ipadds}" "${mtu}" "${speed}" "${duplex}"
      |awk "{print $1,"|", $2,"|", $3,"|", $4,"|", $5,"|", $6}"  >>/tmp/tmpnet1_`date +%y%m%d`.txt
   done
 }
get_topproc(){
   #os load
   echo "os load 1" >>/tmp/tmpload_`date +%y%m%d`.txt
   sar -q 1 5 >>/tmp/tmpload_`date +%y%m%d`.txt
   echo "os load 2" >>/tmp/tmpload_`date +%y%m%d`.txt
   sar -b 1 5 >>/tmp/tmpload_`date +%y%m%d`.txt
   echo "os load 3" >>/tmp/tmpload_`date +%y%m%d`.txt
   vmstat 1 5  >>/tmp/tmpload_`date +%y%m%d`.txt
   #top cpu
   mpstat 1 5 >>/tmp/tmptopcpu_`date +%y%m%d`.txt
   echo "TOP10 CPU Resource Process" >>/tmp/tmptopcpu_`date +%y%m%d`.txt
   ps aux|head -1 >>/tmp/tmptopcpu_`date +%y%m%d`.txt
   ps aux|grep -v PID|sort -rn -k +3|head  >>/tmp/tmptopcpu_`date +%y%m%d`.txt
   #top -bn1 -o "%CPU"|sed -n "/PID/,17p"
   #top mem
   echo "TOP10 MEM Resource Process" >>/tmp/tmptopmem_`date +%y%m%d`.txt
   ps aux|head -1 >>/tmp/tmptopmem_`date +%y%m%d`.txt
   ps aux|grep -v PID|sort -rn -k +4|head  >>/tmp/tmptopmem_`date +%y%m%d`.txt
   #top -bn1 -o "%MEM"|sed -n "/PID/,17p"
   #top i/o
   iostat -cdmx 2 3  >>/tmp/tmptopio_`date +%y%m%d`.txt
   #iotop -botq -n 3 -d 2 
}
my_base_info(){
  ${mysql_cmd} -e "select now(),current_user(),version()G"
  ${mysql_cmd} -e "show global variables like "autocommit";"|grep -i ^auto|awk "{print $1,":",$2}"
  ${mysql_cmd} -e "show global variables"|egrep -w "port|character_set_server|datadir|log_error|log_bin_basename|tx_isolation|binlog_format"|awk "{print $1,":",$2}"
}
my_stat_info(){
   ${mysql_cmd} -e status >>/tmp/tmpmy_stat_`date +%y%m%d`.txt
}
my_connip_info(){
  echo "ipadds|conn_status|count" >>/tmp/tmpmy_connip_h1_`date +%y%m%d`.txt
  netstat -an|grep ${myport}|grep -vi LISTEN|awk "{print $5,$6}"|sed "s/::ffff://g"|sed "s/:[0-9]*//g"|sed "1d"|sort|uniq -c|awk "{print $2,"|",$3,"|",$1}" >>/tmp/tmpmy_connip_t1_`date +%y%m%d`.txt
}
my_param_info(){
  echo "Variable_name|Value" >>/tmp/tmpmy_param_h1_`date +%y%m%d`.txt
  ${mysql_cmd} -e "show global variables"|egrep -w "innodb_buffer_pool_size|innodb_file_per_table|innodb_flush_log_at_trx_commit|innodb_io_capacity| innodb_lock_wait_timeout|innodb_data_home_dir|innodb_log_file_size|innodb_log_files_in_group|log_slave_updates|long_query_time|lower_case_table_names| max_connections|max_connect_errors|max_user_connections|query_cache_size|query_cache_type |server_id|slow_query_log|slow_query_log_file|innodb_temp_data_file_path| sql_mode|gtid_mode|enforce_gtid_consistency|expire_logs_days|sync_binlog|open_files_limit|myisam_sort_buffer_size|myisam_max_sort_file_size"
  |awk "{print $1,"|",$2}" >>/tmp/tmpmy_param_t1_`date +%y%m%d`.txt
}
my_segm1_info(){
  ${mysql_cmd} -H -e "select TABLE_SCHEMA, concat(truncate(sum(data_length)/1024/1024/1024,2)," GB") as data_size, concat(truncate(sum(index_length)/1024/1024/1024,2),"GB") as index_size from information_schema.tables group by TABLE_SCHEMA order by data_length desc;"
}
my_segm2_info(){
  ${mysql_cmd} -H -e "select table_schema,table_name,table_rows,concat(truncate(data_length/1024/1024/1024,2)," GB") as data_size, concat(truncate(index_length/1024/1024/1024,2)," GB") as index_size from information_schema.tables order by data_length desc limit 10;"
}
my_segm3_info(){
  ${mysql_cmd} -H -e "select table_name,table_rows,concat(round(data_length/1024/1024, 2), "MB") as size,data_free from information_schema.tables where data_free>0 order by data_length desc;"
}
my_obj1_info(){
  ${mysql_cmd} -H -e "select table_schema as db,table_type as object_type,count(*) as cnt from information_schema.tables group by table_schema,table_type union all select routine_schema as db,routine_type as object_type,count(*) as cnt from information_schema.routines group by routine_schema,routine_type;"
}
my_obj2_info(){
  ${mysql_cmd} -H -e "select table_schema,engine,count(*) as cnt from information_schema.tables group by table_schema,engine;"
}
my_obj3_info(){
  ${mysql_cmd} -H -e "select table_schema,table_name from information_schema.tables where table_schema not in ("mysql","information_schema","performance_schema","sys") and table_name not in ( select table_name from information_schema.table_constraints t join information_schema.key_column_usage k using ( constraint_name,table_schema,table_name) where t.constraint_type = "PRIMARY KEY" and table_schema not in ("mysql","information_schema","performance_schema","sys"));"
}
my_lock_info(){
  ${mysql_cmd} -H -e "SELECT r.trx_id waiting_trx_id, r.trx_mysql_thread_id waiting_thread, r.trx_query waiting_query, b.trx_id blocking_trx_id, b.trx_mysql_thread_id blocking_thread, b.trx_query blocking_query, bl.lock_id blocking_lock_id, bl.lock_mode blocking_lock_mode, bl.lock_type blocking_lock_type, bl.lock_table blocking_lock_table, bl.lock_index blocking_lock_index, rl.lock_id waiting_lock_id, rl.lock_mode waiting_lock_mode, rl.lock_type waiting_lock_type, rl.lock_table waiting_lock_table, rl.lock_index waiting_lock_index FROM information_schema.INNODB_LOCK_WAITS w INNER JOIN information_schema.INNODB_TRX b ON b.trx_id = w.blocking_trx_id INNER JOIN information_schema.INNODB_TRX r ON r.trx_id = w.requesting_trx_id INNER JOIN information_schema.INNODB_LOCKS bl ON bl.lock_id = w.blocking_lock_id INNER JOIN information_schema.INNODB_LOCKS rl ON rl.lock_id = w.requested_lock_idG"
}
my_innodb_info(){
  ${mysql_cmd} -e "show engine innodb statusG"
}
my_user_info(){
  ${mysql_cmd} -e "SELECT DISTINCT CONCAT("show grants for """,user,"""@""",host,""";") AS query FROM mysql.user;" >>/tmp/tmpmy_user_t_`date +%y%m%d`.txt
  while read line
  do
    echo "=================================================================" >>/tmp/tmpmy_user_`date +%y%m%d`.txt
    echo "$line" >>/tmp/tmpmy_user_`date +%y%m%d`.txt
    ${mysql_cmd} -e "$line" >>/tmp/tmpmy_user_`date +%y%m%d`.txt
  done </tmp/tmpmy_user_t_`date +%y%m%d`.txt
}
create_html(){
  rm -rf $file_output
  touch $file_output
  create_html_css >> $file_output
  
  create_html_head "OS Basic Summary" >> $file_output
  create_table_head1 >> $file_output
  get_physics >>/tmp/tmpos_summ_`date +%y%m%d`.txt
  while read line
  do
    create_tr1 "$line" 
  done < /tmp/tmpos_summ_`date +%y%m%d`.txt
  create_table_end >> $file_output
  
  create_html_head "CPU Info Summary" >> $file_output
  create_table_head1 >> $file_output
  get_cpuinfo >>/tmp/tmp_cpuinfo_`date +%y%m%d`.txt
  while read line
  do
    create_tr1 "$line" 
  done < /tmp/tmp_cpuinfo_`date +%y%m%d`.txt  
  create_table_end >> $file_output
  
  create_html_head "MEM Info Summary" >> $file_output
  create_table_head1 >> $file_output
  get_meminfo
  while read line
  do
    create_tr1 "$line" 
  done < /tmp/tmpmem1_`date +%y%m%d`.txt
  create_table_end >> $file_output
  
  create_table_head1 >> $file_output
  create_tr3 "/tmp/tmpmem2_`date +%y%m%d`.txt"
  create_table_end >> $file_output
  
  create_table_head1 >> $file_output
  while read line
  do
    create_tr2 "$line" 
  done < /tmp/tmpmem3_h1_`date +%y%m%d`.txt
  
  while read line
  do
    create_tr1 "$line" 
  done < /tmp/tmpmem3_t1_`date +%y%m%d`.txt
  create_table_end >> $file_output
  
  create_html_head "Disk Info Summary" >> $file_output
  create_table_head1 >> $file_output
  get_diskinfo
  while read line
  do
    create_tr2 "$line" 
  done < /tmp/tmpdisk_h1_`date +%y%m%d`.txt
  while read line
  do
    create_tr1 "$line" 
  done < /tmp/tmpdisk_t1_`date +%y%m%d`.txt
  create_table_end >> $file_output
  
  create_table_head1 >> $file_output
  create_tr3 "/tmp/tmpdisk1_`date +%y%m%d`.txt"
  create_table_end >> $file_output
  
  create_table_head1 >> $file_output
  create_tr3 "/tmp/tmpdisk2_`date +%y%m%d`.txt"
  create_table_end >> $file_output
  
  create_table_head1 >> $file_output
  create_tr3 "/tmp/tmpdisk3_`date +%y%m%d`.txt"
  create_table_end >> $file_output
  create_html_head "Network Info Summary" >> $file_output
  create_table_head1 >> $file_output
  get_netinfo
  while read line
  do
    create_tr2 "$line" 
  done < /tmp/tmpnet_h1_`date +%y%m%d`.txt
  while read line
  do
    create_tr1 "$line" 
  done < /tmp/tmpnet1_`date +%y%m%d`.txt
  create_table_end >> $file_output
  
  create_html_head "OS Load Summary" >> $file_output
  create_table_head1 >> $file_output
  get_topproc
  create_tr3 "/tmp/tmpload_`date +%y%m%d`.txt"
  create_table_end >> $file_output
  
  create_html_head "TOP CPU Summary" >> $file_output
  create_table_head1 >> $file_output
  create_tr3 "/tmp/tmptopcpu_`date +%y%m%d`.txt"
  create_table_end >> $file_output
          
  create_html_head "TOP MEM Summary" >> $file_output
  create_table_head1 >> $file_output
  create_tr3 "/tmp/tmptopmem_`date +%y%m%d`.txt"
  create_table_end >> $file_output
  
  create_html_head "TOP IO Summary" >> $file_output
  create_table_head1 >> $file_output
  create_tr3 "/tmp/tmptopio_`date +%y%m%d`.txt"
  create_table_end >> $file_output
  
  create_html_head "Basic Database Information" >> $file_output
  create_table_head1 >> $file_output
  my_base_info >>/tmp/tmpmy_base_`date +%y%m%d`.txt
  sed -i -e "1d" -e "s/:/|/g" /tmp/tmpmy_base_`date +%y%m%d`.txt
  while read line
  do
    create_tr1 "$line" 
  done </tmp/tmpmy_base_`date +%y%m%d`.txt
  create_table_end >> $file_output
  create_html_head "Running Status of Database" >> $file_output
  create_table_head1 >> $file_output
  my_stat_info  
  create_tr3 "/tmp/tmpmy_stat_`date +%y%m%d`.txt"
  create_table_end >> $file_output
  
  create_html_head "IP Connection Statistics" >> $file_output
  create_table_head1 >> $file_output
  my_connip_info
  while read line
  do
    create_tr2 "$line" 
  done < /tmp/tmpmy_connip_h1_`date +%y%m%d`.txt
  while read line
  do
    create_tr1 "$line" 
  done < /tmp/tmpmy_connip_t1_`date +%y%m%d`.txt
  create_table_end >> $file_output  
  create_html_head "Important Parameters" >> $file_output
  create_table_head1 >> $file_output
  my_param_info
  while read line
  do
    create_tr2 "$line" 
  done < /tmp/tmpmy_param_h1_`date +%y%m%d`.txt
  while read line
  do
    create_tr1 "$line" 
  done < /tmp/tmpmy_param_t1_`date +%y%m%d`.txt
  create_table_end >> $file_output    
  
  create_html_head "Size of each database" >> $file_output
  my_segm1_info >> $file_output
  create_html_head "TOP10 Space Table" >> $file_output
  my_segm2_info >> $file_output
  create_html_head "High Water Level Meter" >> $file_output
  my_segm3_info >> $file_output
  
  create_html_head "Object type statistics" >> $file_output
  my_obj1_info >> $file_output
  create_html_head "Storage Engine Number Statistics" >> $file_output
  my_obj2_info >> $file_output
  create_html_head "Tables without primary keys" >> $file_output
  my_obj3_info >> $file_output
  
  create_html_head "Lock information" >> $file_output
  my_lock_info >> $file_output
  
  create_html_head "Innodb Status Information" >> $file_output
  create_table_head1 >> $file_output
  my_innodb_info >>/tmp/tmpmy_innodb_`date +%y%m%d`.txt  
  create_tr3 "/tmp/tmpmy_innodb_`date +%y%m%d`.txt"
  create_table_end >> $file_output
  
  create_html_head "User Authorization Information" >> $file_output
  create_table_head1 >> $file_output
  my_user_info
  create_tr3 "/tmp/tmpmy_user_`date +%y%m%d`.txt"
  create_table_end >> $file_output
  
  create_html_head "Slow SQL statistics" >> $file_output
  
  create_html_end >> $file_output
  sed -i "s/BORDER=1/width="68%" border="1" bordercolor="#000000" cellspacing="0px" style="border-collapse:collapse"/g" $file_output
  rm -rf /tmp/tmp*_`date +%y%m%d`.txt
}
# This script must be executed as root
RUID=`id|awk -F( "{print $1}"|awk -F= "{print $2}"`
# #OR# RUID=`id | cut -d( -f1 | cut -d= -f2` #OR#ROOT_UID=0
if [ ${RUID} != "0" ];then
    echo"This script must be executed as root"
    exit 1
fi
PLATFORM=`uname`
if [ ${PLATFORM} = "HP-UX" ] ; then
    echo "This script does not support HP-UX platform for the time being"
exit 1
elif [ ${PLATFORM} = "SunOS" ] ; then
    echo "This script does not support SunOS platform for the time being"
exit 1
elif [ ${PLATFORM} = "AIX" ] ; then
    echo "This script does not support AIX platform for the time being"
exit 1
elif [ ${PLATFORM} = "Linux" ] ; then
echo -e " ########################################################################################### # # #Make sure that the following parameters at the beginning of the script are correct. # #myuser="root" (Database Account) # #mypasswd="password" (Database password) # #myip="192.168.11.101" (Database native IP) # #myport="3307" (Database port) # # Otherwise, the script cannot be executed properly. # # # ########################################################################################### "
#read -p "The database connection information is configured correctly. Please execute[yes or y]:" SELECT
#printf " "
#if [ $SELECT == "yes" -o $SELECT == "y" ]; then
  create_html
#else
# exit 1
#fi
fi

代码100分

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/8875.html

(0)
上一篇 2023-02-20
下一篇 2023-02-20

相关推荐

  • Python幂函数

    Python幂函数在介绍Python幂函数之前,我们先来了解一下Python函数rgb。Python函数rgb用于将十六进制颜色代码转换为RGB格式,十六进制颜色代码是在网页设计中非常常用的表示颜色的方式。我们可以通过调用rgb函数将网页中的颜色代码转换为RGB格式来进行操作。

    2024-07-03
    39
  • 分享 | 一文了解 PG PITR 即时恢复「终于解决」

    分享 | 一文了解 PG PITR 即时恢复「终于解决」作者:颜博 青云科技数据库研发工程师 目前从事 PostgreSQL 产品开发工作,热衷于 PostgreSQL 数据库的学习和研究 在数据库系统中,数据是一切的基础,数据的安全更是重中之重。但可能因

    2023-04-26
    155
  • mysql死锁例子_数据库死锁

    mysql死锁例子_数据库死锁最近项目中某个模块稳定复现MySQL死锁问题,本文记录死锁的发生原因以及解决办法。 1. 预备知识 1.1 表锁和行锁 表锁 表锁是MySQL中最基本的锁策略,并且是开销最小的策略。表锁会锁定整张数据

    2023-04-15
    150
  • sql中union all的用法_sql中union用法示例

    sql中union all的用法_sql中union用法示例本文介绍如何利用 SQL UNION 操作符将多条 SELECT 语句组合成一个结果集。使用 UNION 可极大地简化复杂的 WHERE 子句,简化从多个表中检索数据的工作。 一、组合查询 多数 SQ

    2023-05-17
    145
  • Centos服务器和redis和nginx和mysql基础安全加固处理

    Centos服务器和redis和nginx和mysql基础安全加固处理Centos服务器和redis和nginx和mysql基础安全加固处理

    2023-04-05
    157
  • 使用Python编写套接字的网络应用程序

    使用Python编写套接字的网络应用程序Python是一种通用编程语言,它可以很轻松地处理网络应用程序。在这篇文章中,我们将介绍如何使用Python编写套接字的网络应用程序。套接字是实现网络通信的一种方式。Python内置了一些套接字API,可以使用它们来编写网络应用程序。

    2024-01-13
    113
  • 用python批量重命名linux目录

    用python批量重命名linux目录在Linux系统中,经常需要对大量的文件夹进行重命名操作,手动修改文件夹名称效率较低,需要使用自动化工具进行批量重命名。Python是一种灵活的脚本语言,可以方便地进行批量操作。本篇文章将介绍如何使用Python对Linux系统中的文件夹进行批量重命名。

    2024-01-30
    114
  • Oracle 18c XE 新建用户及使用新建用户登录问题解决「建议收藏」

    Oracle 18c XE 新建用户及使用新建用户登录问题解决「建议收藏」【本篇内容提供问题与解决办法,相关的Oracle数据库概念、原理等不做说明(我还没弄明白)】 问题描述: 数据库:Oracle Database Express Edition (XE) Relea…

    2023-04-13
    161

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注