⭐一键SHELL脚本⭐

SHELL脚本合集

0. 安装任意Mysql版本以及适配linux多系统的脚本

步骤

  1. 将脚本保存为一个文件,比如 mysql_install.sh

  2. 给脚本添加可执行权限:

    1
    chmod +x mysql_install.sh
  3. 运行脚本,使用以下格式:

    1
    ./mysql_install.sh install <version>

    其中 <version> 是你想安装的MySQL版本。

  4. 示例:

    例如,要安装MySQL 5.7,你可以运行:

    1
    ./mysql_install.sh install 5.7

    要安装MySQL 8.0,运行:

    1
    ./mysql_install.sh install 8.0

    要安装MariaDB 10.4,运行:

    1
    ./mysql_install.sh install mariadb_10.4

脚本代码

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
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
# 创建必要的文件夹
mkdir -p /www/server/panel/install
mkdir -p /www/server/mysql
mkdir -p /www/server/data
mkdir -p /root
mkdir -p /www/backup

#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH

public_file=/www/server/panel/install/public.sh
. $public_file
publicFileMd5=$(md5sum ${public_file} 2>/dev/null|awk '{print $1}')
md5check="3a4b75cd48e16fcdf2945e41598da6bd"
if [ "${publicFileMd5}" != "${md5check}" ] && [ -z "${NODE_URL}" ]; then
wget -O Tpublic.sh https://download.bt.cn/install/public.sh -T 20;
publicFileMd5=$(md5sum Tpublic.sh 2>/dev/null|awk '{print $1}')
if [ "${publicFileMd5}" == "${md5check}" ]; then
\cp -rpa Tpublic.sh $public_file
fi
rm -f Tpublic.sh
. $public_file
fi

download_Url=$NODE_URL

run_path="/root"
Is_64bit=$(getconf LONG_BIT)
Setup_Path="/www/server/mysql"
Data_Path="/www/server/data"
sysType=$(uname -a|grep x86_64)


actionType=$1
version=$2

if [ "${version}" == "8.4" ];then
wget -O mysql.sh ${download_Url}/install/4/mysql_new.sh && sh mysql.sh $actionType $version
exit
fi

Get_Sys_Version(){
if [ -f "/etc/os-release" ];then
. /etc/os-release
OS_V=${VERSION_ID%%.*}
if [ "${ID}" == "opencloudos" ] && [[ "${OS_V}" =~ ^(9)$ ]];then
OS_NAME=${ID}
elif { [ "${ID}" == "almalinux" ] || [ "${ID}" == "centos" ] || [ "${ID}" == "rocky" ]; } && [[ "${OS_V}" =~ ^(9)$ ]]; then
OS_NAME="9"
elif [ "${ID}" == "neokylin" ] && [ "${OS_V}" == "V7" ];then
el="7"
return
fi
fi

X86_CHECK=$(uname -m|grep x86_64)

if [ "${OS_NAME}" ] && [ "${X86_CHECK}" ];then
wget -O mysql.sh ${download_Url}/install/4/mysql_new.sh && sh mysql.sh $actionType $version
exit
fi
}
Get_Sys_Version

if [ -f "/etc/redhat-release" ] && [ $(cat /etc/os-release|grep PLATFORM_ID|grep -oE "el8|an8") ];then
el="8"
fi

CENTOS_OS=$(cat /etc/redhat-release|grep -oEi centos)
if [ "${CENTOS_OS}" ] && [ -z "${el}" ];then
el=$(cat /etc/redhat-release|grep -oE "([6-8]\.)+[0-9]+"|cut -f1 -d ".")
fi

ALIYUN_OS=$(cat /etc/redhat-release|grep -oEi aliyun)
if [ "${ALIYUN_OS}" ];then
el=$(uname -r|grep -oE "al7|al8"|grep -oE "[7-8]")
fi
ALIBABAA_OS=$(cat /etc/redhat-release |grep Alibaba|grep " 3")
if [ "${ALIBABAA_OS}" ];then
el=8
fi

if [ "${el}" == "6" ]; then
wget -O mysql.sh $download_Url/install/1/old/mysql.sh -T 20
bash mysql.sh $1 $2
exit;
fi

# HUAWEI_CLOUD_EULER=$(cat /etc/os-release |grep '"Huawei Cloud EulerOS 1')
# EULER_OS=$(cat /etc/os-release |grep "EulerOS 2.0 ")
# [ "${HUAWEI_CLOUD_EULER}" ] && el="8"
# [ "${EULER_OS}" ] && el="7"

if [ "${el}" == "8" ]; then
if [ ! -f "/usr/bin/python" ];then
yum install python3 -y
ln -sf /usr/bin/python3 /usr/bin/python
fi
fi

if [ -z "${el}" ] || [ "${Is_64bit}" == "32" ] || [ -z "${sysType}" ] || [ "$2" == "mariadb_10.6" ] || [ "$2" == "mariadb_10.7" ] || [ "$2" == "mariadb_11.3" ] || [ "$2" == "mariadb_10.11" ] ;then
wget -O mysql.sh $download_Url/install/0/mysql.sh -T 20
bash mysql.sh $1 $2
exit;
fi

Install_mysqldb()
{
wget -O MySQL-python-1.2.5.zip ${download_Url}/install/src/MySQL-python-1.2.5.zip -T 10
unzip MySQL-python-1.2.5.zip
rm -f MySQL-python-1.2.5.zip
cd MySQL-python-1.2.5
python setup.py install
cd ..
rm -rf MySQL-python-1.2.5
}

Install_mysqldb3()
{
wget -O mysqlclient-1.3.12.zip ${download_Url}/install/src/mysqlclient-1.3.12.zip -T 10
unzip mysqlclient-1.3.12.zip
rm -f mysqlclient-1.3.12.zip
cd mysqlclient-1.3.12
python setup.py install
cd ..
rm -rf mysqlclient-1.3.12
}

Install_Mysql(){
if [ -z "${sqlVersion}" ];then
wget -O mysql.sh $download_Url/install/0/mysql.sh -T 20
bash mysql.sh $actionType $version
exit;
fi
Uninstall_Mysql

if ! id mysql &> /dev/null;then
groupadd mysql
useradd -s /sbin/nologin -M -g mysql mysql
fi

echo "正在下载mysql极速安装包......"
wget -O bt-${sqlVersion}.rpm ${download_Url}/rpm/centos${el}/${Is_64bit}/bt-${sqlVersion}.rpm
echo "正在安装mysql......."
rpm -ivh bt-${sqlVersion}.rpm --force --nodeps
rm -f bt-${sqlVersion}.rpm
if [ ! -f "/www/server/mysql/bin/mysql" ];then
echo '========================================================'
GetSysInfo
echo -e "ERROR: mysql-rpm-$version installation failed.";
echo -e "安装失败,请截图以上报错信息发帖至论坛www.bt.cn/bbs求助"
exit 1
fi
}

Install_Mysql_PyDb(){
PYMYSQL_C=$(btpip list 2> /dev/null |grep PyMySQL)
if [ "$PYMYSQL_C" ]; then
return
fi
pyVersion=$(python -V 2>&1|awk '{printf ("%d",$2)}')
if [ "${pyVersion}" == "2" ];then
if [ -f "${Setup_Path}/mysqlDb3.pl" ]; then
pip uninstall mysqlclient -y
Install_mysqldb3
/etc/init.d/bt reload
else
pip uninstall mysql-python -y
pipUrl=`cat /root/.pip/pip.conf|awk 'NR==2 {print $3}'`
if [ "${pipUrl}" != "" ]; then
checkPip=`curl --connect-timeout 5 --head -s -o /dev/null -w %{http_code} ${pipUrl}`
fi
if [ "${checkPip}" = "200" ]; then
pip install mysql-python
else
Install_mysqldb
/etc/init.d/bt reload
fi
fi
pip uninstall pymysql -y
pip install pymysql
else
pip uninstall pymysql -y
pip install pymysql
fi
}
Uninstall_Mysql(){
yum remove mysql-devel -y > /dev/null 2>&1
[ -f "/etc/init.d/mysqld" ] && /etc/init.d/mysqld stop
mysqlVersion=`rpm -qa |grep bt-mysql-`
mariadbVersion=`rpm -qa |grep bt-mariadb-`
[ "${mysqlVersion}" ] && rpm -e $mysqlVersion --nodeps
[ "${mariadbVersion}" ] && rpm -e $mariadbVersion --nodeps
[ -f "${Setup_Path}/rpm.pl" ] && yum remove $(cat ${Setup_Path}/rpm.pl) -y
if [ -f "${Setup_Path}/bin/mysql" ] || [ -f "/etc/init.d/mysqld" ]; then
/etc/init.d/mysqld stop > /dev/null 2>&1
chkconfig --del mysqld
rm -rf /etc/init.d/mysqld
rm -rf ${Setup_Path}
mkdir -p /www/backup
mv -f $Data_Path /www/backup/oldData
rm -rf $Data_Path
rm -f /usr/bin/mysql*
rm -f /usr/lib/libmysql*
rm -f /usr/lib64/libmysql*
fi

}

actionType=$1
version=$2

if [ "${actionType}" == 'install' ] || [ "${actionType}" == "update" ];then
MYSQL_RUN=$(ps -ef|grep mysql|grep -v grep)
if [ "${MYSQL_RUN}" ] && [ -f "/www/server/mysql/bin/mysql" ];then
echo "当前已有数据库正在运行 停止安装!"
exit 1
fi
if [ -z "${version}" ]; then
exit
fi
mysqlpwd=`cat /dev/urandom | head -n 16 | md5sum | head -c 16`
case "$version" in
'5.1')
sqlVersion="mysql51"
;;
'5.5')
sqlVersion="mysql55"
;;
'5.6')
sqlVersion="mysql56"
;;
'5.7')
sqlVersion="mysql57"
;;
'8.0')
sqlVersion="mysql80"
;;
'alisql')
sqlVersion="AliSQL"
;;
'mariadb_10.0')
sqlVersion="mariadb100"
;;
'mariadb_10.1')
sqlVersion="mariadb101"
;;
'mariadb_10.2')
sqlVersion="mariadb102"
;;
'mariadb_10.3')
sqlVersion="mariadb103"
;;
'mariadb_10.4')
sqlVersion="mariadb104"
;;
'mariadb_10.5')
sqlVersion="mariadb105"
;;
esac
Install_Mysql
Install_Mysql_PyDb
mysqlpwd=`cat /dev/urandom | head -n 16 | md5sum | head -c 16`
if [ -f '/www/server/panel/tools.py' ] && [ "btpython" ];then
echo "正在初始化Mysql root密码...."
set_r=$(btpython /www/server/panel/tools.py root $mysqlpwd > /dev/null 2>&1)
echo "初始化完成!"
echo "root密码:${mysqlpwd}"
echo "============================="
echo "mysql-$version已经完成安装!"
fi
elif [ "$actionType" == 'uninstall' ];then
Uninstall_Mysql del
fi





1.Mysql5.7一键安装脚本【GLIBC版本安装】

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
#!/bin/bash

# 下载MySQL压缩包
wget -O mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz http://8.130.91.207:5244/d/airpan/mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz?sign=RXr-lJdfqW0rQVviNiQrWHF7d0MN1-NjQ7MEfnZQHY8=:0

# 重命名下载的文件
mv mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz mysql-5.7.31.tar.gz

# 检查libaio是否安装,如果未安装则安装它
if ! rpm -q libaio &> /dev/null; then
yum install libaio -y
fi

# 解压MySQL压缩包
tar -xf mysql-5.7.31.tar.gz

# 移动MySQL目录
mv mysql-5.7.31-linux-glibc2.12-x86_64 /usr/local/mysql

# 创建MySQL用户
useradd -r -s /sbin/nologin mysql

# 删除旧的my.cnf文件
rm -rf /etc/my.cnf

# 切换到MySQL安装目录
cd /usr/local/mysql

# 创建mysql-files目录并设置权限
mkdir mysql-files
chown mysql:mysql mysql-files
chmod 750 mysql-files

# 初始化MySQL数据库
bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql &> /root/password.txt

# 设置SSL密钥
bin/mysqld_ssl_rsa_setup --datadir=/usr/local/mysql/data

# 复制mysql.server脚本到/etc/init.d目录
cp support-files/mysql.server /etc/init.d/mysqld

# 启动MySQL服务
service mysqld start


# 将MySQL的bin目录添加到PATH环境变量中
echo 'export PATH=$PATH:/usr/local/mysql/bin' >> /etc/profile
source /etc/profile

# 修改root密码为'root'
TEMP_PASS=$(grep 'temporary password' /root/password.txt | awk '{print $NF}')

# 创建一个临时的MySQL配置文件
echo "[client]
user=root
password=$TEMP_PASS" > /root/.my.cnf

# 使用临时配置文件修改密码
mysql --defaults-file=/root/.my.cnf --connect-expired-password -e "ALTER USER 'root'@'localhost' IDENTIFIED BY 'root'; FLUSH PRIVILEGES;"

# 删除临时配置文件
rm /root/.my.cnf

# 验证新密码是否生效
if mysql -uroot -proot -e "SELECT 'Password changed successfully'" &> /dev/null; then
echo "MySQL root password has been successfully set to 'root'"
else
echo "Failed to change MySQL root password"
fi

2.YUM一键换源【腾讯源】

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
#!/bin/bash

# 定义颜色变量
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[0;33m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color

yum install wget -y
# 将CentOS-Base.repo备份
printf "${YELLOW}正在备份CentOS-Base.repo...${NC}\n"
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
if [ $? -eq 0 ]; then
printf "${GREEN}备份成功!${NC}\n"
else
printf "${RED}备份失败!${NC}\n"
exit 1
fi

# 下载新的CentOS-Base.repo
printf "${YELLOW}正在下载新的CentOS-Base.repo...${NC}\n"
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.cloud.tencent.com/repo/centos7_base.repo
if [ $? -eq 0 ]; then
printf "${GREEN}下载成功!${NC}\n"
else
printf "${RED}下载失败!${NC}\n"
exit 1
fi

# 清理并生成新的缓存
printf "${YELLOW}正在清理并生成新的缓存...${NC}\n"
yum clean all
yum makecache
if [ $? -eq 0 ]; then
printf "${GREEN}操作成功!${NC}\n"
else
printf "${RED}操作失败!${NC}\n"
exit 1
fi

printf "${BLUE}所有操作已完成!${NC}\n"

3.一键关闭防火墙等操作

1
2
3
4
5
6
7
8
setenforce 0 >/dev/null 2>&1
iptables -F >/dev/null 2>&1
systemctl stop firewalld >/dev/null 2>&1
systemctl disable firewalld >/dev/null 2>&1
systemctl stop NetworkManager >/dev/null 2>&1
systemctl disable NetworkManager >/dev/null 2>&1

echo -e "\033[32m防火墙和网络管理器已关闭\033[0m"

4.Nacos一键安装【基于Jdk1.8;Nacos-1.4.1】

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
#!/bin/bash

# 设置字体颜色
red='\033[0;31m'
green='\033[0;32m'
yellow='\033[0;33m'
blue='\033[0;34m'
magenta='\033[0;35m'
cyan='\033[0;36m'
reset='\033[0m'

echo -e "${green}开始安装 Nacos...${reset}"

# 检查命令是否已安装,如果未安装则自动安装
function check_command() {
local command=$1
if ! command -v "$command" &> /dev/null; then
echo -e "${magenta}正在安装 $command...${reset}"
if [[ -n $(command -v apt) ]]; then
sudo apt-get install -y "$command"
elif [[ -n $(command -v yum) ]]; then
sudo yum install -y "$command"
else
echo -e "${red}无法自动安装 $command,请手动安装后重试。${reset}"
exit 1
fi
fi
}

echo -e "${green}开始安装 Nacos...${reset}"

# 下载 JDK 安装包
jdk_file="/opt/jdk-8u144-linux-x64.tar.gz"
if [ ! -f "$jdk_file" ]; then
echo -e "\033[33m正在下载 JDK 安装包...\033[0m"
wget http://8.130.91.207:5244/d/airpan/jdk-8u144-linux-x64.tar.gz?sign=epCKXmO0scshRE_uv5cxZ0gCypxta9KALFRU0yqcL34=:0 -O $jdk_file
echo -e "\033[32m下载完成\033[0m"
else
echo -e "\033[32m检测到 JDK 安装包已存在\033[0m"
fi

echo -e "\033[33m正在安装 JDK...\033[0m"
tar -zxf $jdk_file -C /usr/local/ >/dev/null 2>&1
ln -sf /usr/local/jdk1.8.0_144 /usr/local/jdk

echo -e "\033[33m正在配置环境变量...\033[0m"
touch /opt/temp.txt
echo 'JAVA_HOME=/usr/local/jdk' >>/opt/temp.txt
echo 'PATH=$JAVA_HOME/bin:$PATH' >>/opt/temp.txt
echo 'CLASSPATH=$JAVA_HOME/jre/lib/ext:$JAVA_HOME/lib/tools.jar' >>/opt/temp.txt
echo 'export PATH JAVA_HOME CLASSPATH' >>/opt/temp.txt
sed -i -e '$r /opt/temp.txt' /etc/profile
rm -f /opt/temp.txt
source /etc/profile

echo -e "\033[32m JDK 安装完成\033[0m"

setenforce 0 >/dev/null 2>&1
iptables -F >/dev/null 2>&1
systemctl stop firewalld >/dev/null 2>&1
systemctl disable firewalld >/dev/null 2>&1
systemctl stop NetworkManager >/dev/null 2>&1
systemctl disable NetworkManager >/dev/null 2>&1

echo -e "\033[32m防火墙和网络管理器已关闭\033[0m"


# 2. 下载并解压 Nacos
echo -e "${yellow}2. 下载并解压 Nacos${reset}"
nacos_url="https://dlink.host/1drv/aHR0cHM6Ly8xZHJ2Lm1zL3UvcyFBaVlDNncwZHotYlJkM1pFbnRkaXFiRERFMEE_ZT1DSVdCTjI..tar.gz"
nacos_file="nacos-server-1.4.1.tar.gz"
nacos_dir="/usr/local/src"

if [ ! -f "${nacos_dir}/${nacos_file}" ]; then
wget "${nacos_url}" -O "${nacos_dir}/${nacos_file}"
fi

tar -xzvf "${nacos_dir}/${nacos_file}" -C "${nacos_dir}"
rm "${nacos_dir}/${nacos_file}"

echo -e "${green}Nacos 下载并解压完成${reset}"

# 3. 配置端口 (如果需要)
echo -e "${yellow}3. 配置端口 (如果需要)${reset}"
read -p "是否需要修改 Nacos 默认端口 8848? (y/n) " change_port
if [ "$change_port" == "y" ]; then
read -p "请输入新的端口号: " new_port
nacos_conf_dir="${nacos_dir}/nacos/conf"
sed -i "s/server.port=8848/server.port=${new_port}/g" "${nacos_conf_dir}/application.properties"
echo -e "${green}Nacos 端口已修改为 ${new_port}${reset}"
else
echo -e "${cyan}使用默认端口 8848${reset}"
fi

# 4. 启动 Nacos
echo -e "${yellow}4. 启动 Nacos${reset}"
nacos_bin_dir="${nacos_dir}/nacos/bin"
sh "${nacos_bin_dir}/startup.sh" -m standalone

echo -e "${green}Nacos 已成功启动!${reset}"

5.一键部署GitLab

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
#!/bin/bash

# 定义颜色
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[0;33m'
NC='\033[0m' # No Color

# 获取本机 IP 地址
IP_ADDRESS=$(hostname -I | awk '{print $1}')

echo -e "${YELLOW}开始安装 GitLab...${NC}"
yum install wget -y
# 下载 GitLab
echo -e "${GREEN}正在下载 GitLab...${NC}"
wget -O gitlab-ce-11.8.2-ce.0.el7.x86_64.rpm https://dlink.host/1drv/aHR0cHM6Ly8xZHJ2Lm1zL3UvcyFBaVlDNncwZHotYlJlVGJLOFM2N1lRckVoOHM_ZT1TaXBWZGU.rpm

# 安装 GitLab
echo -e "${GREEN}正在安装 GitLab...${NC}"
rpm -ivh gitlab-ce-11.8.2-ce.0.el7.x86_64.rpm

# 配置 GitLab
echo -e "${GREEN}正在配置 GitLab...${NC}"
sed -i "s|^external_url .*|external_url 'http://$IP_ADDRESS'|" /etc/gitlab/gitlab.rb

# 初始化 GitLab
echo -e "${YELLOW}正在初始化 GitLab,这可能需要几分钟...${NC}"
gitlab-ctl reconfigure

# 检查 GitLab 状态
echo -e "${GREEN}正在检查 GitLab 状态...${NC}"
gitlab-ctl status

echo -e "${GREEN}GitLab 安装和配置完成!${NC}"
echo -e "${YELLOW}请使用浏览器访问 http://$IP_ADDRESS 来完成最后的设置。${NC}"

6.一键部署jenkins

1
2
3
4
5
6
7
8
9
10
11
12
13
#创建jenkins目录
mkdir /opt/jenkins
cd /opt/jenkins
#下载jenkins.war文件
wget -O jenkins.war https://dlink.host/1drv/aHR0cHM6Ly8xZHJ2Lm1zL3UvcyFBaVlDNncwZHotYlJlc3preXI4cG5FSVZ6VlU_ZT1pZ3E3N3Y.war #提权
chmod +x /opt/jenkins/jenkins.war
#下载字体库
yum install dejavu-sans-fonts -y
yum install fontconfig -y
fc-cache --force
#原神启动
java -jar /opt/jenkins/jenkins.war --httpPort=9090

7.一键部署JDK17

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
#!/bin/bash
# -------------------------------------------------
# Script Name: java.sh
# Author: Flaw
# -------------------------------------------------
# 欢迎语
echo -e "\033[36m
███╗ ██╗ ██████╗ ██╗ ██╗ ██████╗ ███╗ ███╗███████╗ ██╗ ██╗██╗ ██╗███████╗
████╗ ██║██╔═══██╗ ██║ ██║██╔═══██╗████╗ ████║██╔════╝ ██║ ██║██║ ██╔╝██╔════╝
██╔██╗ ██║██║ ██║ ███████║██║ ██║██╔████╔██║█████╗ ██║ ██║█████╔╝ █████╗
██║╚██╗██║██║ ██║ ██╔══██║██║ ██║██║╚██╔╝██║██╔══╝ ██║ ██║██╔═██╗ ██╔══╝
██║ ╚████║╚██████╔╝ ██║ ██║╚██████╔╝██║ ╚═╝ ██║███████╗ ███████╗██║██║ ██╗███████╗
╚═╝ ╚═══╝ ╚═════╝ ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝╚══════╝ ╚══════╝╚═╝╚═╝ ╚═╝╚══════╝

██╗██████╗ ███████╗ ██████╗ ██████╗ ██╗
███║╚════██╗╚════██║ ██╔═████╗ ██╔═████╗ ███║
╚██║ █████╔╝ ██╔╝ ██║██╔██║ ██║██╔██║ ╚██║
██║██╔═══╝ ██╔╝ ████╔╝██║ ████╔╝██║ ██║
██║███████╗ ██║ ██╗╚██████╔╝██╗╚██████╔╝██╗ ██║
╚═╝╚══════╝ ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝

BY: \033[32mFlaw\033[0m
"

# 检查用户是否为root
if [ "$(id -u)" != "0" ]; then
echo -e "\033[31m脚本运行中需要root权限,请提权后重试\033[0m" 1>&2
exit 1
fi

clear

# 检查是否已安装必要的命令
required_commands=("wget" "rpm" "tar" "ln" "sed" "iptables" "systemctl")
for cmd in "${required_commands[@]}"; do
if ! command -v "$cmd" >/dev/null 2>&1; then
echo -e "\033[33m检测到缺少 $cmd 命令,正在安装...\033[0m"
yum install -y "$cmd"
fi
done

# 检查本地是否已安装 Java 环境
installed_java=$(rpm -qa | grep -E '^java-|^jdk-')
if [ -n "$installed_java" ]; then
echo -e "\033[33m检测到本地已安装 Java 环境,正在卸载...\033[0m"
rpm -e --nodeps $installed_java
echo -e "\033[32m卸载完成\033[0m"
else
echo -e "\033[32m本地未安装 Java 环境\033[0m"
fi

# 下载 JDK 安装包
jdk_file="/opt/jdk-17.0.10_linux-x64_bin.tar.gz"
if [ ! -f "$jdk_file" ]; then
echo -e "\033[33m正在下载 JDK 安装包...\033[0m"
wget https://dlink.host/1drv/aHR0cHM6Ly8xZHJ2Lm1zL3UvcyFBaVlDNncwZHotYlJmT0dMZ3ZVLUY0WGlINDA_ZT1PbEc3VEI.tar.gz -O $jdk_file
echo -e "\033[32m下载完成\033[0m"
else
echo -e "\033[32m检测到 JDK 安装包已存在\033[0m"
fi

echo -e "\033[33m正在安装 JDK...\033[0m"
tar -zxf $jdk_file -C /usr/local/ >/dev/null 2>&1
ln -sf /usr/local/jdk-17.0.10 /usr/local/jdk

echo -e "\033[33m正在配置环境变量...\033[0m"
touch /opt/temp.txt
echo 'JAVA_HOME=/usr/local/jdk' >>/opt/temp.txt
echo 'PATH=$JAVA_HOME/bin:$PATH' >>/opt/temp.txt
echo 'CLASSPATH=$JAVA_HOME/jre/lib/ext:$JAVA_HOME/lib/tools.jar' >>/opt/temp.txt
echo 'export PATH JAVA_HOME CLASSPATH' >>/opt/temp.txt
sed -i -e '$r /opt/temp.txt' /etc/profile
rm -f /opt/temp.txt
source /etc/profile

echo -e "\033[32m JDK 安装完成\033[0m"

setenforce 0 >/dev/null 2>&1
iptables -F >/dev/null 2>&1
systemctl stop firewalld >/dev/null 2>&1
systemctl disable firewalld >/dev/null 2>&1
systemctl stop NetworkManager >/dev/null 2>&1
systemctl disable NetworkManager >/dev/null 2>&1

echo -e "\033[32m防火墙和网络管理器已关闭\033[0m"

8.一键部署安装Docker

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
#!/bin/bash

# 检查并清理现有的Docker环境
echo -e "\033[34m检查并清理现有的Docker环境...\033[0m"
if command -v docker &>/dev/null; then
echo -e "\033[33m发现现有Docker环境,准备清理...\033[0m"
sudo systemctl stop docker
sudo yum remove docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
echo -e "\033[32m现有Docker环境已清理完成。\033[0m"
else
echo -e "\033[32m没有发现现有Docker环境。\033[0m"
fi

# 2.1 安装Docker

# (1)更新yum包到最新
echo -e "\033[34m更新yum包到最新...\033[0m"
sudo yum update -y

# (2)安装必要的软件包
echo -e "\033[34m安装必要的软件包...\033[0m"
sudo yum install -y yum-utils device-mapper-persistent-data lvm2

# (3)设置yum源为阿里云
echo -e "\033[34m设置yum源为阿里云...\033[0m"
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

# (4)安装docker
echo -e "\033[34m安装docker...\033[0m"
sudo yum install docker-ce -y

# (5)安装后查看docker版本
echo -e "\033[34m查看docker版本...\033[0m"
docker -v

# 2.2 设置ustc的镜像
echo -e "\033[34m配置ustc镜像加速器...\033[0m"
# 创建或编辑daemon.json文件
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}
EOF

# 2.3 Docker的启动与停止

# 启动docker
echo -e "\033[34m启动docker服务...\033[0m"
sudo systemctl start docker

# 可选:设置Docker开机自启
echo -e "\033[34m设置Docker开机自启...\033[0m"
sudo systemctl enable docker

echo -e "\033[32mDocker安装与配置完成!\033[0m"

echo -e "\033[34m当前Docker安装版本\033[0m"
docker -v

9.一键部署安装docker-compose

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
#!/bin/bash
echo -e "\033[33m正在安装wget...\033[0m"
yum install wget -y
# 检查是否已安装docker-compose
if command -v docker-compose &> /dev/null
then
echo -e "\e[1;32mDocker Compose 已经安装,版本信息如下:\e[0m"
docker-compose -v
exit 0
else
echo -e "\e[1;31m未检测到Docker Compose,开始安装...\e[0m"
fi

# 下载docker-compose
echo -e "\e[1;34m正在下载 Docker Compose...\e[0m"
wget -O /opt/docker-compose-linux-x86_64 http://8.130.91.207:5244/d/airpan/docker-compose-linux-x86_64?sign=mHH0kmVIVMREuOPpECPcWMQQlRTlydEdIjw5wkl3HnY=:0

# 修改权限
echo -e "\e[1;34m修改权限...\e[0m"
chmod +x /opt/docker-compose-linux-x86_64

# 移动到/usr/bin
echo -e "\e[1;34m移动文件到 /usr/bin 目录...\e[0m"
mv /opt/docker-compose-linux-x86_64 /usr/bin/docker-compose

# 验证安装结果
if command -v docker-compose &> /dev/null
then
echo -e "\e[1;32mDocker Compose 安装成功,版本信息如下:\e[0m"
docker-compose -v
else
echo -e "\e[1;31mDocker Compose 安装失败,请检查脚本和网络连接。\e[0m"
exit 1
fi

10.一键部署安装apache-maven-3.8.6

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
#!/bin/bash


# 定义变量
MAVEN_VERSION=3.8.6
MAVEN_HOME=/opt/maven
MAVEN_DOWNLOAD_LINK="/opt/apache-maven-3.8.6-bin.tar.gz"

# 彩色输出函数
echo_red() { echo -e "\033[31m$1\033[0m"; }
echo_green() { echo -e "\033[32m$1\033[0m"; }
echo_blue() { echo -e "\033[34m$1\033[0m"; }

yum install wget -y

echo_blue "第一步:上传并解压 Maven 到 /opt..."
cd /opt
wget -O apache-maven-3.8.6-bin.tar.gz http://8.130.91.207:5244/d/airpan/apache-maven-3.8.6-bin.tar.gz?sign=OFJU_tqX26TPWm6dfoPCXFOtqN7oAbZvPDkyPbrod4A=:0

# 第一步:上传并解压 Maven 到 /opt
echo_blue "第一步:上传并解压 Maven 到 /opt..."
sudo cp $MAVEN_DOWNLOAD_LINK /opt
cd /opt
sudo tar -zxvf $(basename $MAVEN_DOWNLOAD_LINK)

# 第二步:移动解压文件夹到 maven
echo_blue "第二步:移动解压文件夹到 maven..."
sudo mv apache-maven-$MAVEN_VERSION maven

# 第三步:设置环境变量
echo_blue "第三步:设置环境变量..."
echo "MAVEN_HOME=${MAVEN_HOME}" | sudo tee -a /etc/profile
echo 'export PATH=${MAVEN_HOME}/bin:${PATH}' | sudo tee -a /etc/profile
source /etc/profile

# 第四步:验证安装结果
echo_blue "第四步:验证安装结果..."
mvn -version

# 显示完成信息
echo_green "Maven 安装脚本完成。"

11.一键搭建私有化仓库并上传JAVA8

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
#!/bin/bash

# 获取本机IP地址
LOCAL_IP=$(hostname -I | awk '{print $1}')

# 定义颜色变量
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[0;33m'
BLUE='\033[0;34m'
PURPLE='\033[0;35m'
CYAN='\033[0;36m'
RESET='\033[0m'

# 打印标题
echo -e "${PURPLE}==========搭建私有仓库并上传JAVA:8-jre镜像===========${RESET}"

# 步骤1
echo -e "${BLUE}[1] 上传registry.tar至/opt目录下${RESET}"
wget -O /opt/registry.tar https://dlink.host/1drv/aHR0cHM6Ly8xZHJ2Lm1zL3UvcyFBaVlDNncwZHotYlJnUUZFRnlTQ0MxZEF3eTZrP2U9a0twdE54.tar

# 步骤2
echo -e "${BLUE}[2] 开启docker服务${RESET}"
systemctl start docker

# 步骤3
echo -e "${BLUE}[3] 导入镜像${RESET}"
docker load -i /opt/registry.tar

# 步骤4
echo -e "${BLUE}[4] 启动私有仓库容器${RESET}"
docker run -di --name=registry -p 5000:5000 registry

# 步骤5
echo -e "${BLUE}[5] 打开浏览器验证${RESET}"
echo -e "${YELLOW}输入地址http://${LOCAL_IP}:5000/v2/_catalog看到{"repositories":[]} 表示私有仓库搭建成功并且内容为空${RESET}"

# 步骤6
echo -e "${BLUE}[6] 修改daemon.json${RESET}"
printf '{"insecure-registries":["%s:5000"]}' "${LOCAL_IP}" > /etc/docker/daemon.json

# 步骤7
echo -e "${BLUE}[7] 重启docker服务${RESET}"
systemctl restart docker

# 步骤8
echo -e "${BLUE}[8] 上传java.tar至/opt目录下,导入镜像${RESET}"
wget -O /opt/java.tar https://dlink.host/1drv/aHR0cHM6Ly8xZHJ2Lm1zL3UvcyFBaVlDNncwZHotYlJnUUpzRm9OMmJaWDB2YVpmP2U9dEt6OUFl.tar
docker load -i /opt/java.tar

# 步骤9
echo -e "${BLUE}[9] 标记此镜像为私有仓库的镜像${RESET}"
docker tag 192.168.222.100:5000/java:8-jre ${LOCAL_IP}:5000/java:8-jre

# 步骤10
echo -e "${BLUE}[10] 再次启动私服容器${RESET}"
docker start registry

# 步骤11
echo -e "${BLUE}[11] 上传标记的镜像${RESET}"
docker push ${LOCAL_IP}:5000/java:8-jre

# 步骤12
echo -e "${BLUE}[12] 浏览器验证${RESET},${YELLOW}输入地址http://${LOCAL_IP}:5000/v2/_catalog"
echo -e "${GREEN}搭建私有仓库并上传JAVA:8-jre镜像成功!${RESET}"