# DATE:2020-03-16
#
# 自動化部署(rhel 7)
# jdk 1.8.0_141
# redis 3.2.1
# mysql 5.7.27
# tomcat 8.5.51
#################################
# 目錄規劃:
# mysql安裝在/fsl_data
# redis安裝在/usr/local/redis
# tomcat安裝在/home下
# 腳本及安裝包統一放在/opt目錄下
#################################
#指定tomcat\redis\mysql 路徑、端口和密碼
TOMCAT_PATH=/home
TOMCAT_PORT=(7001 8001 9001)
MYSQL_HOME=/fsl_data
MYSQL_PWD=fswl@1234
MYSQL_PORT=3306
REDIS_PATH=/usr/local
REDIS_PORT=16379
REDIS_PWD=fswl@1234
RELAYHOST=[xx.xx.xx.xx]:20025
MAIL_USER=[email protected]
MAIL_PWD=lcp
#調用函數庫
[ -f /etc/init.d/functions ] && source /etc/init.d/functions
export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
source /etc/profile
#Require root to run this script.
[ $(id -u) -gt 0 ] && echo "請用root用戶執行此腳本!" && exit 1
#"stty erase ^H" 設置backspace爲刪除鍵
\cp /root/.bash_profile /root/.bash_profile_$(date +%F)
erase=`grep -wx "stty erase ^H" /root/.bash_profile |wc -l`
if [ $erase -lt 1 ];then
echo "stty erase ^H" >>/root/.bash_profile
source /root/.bash_profile
fi
#基礎變量
centosVersion=$(cat /etc/redhat-release|sed -r 's/.* ([0-9]+)\..*/\1/')
DATE=`date +"%y-%m-%d %H:%M:%S"`
IPADDR=$(ip -f inet addr | grep -v 127.0.0.1 | grep inet |grep -vE 'inet6|127.0.0.1|virbr0'| awk '{print $NF,$2}' | tr '\n' ',' | sed 's/,$//'|awk '{print $NF}')
MAC=$(ip link | grep -v "LOOPBACK\|loopback" | awk '{print $2}' | sed 'N;s/\n//' | tr '\n' ',' | sed 's/,$//'|awk -F ',' '{print $1}')
GATEWAY=$(ip route | grep default | awk '{print $3}')
DNS=$(grep nameserver /etc/resolv.conf| grep -v "#" | awk '{print $2}' | tr '\n' ',' | sed 's/,$//')
HOSTNAME=`hostname -s`
USER=`whoami`
#disk_check (grep -w用於字符串精確匹配)
DISK_SDA=`df -h |grep -w "/" |awk '{print $5}'`
#cpu_average_check
cpu_uptime=`cat /proc/loadavg|awk '{print $1,$2,$3}'`
#設置中文字符集
initI18n(){
echo ""
echo -e "\033[33m***************************************************更改中文字符集****************************************************\033[0m"
\cp /etc/locale.conf /etc/locale.conf.$(date +%F)
cat >>/etc/locale.conf<<EOF
LANG="zh_CN.UTF-8"
#LANG="en_US.UTF-8"
EOF
source /etc/locale.conf
grep LANG /etc/locale.conf
echo -e "\033[33m***********************************************更改字符集zh_CN.UTF-8完成*********************************************\033[0m"
echo ""
sleep 5
}
#關閉 Selinux 和防火牆
initFirewall(){
echo ""
echo -e "\033[33m*************************************************禁用selinux和防火牆*************************************************\033[0m"
\cp /etc/selinux/config /etc/selinux/config.$(date +%F)
systemctl stop firewalld
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
setenforce 0
systemctl status firewalld
echo '#grep SELINUX=disabled /etc/selinux/config '
grep SELINUX=disabled /etc/selinux/config
echo '#getenforce '
getenforce
echo -e "\033[33m************************************************完成禁用selinux和防火牆**********************************************\033[0m"
echo ""
sleep 5
}
#時間同步
##$?是指上一次命令執行的成功或者失敗的狀態,成功爲0,失敗爲1
syncSysTime(){
echo ""
echo -e "\033[33m******************************************************配置時間同步***************************************************\033[0m"
\cp /var/spool/cron/root /var/spool/cron/root.$(date +%F) 2>/dev/null
NTPDATE=`grep ntpdate /var/spool/cron/root 2>/dev/null |wc -l`
if [ $NTPDATE -eq 0 ];then
ping -c 4 0.asia.pool.ntp.org >/dev/null 2>&1
if [ $? -eq 0 ];then
echo "#times sync by hwb at $(date +%F)" >>/var/spool/cron/root
echo "*/5 * * * * /usr/sbin/ntpdate 0.asia.pool.ntp.org;/sbin/hwclock -w &>/dev/null" >> /var/spool/cron/root
hwclock --systohc #同步到硬件
else
ping -c 4 172.26.150.145 >/dev/null 2>&1
if [ $? -eq 0 ];then
echo "#times sync by hwb at $(date +%F)" >>/var/spool/cron/root
echo "* 8 * * * /usr/sbin/ntpdate 172.26.150.145;/sbin/hwclock -w" >> /var/spool/cron/root
hwclock --systohc #同步到硬件
else
echo "==============網絡不通,無法配置時間同步==========="
#exit $?和exit $1區別
exit $?
fi
fi
fi
echo '#crontab -l'
crontab -l
echo -e "\033[33m*************************************************完成時間同步配置**************************************************\033[0m"
echo ""
sleep 5
}
function install_yum(){
echo ""
echo -e "\033[33m***************************************************開始配置yum源****************************************************\033[0m"
ping -c 4 mirrors.aliyun.com >/dev/null
if [ $? -eq 0 ];then
configAliyunYum
else
if [ -f /root/CentOS-7-x86_64-Everything-1611.iso ];then
configLocalYum
else
action "\033[33m**********************網絡不通且本地沒有yum源,請手動配置yum***********************\033[0m" /bin/true
exit $?
fi
fi
}
#Config Yum lianyou.repo and save Yum file
configLocalYum(){
echo ""
echo -e "\033[33m***************************************************配置聯友本地yum*************************************************\033[0m"
for i in /etc/yum.repos.d/*.repo;do cp $i ${i%.repo}.bak;done
rm -rf /etc/yum.repos.d/*.repo
mkdir -p /mnt/cdrom && mount -o loop -t iso9660 /root/CentOS-7-x86_64-Everything-1611.iso /mnt/cdrom/
echo "================配置YUM源文件===================="
cat << EOF > /etc/yum.repos.d/localyum.repo
[InstallMedia]
name=Centos 7.3
baseurl=file:///mnt/cdrom/
enabled=1
gpgcheck=0
EOF
yum clean all && yum makecache >/dev/null 2>&1
yum repolist
echo -e "\033[33m***********************************************完成聯友本地yum配置**************************************************\033[0m"
echo ""
sleep 5
}
#Config Yum CentOS-Bases.repo and save Yum file
configAliyunYum(){
echo ""
echo -e "\033[33m***************************************************更新爲阿里源*****************************************************\033[0m"
for i in /etc/yum.repos.d/*.repo;do cp $i ${i%.repo}_bak;done
rm -rf /etc/yum.repos.d/*.repo
wget -P /etc/yum.repos.d/ http://mirrors.aliyun.com/repo/Centos-7.repo >/dev/null 2>&1
echo "================配置YUM源文件===================="
sed -i 's#keepcache=0#keepcache=1#g' /etc/yum.conf
grep keepcache /etc/yum.conf
yum clean all & >/dev/null && yum makecache >/dev/null 2>&1
yum repolist
echo -e "\033[33m***************************************************完成阿里源配置***************************************************\033[0m"
echo ""
sleep 5
}
#add user and give sudoers
addUser(){
echo ""
echo -e "\033[33m*****************************************************新建用戶*******************************************************\033[0m"
#add user
while true
do
read -p "請輸入新用戶名:" name
NAME=`awk -F':' '{print $1}' /etc/passwd|grep -wx $name 2>/dev/null|wc -l`
if [ ${#name} -eq 0 ];then
echo "用戶名不能爲空,請重新輸入。"
continue
elif [ $NAME -eq 1 ];then
echo "用戶名已存在,請重新輸入。"
continue
fi
useradd $name
break
done
#create password
while true
do
read -p "爲 $name 創建一個密碼:" pass1
if [ ${#pass1} -eq 0 ];then
echo "密碼不能爲空,請重新輸入。"
continue
fi
read -p "請再次輸入密碼:" pass2
if [ "$pass1" != "$pass2" ];then
echo "兩次密碼輸入不相同,請重新輸入。"
continue
fi
echo "$pass2" |passwd --stdin $name
break
done
sleep 1
#add visudo
echo "#####add visudo#####"
\cp /etc/sudoers /etc/sudoers.$(date +%F)
SUDO=`grep -w "$name" /etc/sudoers |wc -l`
if [ $SUDO -eq 0 ];then
echo "$name ALL=(ALL) NOPASSWD: ALL" >>/etc/sudoers
echo '#tail -1 /etc/sudoers'
grep -w "$name" /etc/sudoers
sleep 1
fi
#action "創建用戶$name並將其加入visudo完成" /bin/true
echo -e "\033[33m*********************************************創建用戶$name並將其加入visudo完成******************************************\033[0m"
echo ""
sleep 5
}
# auto install jdk 1.8
function install_jdk()
{
echo ""
echo -e "\033[33m******************************************************自動部署jdk*******************************************************\033[0m"
javac -version &>/dev/null
if [ $? != 0 ] ; then
if [ -f /opt/jdk-8u141-linux-x64.tar.gz ];then
echo "*****存在這個jdk壓縮包,無需下載*****"
else
ping -c 4 vs125.hand-china.com >/dev/null 2>&1
if [ $? -eq 0 ];then
wget -c http://vs125.hand-china.com/111/jdk/jdk8_141.tgz -O /opt/jdk-8u141-linux-x64.tar.gz
else
echo "please download jdk package manual !"
exit $?
fi
fi
tar -zxvf /opt/jdk-8u141-linux-x64.tar.gz -C /usr/local/ &>/dev/null
mv /usr/local/jdk1.8.0_141 /usr/local/jdk
# add user env var
cat >> /etc/profile << EOF
export JAVA_HOME=/usr/local/jdk
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$JAVA_HOME/bin:$PATH
EOF
source /etc/profile
fi
echo -e "\033[33m***************************************************完成jdk環境部署******************************************************\033[0m"
cat > /tmp/jdk.log << EOF
jdk安裝目錄:/usr/local/jdk
jdk版本:javac 1.8.0_141
EOF
cat /tmp/jdk.log
echo -e "\e[1;31m 以上信息10秒後消失,保存在/tmp/jdk.log文件下 \e[0m"
echo -e "\033[33m************************************************************************************************************************\033[0m"
echo ""
sleep 10
}
# auto install tomcat
function install_tomcat()
{
echo ""
echo -e "\033[33m*****************************************************自動部署tomcat*****************************************************\033[0m"
if [ -f /opt/apache-tomcat-8.5.51.tar.gz ];then
echo "*****存在這個tomcat壓縮包,無需下載*****"
else
ping -c 4 downloads.apache.org >/dev/null 2>&1
if [ $? -eq 0 ];then
wget -c https://downloads.apache.org/tomcat/tomcat-8/v8.5.51/bin/apache-tomcat-8.5.51.tar.gz -O /opt/apache-tomcat-8.5.51.tar.gz
else
echo "please download tomcat package manual !"
exit $?
fi
fi
tar -zxvf /opt/apache-tomcat-8.5.51.tar.gz -C ${TOMCAT_PATH} &>/dev/null && mv ${TOMCAT_PATH}/apache-tomcat-8.5.51 ${TOMCAT_PATH}/tomcat${TOMCAT_PORT[1]} &>/dev/null
# modify tomcat/conf/context.xml
sed -i -r -e '/<\/Context>/i \ <Resource auth="Container" driverClassName="com.mysql.jdbc.Driver" name="jdbc/lcp_db" password="root" type="javax.sql.DataSource" url="jdbc:mysql://xx.xx.xx:3306/lcpdb" username="root"/>' ${TOMCAT_PATH}/tomcat${TOMCAT_PORT[1]}/conf/context.xml
# modify http_port
sed -i -r -e 's#.*shutdown="SHUTDOWN">.*#<Server port="'${TOMCAT_PORT[0]}'" shutdown="SHUTDOWN">#' ${TOMCAT_PATH}/tomcat${TOMCAT_PORT[1]}/conf/server.xml
sed -i -r -e 's#.*protocol="HTTP/1.1".*#<Connector port="'${TOMCAT_PORT[1]}'" protocol="HTTP/1.1"#' ${TOMCAT_PATH}/tomcat${TOMCAT_PORT[1]}/conf/server.xml
sed -i -r -e 's#.*protocol="org.apache.coyote.http11.Http11NioProtocol".*#<Connector port="'${TOMCAT_PORT[1]}'" protocol="org.apache.coyote.http11.Http11NioProtocol"#' ${TOMCAT_PATH}/tomcat${TOMCAT_PORT[1]}/conf/server.xml
sed -i -r -e 's#.*protocol="AJP/1.3" redirectPort="8443" />.*#<Connector port="'${TOMCAT_PORT[2]}'" protocol="AJP/1.3" redirectPort="8443" />#' ${TOMCAT_PATH}/tomcat${TOMCAT_PORT[1]}/conf/server.xml
# startup tomcat
${TOMCAT_PATH}/tomcat${TOMCAT_PORT[1]}/bin/startup.sh &>/dev/null
echo -e "\033[33m***************************************************完成tomcat環境部署***************************************************\033[0m"
cat > /tmp/tomcat.log << EOF
tomcat安裝目錄:${TOMCAT_PATH}/tomcat${TOMCAT_PORT[1]}
tomcat端口:${TOMCAT_PORT[1]}
tomcat版本:tomcat-8.5.51
EOF
cat /tmp/tomcat.log
echo -e "\e[1;31m 以上信息10秒後消失,保存在/tmp/tomcat.log文件下 \e[0m"
echo -e "\033[33m************************************************************************************************************************\033[0m"
echo ""
sleep 10
}
# auto install redis-3.2
function install_redis()
{
echo ""
echo -e "\033[33m****************************************************自動部署redis*******************************************************\033[0m"
#創建用戶
groupadd -r redis && useradd -r -g redis redis -d /home/redis -m
#下載包
if [ -f /opt/redis-3.2.1.tar.gz ];then
echo "*****存在redis壓縮包,無需下載*****"
else
ping -c 4 download.redis.io >/dev/null 2>&1
if [ $? -eq 0 ];then
wget -c http://download.redis.io/releases/redis-3.2.1.tar.gz -O /opt/redis-3.2.1.tar.gz
else
echo "please download redis package manual !"
exit $?
fi
fi
#配yum安裝gcc
rpm -qa|grep gcc-c++
if [ $? -eq 1 ];then
install_yum
yum install -y gcc* &>/dev/null
sleep 3
echo "安裝gcc成功!"
fi
#編譯安裝
tar -xvf /opt/redis-3.2.1.tar.gz -C ${REDIS_PATH} &>/dev/null
cd ${REDIS_PATH}/redis-3.2.1 &>/dev/null && make &>/dev/null && make install &>/dev/null
sleep 3
# check install result
${REDIS_PATH}/redis-3.2.1/src/redis-server -v
if [ $? -eq 0 ] ;then
echo "*****redis install successfully!*****"
else
echo "*****redis install error!*****"
exit $?
fi
#安全配置
sed -i "s/port 6379/port ${REDIS_PORT}/g" ${REDIS_PATH}/redis-3.2.1/redis.conf #sed替換變量需要把單引號改成雙引號
sed -i 's/daemonize no/daemonize yes/g' ${REDIS_PATH}/redis-3.2.1/redis.conf
sed -i 's/protected-mode yes/protected-mode no/g' ${REDIS_PATH}/redis-3.2.1/redis.conf
sed -i 's/bind 127.0.0.1/bind 0.0.0.0/g' ${REDIS_PATH}/redis-3.2.1/redis.conf
cat >> ${REDIS_PATH}/redis-3.2.1/redis.conf << EOF
requirepass ${REDIS_PWD}
rename-command FLUSHALL ""
rename-command CONFIG ""
rename-command EVAL ""
EOF
#啓動redis
${REDIS_PATH}/redis-3.2.1/src/redis-server ${REDIS_PATH}/redis-3.2.1/redis.conf
ps -ef |grep redis|grep -v grep
if [ $? -eq 0 ] ;then
echo "*****redis start success!*****"
else
exit $?
echo "*****redis start error!*****"
fi
echo -e "\033[33m***************************************************完成redis環境部署***************************************************\033[0m"
cat > /tmp/redis.log << EOF
redis安裝目錄:/usr/local/redis-3.2.1
redis版本:redis-3.2.1
redis端口:${REDIS_PORT}
redis密碼:${REDIS_PWD}
EOF
cat /tmp/redis.log
echo -e "\e[1;31m 以上信息10秒後消失,保存在/tmp/redis.log文件下 \e[0m"
echo -e "\033[33m************************************************************************************************************************\033[0m"
echo ""
sleep 10
}
# auto install el7 mysql 5.7
function install_mysql_el7()
{
echo ""
echo -e "\033[33m******************************************************自動部署mysql*****************************************************\033[0m"
#建用戶及目錄
groupadd -r mysql && useradd -r -g mysql mysql -d /home/mysql -m
mkdir -p $MYSQL_HOME/datafile
mkdir -p $MYSQL_HOME/log
chown -R mysql:mysql $MYSQL_HOME
#下載包
if [ -f /opt/mysql-community-server-5.7.27-1.el7.x86_64.rpm ] && [ -f /opt/mysql-community-client-5.7.27-1.el7.x86_64.rpm ] && [ -f /opt/mysql-community-libs-5.7.27-1.el7.x86_64.rpm ] && [ -f /opt/mysql-community-common-5.7.27-1.el7.x86_64.rpm ];then
echo "*****存在mysql安裝包,無需下載*****"
else
ping -c 4 cdn.mysql.com >/dev/null 2>&1
if [ $? -eq 0 ];then
wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-community-server-5.7.27-1.el7.x86_64.rpm -P /opt
wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-community-client-5.7.27-1.el7.x86_64.rpm -P /opt
wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-community-libs-5.7.27-1.el7.x86_64.rpm -P /opt
wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-community-common-5.7.27-1.el7.x86_64.rpm -P /opt
wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-community-libs-compat-5.7.27-1.el7.x86_64.rpm -P /opt
else
echo "please download mysql package manual !"
exit $?
fi
fi
#安裝mysql
ps -ef|grep mysql |grep -v grep
if [ $? -eq 0 ] ;then
echo "*****已存在mysql進程*****"
exit $?
else
# 卸載 mysql
rpm -qa|grep mysql|xargs -i rpm -e --nodeps {}
# uninstall mariadb-libs
rpm -qa|grep "mariadb-libs"|xargs -i rpm -e --nodeps {}
# 安裝mysql
rpm -ivh /opt/mysql-community-common-5.7.27-1.el7.x86_64.rpm
rpm -ivh /opt/mysql-community-libs-5.7.27-1.el7.x86_64.rpm
rpm -ivh /opt/mysql-community-client-5.7.27-1.el7.x86_64.rpm
rpm -ivh /opt/mysql-community-server-5.7.27-1.el7.x86_64.rpm
rpm -ivh /opt/mysql-community-libs-compat-5.7.27-1.el7.x86_64.rpm
fi
#配置my.cnf
cp /etc/my.cnf /etc/my.cnf_${DATE}bak &>/dev/null
cat << EOF > /etc/my.cnf
[mysqld]
port=${MYSQL_PORT}
datadir=${MYSQL_HOME}/datafile
log-error=${MYSQL_HOME}/log/mysqld.log
symbolic-links=0
socket=/var/lib/mysql/mysql.sock
pid-file=/var/run/mysqld/mysqld.pid
lower_case_table_names=1
character_set_server=utf8
max_connections=2000
server-id = 1
log-bin = ${MYSQL_HOME}/log/mysql-bin.log
log-bin-index =${MYSQL_HOME}/log/binlog.index
log_bin_trust_function_creators=1
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
EOF
#啓動數據庫
systemctl start mysqld.service
MYSQL_TEMP_PWD=$(grep "temporary password" ${MYSQL_HOME}/log/mysqld.log|cut -d "@" -f 2|awk '{print $2}')
mysql -hlocalhost -P${MYSQL_PORT} -uroot -p${MYSQL_TEMP_PWD} -e "set global validate_password_policy=0" --connect-expired-password
mysql -hlocalhost -P${MYSQL_PORT} -uroot -p${MYSQL_TEMP_PWD} -e "SET PASSWORD = PASSWORD('${MYSQL_PWD}')" --connect-expired-password
mysql -hlocalhost -P${MYSQL_PORT} -uroot -p${MYSQL_PWD} -e "grant all privileges on *.* to root@'%' identified by '${MYSQL_PWD}'" --connect-expired-password
echo -e "\033[33m**************************************************完成mysql數據庫部署***************************************************\033[0m"
cat > /tmp/mysql.log << EOF
mysql安裝目錄:${MYSQL_HOME}
mysql版本:Mysql-5.7.27
mysql端口:${MYSQL_PORT}
mysql密碼:${MYSQL_PWD}
EOF
cat /tmp/mysql.log
echo -e "\e[1;31m 以上信息10秒後消失,保存在/tmp/mysql.log文件下 \e[0m"
echo -e "\033[33m************************************************************************************************************************\033[0m"
echo ""
sleep 10
}
# install mysql
function install_mysql()
{
if [ ${centosVersion} == 6 ];then
install_mysql_el6
elif [ ${centosVersion} == 7 ];then
install_mysql_el7
else
echo "your select OS version is error,please retry !"
exit 1
fi
}
# auto install el6 mysql 5.7(略,留待有緣人)
function install_mysql_el6()
{
echo ""
echo -e "\033[33m******************************************************自動部署mysql*******************************************************\033[0m"
#建用戶及目錄
mkdir -p /fsl_data/datafile
mkdir -p /fsl_data/log
chown -R mysql:mysql /fsl_data
#下載包
if [ -f /opt/mysql*.rpm ];then
echo "*****存在mysql安裝包,無需下載*****"
else
ping -c 4 cdn.mysql.com >/dev/null 2>&1
if [ $? -eq 0 ];then
wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-community-server-5.7.27-1.el7.x86_64.rpm -P /opt
wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-community-client-5.7.27-1.el7.x86_64.rpm -P /opt
wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-community-libs-5.7.27-1.el7.x86_64.rpm -P /opt
wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-community-common-5.7.27-1.el7.x86_64.rpm -P /opt
else
echo "please download mysql package manual !"
exit $?
fi
fi
#安裝mysql
ps -ef|grep mysql |grep -v grep
if [ $? -eq 0 ] ;then
echo "*****已存在mysql進程*****"
exit $?
else
rpm -qa|grep mysql|xargs -i rpm -e --nodeps {}
rpm -ivh /opt/mysql-community-common-5.7.27-1.el7.x86_64.rpm
rpm -ivh /opt/mysql-community-libs-5.7.27-1.el7.x86_64.rpm
rpm -ivh /opt/mysql-community-client-5.7.27-1.el7.x86_64.rpm
rpm -ivh /opt/mysql-community-server-5.7.27-1.el7.x86_64.rpm
fi
chkconfig mysql on
service mysql start
mysql -hlocalhost -P3306 -uroot -p${MYSQL_ROOT_PWD} -e "create database ${MYSQL_DB_NAME}"
# 刪除腳本一行
sed -i "/CREATE\ DATABASE/d" ${APP_PATH}weixin_centos6/multi-srm-mobile-dev.sql
mysql -hlocalhost -P3306 -uroot -p${MYSQL_ROOT_PWD} ${MYSQL_DB_NAME} < ${APP_PATH}weixin_centos6/multi-srm-mobile-dev.sql
sed -i "s/skip/#skip/" /etc/my.cnf
service mysql restart
mysqladmin -u root -p"$(cat /root/.mysql_secret | head -n 2|tail -n 1)" password ${MYSQL_ROOT_PWD} -b
#mysql -uroot -p${MYSQL_ROOT_PWD} -e "SET PASSWORD = PASSWORD(\'${MYSQL_ROOT_PWD}\');" -b
#mysql -uroot -p${MYSQL_ROOT_PWD} -e "SET PASSWORD FOR 'root'@'localhost' = PASSWORD(${MYSQL_ROOT_PWD});" -b
}
# auto install postfix mail
function install_mail()
{
echo ""
echo -e "\033[33m****************************************************自動部署mail********************************************************\033[0m"
#軟件包:2:postfix-2.10.1-7.el7.x86_64 (base)需要:libmysqlclient.so.18(libmysqlclient_18)(64bit)
if [ -f /opt/mysql-community-libs-compat-5.7.27-1.el7.x86_64.rpm ];then
echo "*****存在libmysqlclient安裝包,無需下載*****"
else
ping -c 4 cdn.mysql.com >/dev/null 2>&1
if [ $? -eq 0 ];then
wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-community-libs-compat-5.7.27-1.el7.x86_64.rpm -P /opt
else
echo "please download libmysqlclient package manual !"
exit $?
fi
fi
#配yum安裝postfix
rpm -qa|grep postfix
#rpm -qa|grep postfix|xargs -i rpm -e --nodeps {}
if [ $? -eq 1 ];then
install_yum
yum install -y postfix* &>/dev/null
action "*****安裝postfix完成*****" /bin/true
fi
#配置
#端口文件:/etc/postfix/master.cf ==》 smtp inet n - n - - smtpd
sed -i 's/inet_interfaces = localhost/inet_interfaces = all/g' /etc/postfix/main.cf
cat >> /etc/postfix/main.cf << EOF
mynetworks = 0.0.0.0/0
relayhost = ${RELAYHOST}
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
EOF
cat >> /etc/postfix/sasl_passwd << EOF
${RELAYHOST} ${MAIL_USER}:${MAIL_PWD}
EOF
#更新配置
postmap /etc/postfix/sasl_passwd
#啓動postfix
service postfix restart
echo -e "\033[33m***************************************************完成郵件環境部署***************************************************\033[0m"
cat > /tmp/mail.log << EOF
郵件版本:`postconf mail_version`
郵箱地址/端口:${RELAYHOST}
發件人郵箱:${MAIL_USER}
發件人密碼:${MAIL_PWD}
EOF
cat /tmp/mail.log
echo -e "\e[1;31m 以上信息10秒後消失,保存在/tmp/mail.log文件下 \e[0m"
echo -e "\033[33m************************************************************************************************************************\033[0m"
echo ""
sleep 10
}
#menu2
menu2(){
while true;
do
clear
cat <<EOF
----------------------------------------
|****Please Enter Your Choice:[0-11]****|
----------------------------------------
(1) 新建一個用戶並將其加入visudo
(2) 配置YUM源鏡像
(3) 配置中文字符集
(4) 禁用SELINUX及關閉防火牆
(5) 設置時間同步
(6) 自動部署jdk
(7) 自動部署tomcat
(8) 自動部署redis
(9) 自動部署mysql
(10) 自動部署郵件
(0) 返回上一級菜單
EOF
read -p "Please enter your Choice[0-11]: " input2
case "$input2" in
0)
clear
break
;;
1)
addUser
;;
2)
install_yum
;;
3)
initI18n
;;
4)
initFirewall
;;
5)
syncSysTime
;;
6)
install_jdk
;;
7)
install_tomcat
;;
8)
install_redis
;;
9)
install_mysql
;;
10)
install_mail
;;
*) echo "----------------------------------"
echo "| Warning!!! |"
echo "| Please Enter Right Choice! |"
echo "----------------------------------"
for i in `seq -w 3 -1 1`
do
echo -ne "\b\b$i";
sleep 1;
done
clear
esac
done
}
#initTools
#menu
while true;
do
clear
echo "========================================"
echo ' Linux Optimization '
echo "========================================"
cat << EOF
|-----------System Infomation-----------
| DATE :$DATE
| HOSTNAME :$HOSTNAME
| USER :$USER
| IP :$IPADDR
| GATEWAY :$GATEWAY
| DNS :$DNS
| DISK_USED :$DISK_SDA
| CPU_AVERAGE:$cpu_uptime
----------------------------------------
|****Please Enter Your Choice:[1-3]****|
----------------------------------------
(1) 一鍵部署yum\jdk\tomcat\redis\mysql\mail
(2) 自定義部署(推薦)
(3) 退出
EOF
#choice
read -p "Please enter your choice[0-3]: " input1
case "$input1" in
1)
install_Yum
initI18n
initFirewall
syncSysTime
install_jdk
install_tomcat
install_redis
install_mysql
install_mail
;;
2)
menu2
;;
3)
clear
break
;;
*)
echo "----------------------------------"
echo "| Warning!!! |"
echo "| Please Enter Right Choice! |"
echo "----------------------------------"
for i in `seq -w 3 -1 1`
do
echo -ne "\b\b$i";
sleep 1;
done
clear
esac
done
fsl_auto_install
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.