tomcat安装脚本
#!/bin/bash
echo "此脚本用于安装tomcat中间件"
if [[ $UID -ne 0 ]];then
echo "错误:使用root 执行此脚本"
exit 1
fi
#定义安装文件路径
installpath=/data/soft/tomcat/
#开始菜单,界面输入参数
read -p "请输入tomcat安装目录名(如:/data/tomcat8-public):" tomcatpath
echo -e "tomcat部署路径:$tomcatpath\n"
read -p "请输入tomcat启动的用户(如:hanweb,需要自行创建系统账号):" username
useradd $username
echo -e "用户权限为:$username账号\n"
read -p "请输入JDK安装路径(如:/data/jdk1.8):" jdkpath
echo -e "JDK部署路径:$jdkpath\n"
read -p "请按[Enter]键开始安装redis程序" een
#清理目录及进程
rm -f /var/run/yum.pid
rm -rf /data/soft/tomcat/tempfile
rm -rf /data/cronolog
rm -rf $tomcatpath
rm -rf $jdkpath
echo "清理环境"
#1、以下为Yum 安装依赖包
echo -e "\n\n\n Yum 安装依赖包"
yum install -y mpfr cpp ppl cloog-ppl libstdc++-devel gcc gcc-c++ zlib-devel
echo -e "\n\n\n Yum 安装依赖包完成"
sleep 5
#2、以下为安装JDK
chown -R $username:$username /data/soft/tomcat/
echo -e "\n\n\n安装JDK"
chown -R $username.$username $installpath
sleep 1
cd $installpath
mkdir tempfile
tar xvf jdk*.tar.gz -C tempfile
mv tempfile/jdk* $jdkpath
echo -e "\n\n\n安装JDK完成"
sleep 5
#3、以下为安装TOMCAT中间件
echo -e "\n\n\n安装TOMCAT中间件"
sleep 5
tar zxvf apache-tomcat*.tar.gz -C tempfile
mv tempfile/apache-tomcat* $tomcatpath
echo -e "\n\n\n安装TOMCAT中间件完成"
sleep 5
#4、以下为TOMCAT中间件优化
echo -e "TOMCAT中间件优化"
#server.xml优化
sed -i 's/connectionTimeout="20000"/connectionTimeout="20000"\nURIEncoding="UTF-8"\nmaxThreads="600"\nminSpareThreads="100"\nmaxSpareThreads="500"\nacceptCount="700"\nenableLookups="false"/g' $tomcatpath/conf/server.xml
sed -i 's/<Connector port="8009" protocol="AJP\/1.3" redirectPort="8443" \/>/<!--Connector port="8009" protocol="AJP\/1.3" redirectPort="8443" \/-->/g' $tomcatpath/conf/server.xml
echo -e "\n\n\nserver.xml优化完成"
sleep 3
#安装日志分割工具cronolog
chmod 755 cronolog*.tar.gz
tar zxvf cronolog*.gz -C tempfile
cd tempfile/cronolog*
./configure -prefix=/data/cronolog
make
make install
chown $username.$username /data/cronolog
echo -e "安装日志分割工具cronolog完成"
sleep 5
chmod 755 $installpath*.sh
cp -r $tomcatpath/bin/catalina.sh $tomcatpath/bin/catalina.sh.egg1.0
cp -rf $installpath*.sh $tomcatpath/bin/
sed -i "2a JAVA_OPTS=\"-server -Xmx1g -Xms2g -XX:MetaspaceSize=512m -XX:MaxMetaspaceSize=1024m -Djava.awt.headless=true\" \n JAVA_OPTS=\"$JAVA_OPTS -verbose:gc -XX:+PrintGC -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintAdaptiveSizePolicy -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:MaxTenuringThreshold=5 -XX:SurvivorRatio=4\" \n export JAVA_HOME=$jdkpath " $tomcatpath/bin/catalina.sh
echo -e "catalina.sh参数优化完成"
sleep 5
sleep 1
chown -R $username:$username $jdkpath
chown -R $username:$username $tomcatpath
chown -R $username:$username /data/cronolog
echo -e "JDK、TOMCAT、CRONOLOG 配置$username权限完成"
sleep 1
rm -rf $tomcatpath/webapps/*
echo -e "清空webapps目录完成"
sleep 1
echo -e "\n\n\nTOMCAT中间件优化完成"
sleep 5
#tomcat中间件配置apr
echo -e "\n\n\ntomcat中间件配置apr"
cd $installpath
tar zxvf apr-1.*.tar.gz -C tempfile/
cd tempfile/apr-1.*
./configure && make && make install
echo -e "Apr安装完成"
cd $installpath
tar -xzvf apr-util*.tar.gz -C tempfile/
cd tempfile/apr-util*
./configure --with-apr=/usr/local/apr && make && make install
echo -e "Apr-util安装完成"
cd $tomcatpath/bin/
tar -zxvf tomcat-native*.tar.gz
cd tomcat-native*/native
./configure --with-apr=/usr/local/apr --with-java-home=$jdkpath && make && make install
echo -e "Tomcat-Native完装完成"
sed -i "6a JAVA_OPTS=\"$JAVA_OPTS -Djava.library.path=/usr/local/apr/lib\" \n export LD_LIBRARY_PATH=/usr/local/apr/lib " $tomcatpath/bin/catalina.sh
sed -i 's/ <Connector port="8080" protocol="HTTP\/1.1"/<Connector port="8080" protocol="org.apache.coyote.http11.Http11AprProtocol"/g' $tomcatpath/conf/server.xml
echo -e "修改server.xml 配置为APR模式完成"
echo -e "\n\n\ntomcat中间件配置aprp完成"
sleep 5
#tomcat自启动添加
echo "#$tomcatpath start" >> /etc/rc.local
echo "su - tomcat" >> /etc/rc.local
echo "$tomcatpath/bin/startup.sh" >> /etc/rc.local
exit
echo -e "\n\n\ntomcat自启动添加完成"
echo -e "\n\n\n脚本执行结束"
sftp脚本传输
#!/bin/bash
#待上传文件根目录
SRCDIR=/a/zxmhw/tar
#要上传的文件
FILES=`find ${SRCDIR} -name '*.gz'`
#上传文件的日期
targetDay=$(date "+%Y-%m-%d %H:%M:%S")
# 当前目录
CRTDIR=$(pwd)
#SFTP配置信息
#用户名
USER=ftpwy
#密码
PASSWORD="D92598DFsdf"
#FTP目录
DESDIR=/VOLTE/VOLTEUserHW
#IP
IP=130.17.130.56
#端口
PORT=22
#发送文件 (关键部分)
lftp -u ${USER},${PASSWORD} sftp://${IP}:${PORT} <<EOF
cd ${DESDIR}
put $FILES
by
EOF
mq安装脚本
#!/bin/bash
#判断使用root用户
if [[ $UID -ne 0 ]];then
echo "使用root 执行此脚本"
exit 1
fi
#预设参数
mqfile=/data/soft/mq
temp=mqtemp
mqport=61616
mqadminport=8161
#mqpath=/data/mq
#jdkpath=/data/jdk1.8
#password="1qaz0p;/"
#开始菜单,界面输入参数
read -p "请输入MQ安装目录名(如:/data/mq):" mqpath
echo -e "MQ部署路径:$mqpath\n"
read -p "请输入JDK安装目录名:(如:/data/jdk1.8):" jdkpath
echo -e "JDK部署路径:$jdkpath\n"
read -p "请输入MQ控制台密码:" password
echo -e "MQ密码设置完成\n"
read -p "请按[Enter]键开始安装MQ程序" een
rm -f /var/run/yum.pid
rm -rf $mqpath
rm -rf data/soft/redis/$temp
echo "清理环境"
#yum安装依赖包
echo -e "\n\n\n Yum 安装依赖包"
yum install -y mpfr cpp ppl cloog-ppl libstdc++-devel gcc gcc-c++ zlib-devel
echo -e "\n\n\n Yum 安装依赖包完成"
#安装MQ
chown -R root.root $mqfile
cd $mqfile
mkdir $temp
tar zxvf apache-activemq-*.tar.gz -C $temp/
mv $temp/apache-activemq-*/ $mqpath
#MQ配置文件修改
echo "MQ配置文件修改"
sed -i -r -e "/^wrapper.java.command\=/c \wrapper.java.command=$jdkpath/bin/java" $mqpath/bin/linux-x86-64/wrapper.conf
sed -i -r -e "/^\<transportConnector name\=\"openwire\"/c \<transportConnector name\=123\> " $mqpath/conf/activemq.xml
sed -i 's/<kahaDB directory="${activemq.data}\/kahadb"\/>/<kahaDB directory="${activemq.data}\/kahadb" journalMaxFileLength="100mb"\/>/g' $mqpath/conf/activemq.xml
sed -i 's/<constantPendingMessageLimitStrategy limit="1000"\/>/<constantPendingMessageLimitStrategy limit="10000"\/>/g' $mqpath/conf/activemq.xml
sed -i 's/<storeUsage limit="100 gb"\/>/<storeUsage limit="100 gb"\/>/g' $mqpath/conf/activemq.xml
sed -i -r -e "/^user\: user/c \#user\: user\, user" $mqpath/conf/jetty-realm.properties
sed -i -r -e "/^admin\: admin/c \admin\: $password, admin" $mqpath/conf/jetty-realm.properties
#添加防火墙端口8161
echo "防火墙Iptable,添加端口策略:$mqport $mqadminport"
sed -i -r -e "12i \#mq端口\n-A INPUT -p tcp -m state --state NEW -m tcp --dport $mqport -j ACCEPT\n" /etc/sysconfig/iptables
sed -i -r -e "12i \#mq后台端口\n-A INPUT -p tcp -m state --state NEW -m tcp --dport $mqadminport -j ACCEPT\n" /etc/sysconfig/iptables
systemctl restart iptables.service
echo -e "MQ部署完成\n部署路径:$mqpath\n启动命令:\ncd $mqpath/bin/linux-x86-64\n./activemq start\nmq后台密码:$password"
nginx日志切割
#!/bin/bash
# Date:2022-3-9
# Author:lizexin
# version:1.0
# Explain:Nginx log slicing script.
# 路径
Log_Path=/data/nginx/logs
# 获取昨天的日期
YESTERDAY=$(date -d "yesterday" +%Y%m%d)
# PID文件路径
Log_PID=/data/nginx/logs/nginx.pid
# 分割日志
mv ${Log_Path}/access.log ${Log_Path}/access_${YESTERDAY}.log
mv ${Log_Path}/error.log ${Log_Path}/error_${YESTERDAY}.log
# 向Nginx主进程发送USR1信号,重新打开日志文件
kill -USR1 `cat ${Log_PID}`
mysql安装脚本
#!/bin/bash
#脚本执行方式:bash yum_install_mysql.sh
#脚本仅支持5.5 5.6 5.7 8.0 这几个版本的MySQL
echo "此脚本用于yum 安装mysql"
if [[ $UID -ne 0 ]];then
echo "使用root 执行此脚本"
exit 1
fi
#if [[ $# != 1 ]];then
# echo "Usage script (5.5|5.6|5.7|8.0)"
# exit 123
#fi
#开始菜单,界面输入参数
read -p "请输入MSYQL版本号(仅支持5.5|5.6|5.7|8.0安装):" mysqlversion
echo -e "MQ安装版本:Mysql$mysqlversion\n"
read -p "请输入mqsql安装目录名(如:/data/mysql):" mysqlpath
echo -e "MQ部署路径:$mysqlpath\n"
read -p "请按[Enter]键开始安装MYSQL程序" een
echo "清理环境"
rm -f /var/run/yum.pid
systemctl stop mysqld mariadb &>/dev/null
yum erase -y `rpm -qa |grep mariadb` 2>/dev/null
yum erase -y `rpm -qa |grep mysql` 2>/dev/null
rm -rvf /etc/my.cnf /var/lib/mysql /var/log/mysql* $mysqlpath
userdel -rf mysql &>/dev/null
ping -c1 -w1 www.baidu.com &>/dev/null
if [[ $? -eq 0 ]];then
yum install -y wget yum-utils &>/dev/null
if [[ $? -ne 0 ]];then
echo "yum 配置错误"
exit 110
fi
wget -O ./mysql8.0.rpm https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm
yum install -y mysql8.0.rpm
yum clean all
yum makecache fast
else
echo "网络错误"
exit 22
fi
case $mysqlversion in
5.5)
yum-config-manager --disable mysql80-community
yum-config-manager --enable mysql55-community
yum -y install mysql-community-server
;;
5.6)
yum-config-manager --disable mysql80-community
yum-config-manager --enable mysql56-community
yum -y install mysql-community-server
;;
5.7)
yum-config-manager --disable mysql80-community
yum-config-manager --enable mysql57-community
yum install -y mysql-community-server
;;
8.0)
yum install -y mysql-community-server
;;
*)
yum repolist all |grep mysql
echo "其他版本可自行选择下载并配置"
exit 13
;;
esac
systemctl start mysqld
echo "Mysql Yum安装完成"
#将mysql数据目录转移
systemctl stop mysqld
mv /var/lib/mysql $mysqlpath
usermod -d /data/mysql mysql
echo "Mysql迁移至data目录完成"
sed -i -r -e '/^datadir\=/c \datadir=/data/mysql' /etc/my.cnf
sed -i -r -e "/^socket\=/c \socket=$mysqlpath/mysql.sock" /etc/my.cnf
sed -i -r -e '3i \\n[client]' /etc/my.cnf
sed -i -r -e "5i \socket=$mysqlpath/mysql.sock\n" /etc/my.cnf
echo -e "\n# Master 1" >> /etc/my.cnf
echo -e "server_id = 1" >> /etc/my.cnf
echo -e "default_storage_engine = innodb" >> /etc/my.cnf
echo -e "character-set-server = utf8" >> /etc/my.cnf
echo -e "sql_mode = \"STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION\"" >> /etc/my.cnf
echo -e "binlog-ignore-db = mysql" >> /etc/my.cnf
echo -e "binlog-ignore-db = information_schema" >> /etc/my.cnf
echo -e "log-bin = mysql-bin" >> /etc/my.cnf
echo -e "max_allowed_packet = 1G" >> /etc/my.cnf
echo -e "max_connections = 5000" >> /etc/my.cnf
echo -e "max_connect_errors = 1000" >> /etc/my.cnf
echo -e "open_files_limit = 65535" >> /etc/my.cnf
echo -e "table_open_cache = 256" >> /etc/my.cnf
echo -e "tmp_table_size = 1000M" >> /etc/my.cnf
echo -e "read_rnd_buffer_size = 32M" >> /etc/my.cnf
echo -e "sort_buffer_size = 32M" >> /etc/my.cnf
echo -e "join_buffer_size = 128M" >> /etc/my.cnf
systemctl start mysqld
echo "启动成功,初始密码如下(mysql5.7前版本没有初始密码)"
grep -o 'root@localhost.*' /var/log/mysqld.log
echo "my.conf配置完成"
sed -i -r -e '12i \-A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT' /etc/sysconfig/iptables
systemctl restart iptables.service
echo "iptables防火墙3306端口配置完成"
echo "MYSQL安装脚本完成"
echo "MYSQL部署路径:$mysqlpath"
echo "MYSQL初始密码如下(mysql5.7前版本没有初始密码):"
grep -o 'root@localhost.*' /var/log/mysqld.log
echo "MYSQL登录命令:mysql -uroot -p"
echo "MYSQL登录后修改密码命令:set password for 'root'@'localhost' = password('此处修改密码');"
echo "MYSQL登录后对所有IP授权登录密码:GRANT ALL PRIVILEGES ON *.* TO root@\"%\" IDENTIFIED BY \"此处填写密码\";"
apache安装脚本
#!/bin/bash
echo -e "\033[31m此脚本用于安装apache\033[0m"
echo -e "\033[31m开始检查gcc依赖......\033[0m"
if [[ $(rpm -qa|grep -c gcc) = '0' ]];then
yum -y install gcc
else
echo "gcc已存在无需安装!"
fi
echo -e "\033[31m开始检查make依赖......\033[0m"
if [[ $(rpm -qa|grep -c make) = '0' ]];then
yum -y install make
else
echo "make已存在无需安装!"
fi
echo -e "\033[31m开始检查pcre-devel依赖......\033[0m"
if [[ $(rpm -qa|grep -c pcre-devel) = '0' ]];then
yum -y install pcre-devel
else
echo "pcre-devel已存在无需安装!"
fi
echo -e "\033[31m开始检查openssl-devel依赖......\033[0m"
if [[ $(rpm -qa|grep -c openssl-devel) = '0' ]];then
yum -y install openssl-devel
else
echo "openssl-devel已存在无需安装!"
fi
echo -e "开始检查expat-devel依赖......"
if [[ $(rpm -qa|grep -c expat-devel) = '0' ]];then
yum -y install expat-devel
else
echo "expat-devel已存在无需安装!"
fi
# 安装apr
echo -e "准备解压apr......"
read -p "请输入apr所在在路径,如(/data/soft/apr):" APR_PATH
read -p "请输入apr解压路径,如(/data):" apr_path
echo -e '\033[31m开始解压apr\033[0m'
tar -zxvf "$APR_PATH"/apr-1*.tar.gz -C "$apr_path"
sleep 1
# 安装apr-util
echo -e "准备解压apr-util......"
read -p "请输入apr所在在路径,如(/data/soft/apr-util):" APRUTIL_PATH
read -p "请输入apr解压路径,如(/data):" aprutil_path
echo -e '\033[31m开始解压apr-util\033[0m'
tar -zxvf "$APRUTIL_PATH"/apr-util*.tar.gz -C "$aprutil_path"
sleep 1
# 安装pcre
echo -e "准备解压pcre......"
read -p "请输入apr所在在路径,如(/data/soft/pcre):" PCRE_PATH
read -p "请输入apr安装路径,如(/data):" pcre_path
echo -e '\033[31m开始解压pcre\033[0m'
tar -zxvf "$PCRE_PATH"/pcre*.tar.gz -C "$pcre_path"
sleep1
# 安装apache
echo -e "准备解压httpd......"
read -p "请输入apr所在在路径,如(/data/soft/apache):" APACHE_PATH
read -p "请输入apr解压路径,如(/data):" apache_path
echo -e '\033[31m开始解压apache\033[0m'
tar -zxvf "$APACHE_PATH"/httpd*.tar.gz -C "$apache_path"
sleep 1
# 将apr和apr-util源码与apache合并
echo -e "准备将apr文件与apr-util文件合并至httpd......"
cp -ar "$apr_path"/apr-1.7.0/ "$apache_path"/httpd-2.4.53/srclib/apr
cp -ar "$aprutil_path"/apr-util-1.6.1/ "$apache_path"/httpd-2.4.53/srclib/apr-util
echo -e '\033[31m合并完成!\033[0m'
# 编译apache
cd "$apache_path"/httpd-2.4.53
echo -e "准备安装http......"
./configure --prefix=/data/apache --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --with-included-apr --enable-modules=most --enable-mpms-shared=all --with-mpm=prefork
sleep 1
make
sleep 3
make install
sleep 3
# 修改配置文件开启80端口
echo -e "开启默认端口"
sed -e 's/^#ServerName www.example.com\:80/ServerName localhost\:80/g' /data/apache/conf/httpd.conf
/data/apache/bin/apachectl -t
echo $?
if [ $? -eq 0 ];then
/data/apache/bin/apachectl start
curl -I "$(ifconfig eth0 |grep "inet"|awk -F '[:" "]+' '{print $3}')"
else
echo "apache启动失败,请检查配置!"
fi
-
1 2