#!/bin/sh
echo " #############################################################################################"
echo " ## The Shell Script for Postfix Cyrus-sasl Courier-authlib Mysql ##"
echo " ## ##"
echo " ## Modified: Hu Changwen ##"
echo " ## MSN : ##"
echo " ## Version : 1.0 ##"
echo " ## Date : 2008-09-26 ##"
echo " #############################################################################################"
echo ""
#define the strcture of table
TABLE="(username char(50) not null,password char(20) not null,uid char(10) not null,gid char(10) not null,maildir char(100) not null,domain char(20) not null,active char(1) default '1');"
#create database and table
#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
for type in database table;do
printf "Please input the $type name you would like to create:[postfix]"
while read data;do
if [ ! -z ${data} ]; then
if [ "$type" = "database" ];then
database=$data
elif [ "$type" = "table" ];then
table=$data
fi
break
fi
printf "Please input the database name you would like to create:[postfix]"
done
done
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#input the data per user
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
for ((i=1;;i++));do
printf "Do you want to input the data per user:[yes,no]"
while read yes_no;do
if [ "$yes_no" != "yes" ];then break 2;fi
echo "Please input the data of NO.$i user:"
for col in username password uid gid maildir domain active;do
printf "$col of NO.$i :" && read ${col}[${i}]
done
break
done
done
#output the data you input
#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
echo ""
echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
echo "Please make sure the data you input:"
echo "Database: $database"
echo "Table : $table"
echo ""
echo "Show the recodes you input:"
echo "username password uid gid maildir domain active"
for ((n=1;n echo "${username[$n]} ${password[$n]} ${uid[$n]} ${gid[$n]} ${maildir[$n]} ${domain[$n]} ${active[$n]}"
done
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#execute the sql to input data to mysql
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
echo ""
echo "Executing the SQL to input data to mysql......"
printf "Creating database $database...... " && \
mysql -u root -h --password=redhat -e "create database if not exists ${database}" && \
echo -e "\033[32mOK\033[m"
printf "Creating table $table...... " && \
mysql -u root -h --password=redhat $database -e "create table if not exists ${table}$TABLE" && \
echo -e "\033[32mOK\033[m"
#insert recode to mysql
for ((n=1;n printf "Insert NO.$n recode...... " && \
mysql -u root -h --password=redhat $database -e "insert into $table values ('${username[$n]}',encrypt('${password[$n]}'),'${uid[$n]}','${gid[$n]}','${maildir[$n]}','${domain[$n]}','${active[$n]}')" && \
echo -e "\033[32mOK\033[m"
done
#show all the recode
echo ""
echo "Show all the recods in the mysql:"
mysql -u root -h --password=redhat $database -e "select * from $table"