shellスクリプトによるデータベースおよびデータテーブルの一括作成

1679 ワード

linux端末でデータベースdbを一括作成するshellスクリプトは、次のとおりです.
#!/bin/bash
#       
user=root
password=handdba
socket=/var/lib/mysql/mysql.sock
mycmd="mysql -u$user -p$password -S $socket"
for((i=13;i<73;i++))
do
$mycmd -e "create database db$i"
done

指定したデータベースであるディレクトリの下を一括実行する.sqlファイルのshellスクリプトは次のとおりです.
#!/bin/bash
#execute all script in specified directory
MYDATE=`date +%F'-'%T'-'%w`
MYSQL_PATH=/u01/scripts #     
LOG_FILE=/u01/scripts/exec_${MYDATE}.log
confirm=
db_name=
db_pass=handdba
for file in ${MYSQL_PATH}/*
do
if [ -f "$file" ] ; then
postfix=`echo $file | awk -F'.' '{print  "."$NF}'`
  if [ $postfix = ".sql" ] ; then
     if [ ! $db_name ] ; then #         
        read -p "       :" db_name
        read -p "        【$db_name】,       --yes--: " confirm
     fi
     if [ "$confirm" = "yes" ] && [ -n $confirm ] ; then
        if [ ! $db_pass ] ; then #        
           stty -echo #          
           read -p "        :" db_pass
           echo -e "
" stty echo fi mysql -uroot -p$db_pass -P3306 --default-character-set=utf8 ${db_name} < $file >& error.log echo $file echo -e "
===========$file=============
" >>${LOG_FILE} cat error.log >>${LOG_FILE} # error=`grep ERROR error.log` # if [ -n "$error" ] ; then # echo $error exit fi else echo " !" exit fi fi fi done