#!/bin/bash setenforce 0 sed -i s/mirror.centos.org/vault.centos.org/g /etc/yum.repos.d/*.repo sed -i s/^#.*baseurl=http/baseurl=http/g /etc/yum.repos.d/*.repo sed -i s/^mirrorlist=http/#mirrorlist=http/g /etc/yum.repos.d/*.repo sed -i 's#SELINUX=enforcing#SELINUX=disabled#' /etc/selinux/config ### 检测操作系统位数,如果非64位操作系统,则退出 SYSBIT=`getconf LONG_BIT` if [ X"${SYSBIT}" != X"64" ]; then echo "当前系统非x64,不能执行安装!" exit 1 fi ARM=`arch` installDatabase(){ rpm -i package/mysql57-community-release-el7-9.noarch.rpm rm -f /etc/pki/rpm-gpg/RPM-GPG-KEY-mysql rpm --import package/RPM-GPG-KEY-mysql-2022 DB_DIR=${BASE_DIR}/db mkdir -p ${DB_DIR} echo "************ 删除旧数据库 >>>>>>>>>>>>>" echo "" yum -y remove mariadb-libs* echo "" echo "************ 开始安装Mysql5.7 >>>>>>>>>>>>>" echo "" yum install -y -q perl net-tools rpm -ivh package/mysql-community-common-5.7.44-1.el7.x86_64.rpm rpm -ivh package/mysql-community-libs-5.7.44-1.el7.x86_64.rpm rpm -ivh package/mysql-community-client-5.7.44-1.el7.x86_64.rpm rpm -ivh package/mysql-community-server-5.7.44-1.el7.x86_64.rpm sed -i 's#datadir=/var/lib/mysql#datadir='${DB_DIR}'#' /etc/my.cnf echo 'character_set_server=utf8' >> /etc/my.cnf echo 'sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' >> /etc/my.cnf sleep 1 echo "" echo " 启动Mysql ..." echo "" systemctl start mysqld sleep 1 sed -i 's/123456/'${DB_PASS}'/' package/init.sql echo " 初始化数据库 ..." echo "" TMP_PASS=`grep 'temporary password' /var/log/mysqld.log | awk {'print $NF'}` export MYSQL_PWD=${TMP_PASS} mysql --connect-expired-password -u root < package/init.sql sleep 1 echo " 重启数据库 ..." echo "" systemctl restart mysqld } createDatabase(){ echo " 建库建表 ..." echo "" sed -i 's/jsyx/'${DB_INS}'/g' package/jkpg.sql export MYSQL_PWD=${DB_PASS} mysql -u root < package/jkpg.sql sleep 1 } installJDK(){ echo "************[prepare to install OpenJDK]准备开始装OpenJDK >>>>>>>>>>>>>" echo "" JDK_HOME=${BASE_DIR}/jdk if [ ! -d ${JDK_HOME} ]; then tar -zxf package/jdk_x64_linux_8u392b08.tar.gz -C ${BASE_DIR} ln -s ${BASE_DIR}/jdk8u392-b08 ${BASE_DIR}/jdk echo ${JDK_HOME}" installed." if [ `grep -c JAVA_HOME=${JDK_HOME} /etc/profile` -eq '0' ]; then echo 'export JAVA_HOME='${JDK_HOME} >> /etc/profile echo 'export PATH=$PATH:$JAVA_HOME/bin' >> /etc/profile source /etc/profile fi else echo ${JDK_HOME}" found, 跳过JDK." fi JAVA_PATH=${JDK_HOME}/bin/java echo "" sleep 1 } installNginx(){ echo "************[prepare to install Nginx]准备开始装Nginx >>>>>>>>>>>>>" echo "" NGX_HOME=${BASE_DIR}/nginx if [ ! -d ${NGX_HOME} ]; then tar -zxf package/nginx.tar.gz -C ${BASE_DIR} echo ${NGX_HOME}" installed." sed -i 's#/etc/nginx/conf.d#'${BASE_DIR}'/conf#g' ${NGX_HOME}/conf/nginx.conf echo ' echo "Starting nginx"' > ${BIN_DIR}/startNginx.sh echo ${NGX_HOME}'/sbin/nginx -p '${NGX_HOME}' -c '${NGX_HOME}'/conf/nginx.conf' >> ${BIN_DIR}/startNginx.sh echo ' echo "Stopping nginx"' > ${BIN_DIR}/stopNginx.sh echo ${NGX_HOME}'/sbin/nginx -s stop -p '${NGX_HOME} >> ${BIN_DIR}/stopNginx.sh chmod +x ${BIN_DIR}/startNginx.sh chmod +x ${BIN_DIR}/stopNginx.sh else echo ${NGX_HOME}" found, 跳过Nginx." fi echo "" sleep 1 } installRedis(){ echo "************[prepare to install Redis]准备开始安装Redis >>>>>>>>>>>>>" echo "" REDIS_HOME=${BASE_DIR}/redis if [ ! -d ${REDIS_HOME} ]; then tar -zxf package/redis-5.0.14-x86_64.tar.gz -C ${BASE_DIR} echo ${REDIS_HOME}" installed." sed -i 's/daemonize no/daemonize yes/' ${REDIS_HOME}/conf/redis.conf sed -i 's/bind 127.0.0.1/bind 0.0.0.0/' ${REDIS_HOME}/conf/redis.conf if [ ! -z ${REDIS_PASS} ]; then sed -i 's/# requirepass foobared/requirepass '${REDIS_PASS}'/' ${REDIS_HOME}/conf/redis.conf fi echo "cd "${REDIS_HOME} > ${BIN_DIR}/startRedis.sh echo ${REDIS_HOME}/bin/redis-server ${REDIS_HOME}/conf/redis.conf >> ${BIN_DIR}/startRedis.sh echo 'if [ -n "$(ps -ef | grep redis-server | grep -v grep | awk '"'"'{print $2}'"'"')" ]; then' > ${BIN_DIR}/stopRedis.sh echo " rm -f ${BASE_DIR}/RUNNING.lock" >> ${BIN_DIR}/stopRedis.sh echo ' kill $(ps -ef | grep redis-server | grep -v grep | awk '"'"'{print $2}'"'"')' >> ${BIN_DIR}/stopRedis.sh echo ' echo "redis-server is stopping"' >> ${BIN_DIR}/stopRedis.sh echo 'else' >> ${BIN_DIR}/stopRedis.sh echo ' echo "redis-server is not running"' >> ${BIN_DIR}/stopRedis.sh echo 'fi' >> ${BIN_DIR}/stopRedis.sh chmod +x ${BIN_DIR}/startRedis.sh chmod +x ${BIN_DIR}/stopRedis.sh else echo ${REDIS_HOME}" found, 跳过Redis." fi echo "" sleep 1 } installTomcat(){ echo "************[prepare to install Tomcat]准备开始装Tomcat >>>>>>>>>>>>>" echo "" TOMCAT_HOME=${BASE_DIR}/tomcat9 if [ ! -d ${TOMCAT_HOME} ]; then tar -zxf package/tomcat9.tar.gz -C ${BASE_DIR} sed -i 's#export XYDL_DIR=.*#export XYDL_DIR='${BASE_DIR}'#g' ${TOMCAT_HOME}/bin/startup.sh echo ${TOMCAT_HOME}" installed." else echo ${TOMCAT_HOME}" found, 跳过Tomcat." fi echo "" sleep 1 } installNewJKPG(){ echo "************[installing 健康评估]正在安装健康评估 >>>>>>>>>>>>>" echo "" unzip -q package/static.zip -d ${JKPG_HOME}/ unzip -q package/filestore.zip -d ${JKPG_HOME}/ groupadd sftpuser useradd -d /home/sftpuser -g sftpuser sftpuser echo "sftpuser:123456" | chpasswd ln -s ${JKPG_HOME}/filestore /home/sftpuser/filestore chown -R sftpuser:sftpuser /home/sftpuser/filestore chown -R sftpuser:sftpuser ${JKPG_HOME}/filestore cp package/jkpg.conf ${BASE_DIR}/conf sed -i 's#/home/xydl#'${BASE_DIR}'#g' ${BASE_DIR}/conf/jkpg.conf cp package/application.properties ${JKPG_HOME}/ cp package/jdbc.properties ${JKPG_HOME}/ cp package/redis.properties ${JKPG_HOME}/ sed -i 's#jsyx#'${DB_INS}'#g' ${JKPG_HOME}/application.properties sed -i 's#root#'${DB_USER}'#g' ${JKPG_HOME}/application.properties sed -i 's#123456#'${DB_PASS}'#g' ${JKPG_HOME}/application.properties sed -i 's#jsyx#'${DB_INS}'#g' ${JKPG_HOME}/jdbc.properties sed -i 's#root#'${DB_USER}'#g' ${JKPG_HOME}/jdbc.properties sed -i 's#123456#'${DB_PASS}'#g' ${JKPG_HOME}/jdbc.properties if [ ! -z ${REDIS_PASS} ]; then sed -i 's#redis.password.*#redis.password='${REDIS_PASS}'#g' ${JKPG_HOME}/redis.properties fi #unzip -q package/busi-app-control.war -d ${TOMCAT_HOME}/webapps/busi-app-control cp package/busi-app-control.war ${TOMCAT_HOME}/webapps/ cp package/busi-back-control.war ${TOMCAT_HOME}/webapps/ cp package/busi-back-serviceImpl.war ${TOMCAT_HOME}/webapps/ cp package/busi-back-ws.war ${TOMCAT_HOME}/webapps/ cp package/frame-base-control.war ${TOMCAT_HOME}/webapps/ cp package/frame-base-serviceImpl.war ${TOMCAT_HOME}/webapps/ echo "" sleep 1 } installZookeeper(){ echo "************[installing Zookeeper]正在安装Zookeeper >>>>>>>>>>>>>" echo "" ZOO_HOME=${BASE_DIR}/zookeeper-3.4.14 if [ ! -d ${ZOO_HOME} ]; then tar -zxf package/zookeeper-3.4.14.tar.gz -C ${BASE_DIR} echo ${ZOO_HOME}" installed." mkdir ${ZOO_HOME}/data mkdir ${ZOO_HOME}/logs mv ${ZOO_HOME}/conf/zoo_sample.cfg ${ZOO_HOME}/conf/zoo.cfg sed -i '/ZOOBINDIR=/a ZOO_LOG_DIR='${ZOO_HOME} ${ZOO_HOME}/bin/zkServer.sh sed -i 's#dataDir=.*#dataDir='${ZOO_HOME}'/data#' ${ZOO_HOME}/conf/zoo.cfg sed -i '/dataDir=/a dataLogDir='${ZOO_HOME}'/logs' ${ZOO_HOME}/conf/zoo.cfg else echo ${ZOO_HOME}" found, 跳过Zookeeper." fi echo "" sleep 1 } #################### 加入开机启动 ################################################ setAutoStartTomcat(){ if [ `grep -c ${BASE_DIR}/tomcat9/bin/startup.sh /etc/rc.d/rc.local` -eq '0' ]; then echo '#Tomcat' >> /etc/rc.d/rc.local echo ${BASE_DIR}/tomcat9/bin/startup.sh >> /etc/rc.d/rc.local echo 'Tomcat已加入开机启动.' echo '' fi } setAutoStartRedis(){ if [ `grep -c ${BIN_DIR}/startRedis.sh /etc/rc.d/rc.local` -eq '0' ]; then echo '#Redis' >> /etc/rc.d/rc.local echo ${BIN_DIR}/startRedis.sh >> /etc/rc.d/rc.local echo "Redis已加入开机启动." echo "" fi } setAutoStartNginx(){ if [ `grep -c ${BIN_DIR}/startNginx.sh /etc/rc.d/rc.local` -eq '0' ]; then echo '#Nginx' >> /etc/rc.d/rc.local echo ${BIN_DIR}/startNginx.sh >> /etc/rc.d/rc.local echo "Nginx已加入开机启动." echo "" fi } setAutoStartZookeeper(){ if [ `grep -c ${BASE_DIR}'/zookeeper-3.4.14/bin/zkServer.sh start' /etc/rc.d/rc.local` -eq '0' ]; then echo '#Zookeeper' >> /etc/rc.d/rc.local echo export JAVA_HOME=${JAVA_HOME} >> /etc/rc.d/rc.local echo ${BASE_DIR}/zookeeper-3.4.14/bin/zkServer.sh start >> /etc/rc.d/rc.local echo "Zookeeper已加入开机启动." echo "" fi } updateFirewall(){ echo "更新防火墙规则." echo "" firewall-cmd --permanent --zone=public --add-port=80/tcp firewall-cmd --permanent --zone=public --add-port=443/tcp firewall-cmd --permanent --zone=public --add-port=3306/tcp firewall-cmd --permanent --zone=public --add-port=102/tcp firewall-cmd --reload } sed -i 's/\r//g' setup.ini source setup.ini BASE_DIR=${BASE_DIR%*/} BIN_DIR=${BASE_DIR}/bin JKPG_HOME=${BASE_DIR}/jkpg ### 创建默认的目录 mkdir -p ${BIN_DIR} mkdir -p ${JKPG_HOME} mkdir -p ${BASE_DIR}/conf if [ ! -e "/etc/rc.d/rc.local" ]; then cp package/rc.local /etc/rc.d/ fi chmod +x /etc/rc.d/rc.local if [ `grep -c 'Install' /lib/systemd/system/rc-local.service` -eq '0' ]; then echo '' >> /lib/systemd/system/rc-local.service echo '[Install]' >> /lib/systemd/system/rc-local.service echo 'WantedBy=multi-user.target' >> /lib/systemd/system/rc-local.service systemctl daemon-reload fi if [ $MYSQL_INS == 1 ]; then installDatabase fi if [ $DB_CREATE == 1 ]; then createDatabase fi if [ $JDK_INS == 1 ]; then installJDK fi if [ $REDIS_INS == 1 ]; then installRedis setAutoStartRedis fi if [ $ZOO_INS == 1 ]; then installZookeeper setAutoStartZookeeper fi if [ $TOMCAT_INS == 1 ]; then installTomcat setAutoStartTomcat fi if [ $JKPG_INS == 1 ]; then installNewJKPG fi if [ $NGINX_INS == 1 ]; then installNginx setAutoStartNginx fi updateFirewall echo "************[install finished.]安装完成. >>>>>>>>>>>>>" echo "" sleep 1 echo "tips: 记得运行 source /etc/profile 使配置生效,之后可以使用${BIN_DIR}目录下的下列脚本" cd ${BIN_DIR} ls echo ""