shellスクリプトによるデータベースおよびデータテーブルの一括作成
1679 ワード
linux端末でデータベースdbを一括作成するshellスクリプトは、次のとおりです.
指定したデータベースであるディレクトリの下を一括実行する.sqlファイルの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