作者:SRE运维博客
博客地址: https://www.cnsre.cn/
文章地址:https://www.cnsre.cn/posts/211112839379/
相关话题:https://www.cnsre.cn/tags/shell/
前言
最近有几台新上的设备,需要安装jdk和tomcat。为了避免以后这种重复的劳动力,我决定写一个脚本,直接执行脚本就可以自动选择你安装的jdk以及tomcat的脚本,来避免这种问题。
脚本内容
此脚本只针对于centos7完成测试,其他版本未测试。使用时请注意。
脚本内容如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
|
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
LANG=en_US.UTF-8
RD="\033[31m" # 错误消息
GR="\033[32m" # 成功消息
YL="\033[33m" # 告警消息
BL="\033[36m" # 日志消息
PL='\033[0m'
clear
echo -e "${YL}##################################################${PL}"
echo -e "${YL}#${PL}${GR}脚本名称${PL}: 一键安装java、tomcat脚本 ${YL}#${PL}"
echo -e "${YL}#${PL}${GR}作 者${PL}: sre运维博客 ${YL}#${PL}"
echo -e "${YL}#${PL}${GR}网 址${PL}: www.cnsre.cn ${YL}#${PL}"
echo -e "${YL}#${PL}${GR}文章地址${PL}: https://cnsre.cn/posts/211112839379/ ${YL}#${PL}"
echo -e "${YL}##################################################${PL}"
sleep 0.5
echo -e "${RD}本脚本将会自动安装1.8.0_221版本jdk以及8.5.23版本tomcat,请确认是否安装?${PL}"
read -r -p "确定请按 y 任意键则退出!请选择:[y/n]" input
if [[ $input != "y" ]]; then
exit 1
else
echo -e "${GR}正在下载java tomcat安装包,请稍后${PL}"
fi
wget -q -c https://pan.cnsre.cn/d/Package/Linux/jdk/tomcat-8.5.23_jdk1.8.0_221.tar.gz
tar -zxf tomcat-8.5.23_jdk1.8.0_221.tar.gz
sleep 0.5
echo -e "${RD}是否确定安装 1.8.0_221 版本 jdk? ${PL}"
read -r -p "确定请按 y 任意键则退出!请选择:[y/n]" input
if [[ $input != "y" ]]; then
exit 1
else
echo -e "${GR}你已经选择安装1.8.0_221版本 jdk${PL}"
fi
read -r -p "请选择安装jdk的绝对路径,请不要输入最后的"/":" input
if [ ! -d $input ]; then
echo -e "${RD}你输入的路径不存在,请重新输入或者创建后再次执行脚本${PL}"
exit 1
fi
echo -e "${GR}正在安装 1.8.0_221 版本 jdk${PL}"
mv jdk1.8.0_221 $input/jdk
cat << EOF >> /etc/profile
############## JAVA ##############
export JAVA_HOME=$input/jdk
export JAVA_BIN=$JAVA_HOME/bin
export JAVA_LIB=$JAVA_HOME/lib
export CLASSPATH=.:$JAVA_LIB/tools.jar:$JAVA_LIB/dt.jar
export PATH=$JAVA_BIN:$PATH
EOF
echo -e "${GR}验JAVA home及版本${PL}"
sleep 2
chmod +x $input/jdk/bin/java
chmod +x $input/jdk/jre/bin/java
source /etc/profile
echo -e"${GR}你的java安装路径为:$JAVA_HOME ${PL}"
java -version
echo -e "${RD}是否确定安装 8.5.23 版本 tomcat ? ${PL}"
read -r -p "确定请按 y 任意键则退出!请选择:[y/n]" input
if [[ $input != "y" ]]; then
exit 1
else
echo -e "${GR}你已经选择安装 8.5.23 版本 tomcat ${PL}"
fi
read -r -p "请选择安装tomcat的绝对路径,请不要输入最后的"/":" input
if [ ! -d $input ]; then
echo -e "${RD}你输入的路径不存在,请重新输入或者创建后再次执行脚本${PL}"
exit 1
fi
echo -e "${GR}正在安装 8.5.23 版本 tomcat${PL}"
mv apache-tomcat-8.5.23 $input/tomcat
chmod +x $input/tomcat/bin/*.sh
echo -e "${GR}正在将tomcat加入系统服务${PL}"
sleep 2
touch /usr/lib/systemd/system/tomcat.service
cat << EOF >> /usr/lib/systemd/system/tomcat.service
[Unit]
Description=Tomcat
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
ExecStart=$input/tomcat/bin/startup.sh
ExecReload=$input/tomcat/bin/startup.sh
ExecStop=$input/tomcat/bin/shutdown.sh
[Install]
WantedBy=multi-user.target
EOF
sed -i '2i\export JAVA_HOME='$JAVA_HOME'' $input/tomcat/bin/catalina.sh
systemctl daemon-reload
systemctl restart tomcat.service
systemctl status tomcat.service
echo -e "${RD}请确认是否选择开机启动tomcat ? ${PL}"
read -r -p "确定请按 y 任意键则退出!请选择:[y/n]" input
if [[ $input != "y" ]]; then
systemctl disable tomcat.service
echo -e "${GR}已为你关闭tomcat开机启动 ${PL}"
else
systemctl enable tomcat.service
echo -e "${GR}已为你开启tomcat开机启动 ${PL}"
fi
echo -e "${YL}==================================================================${PL}"
echo -e "${GR}tomcat部署完成并启动${PL}"
echo -e "${YL}==================================================================${PL}"
echo -e "${GR}外网tomcat地址: http://$(curl -sS --connect-timeout 10 -m 60 cip.cc |grep IP|awk -F ':[ ]' '{print $2}'):8080${PL}"
echo -e "${GR}内网tomcat地址: http://$(ip addr | grep -E -o '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | grep -E -v "^127\.|^255\.|^0\." | head -n 1):8080${PL}"
echo -e "${GR}你可以通过以下命令来管理tomcat服务${PL}"
echo -e "${GR}启动tomcat服务:systemctl start tomcat.service${PL}"
echo -e "${RD}停止tomcat服务:systemctl stop tomcat.service${PL}"
echo -e "${YL}重启tomcat服务:systemctl restart tomcat.service${PL}"
echo -e "${GR}若无法访问tomcat,请检查防火墙/安全组是否有放行tomcat 8080 端口${PL}"
echo -e "${GR}==================================================================${PL}"
|
作者:SRE运维博客
博客地址: https://www.cnsre.cn/
文章地址:https://www.cnsre.cn/posts/211112839379/
相关话题:https://www.cnsre.cn/tags/shell/