Linux【脚本 03】shell脚本离线安装配置集结JDK+InfluxDB+Zookeeper+Kafka(安装文件及脚本源码网盘分享)

简介: Linux【脚本 03】shell脚本离线安装配置集结JDK+InfluxDB+Zookeeper+Kafka(安装文件及脚本源码网盘分享)

安装文件及shell脚本网盘分享:

链接:https://pan.baidu.com/s/1ZQE6Chfvur_u_iefhbtFKQ 
提取码:l6nw

包含文件:

以下脚本仅针对特定离线版本安装,方便快速部署。

1.脚本

  • JDK安装脚本:jdkInstall.sh
  • 时序数据库InfluxDB安装脚本:influxdbInstall.sh
  • Zookeeper安装脚本:zookeeperInstall.sh
  • Kafka安装脚本:kafkaInstall.sh

2.使用说明

按需将安装文件与 shell 安装脚本放在同一个文件夹下。

(1)使用 chmod +x *.sh 命令给shell 脚本赋可执行权限。

(2)由于脚本设置了全局变量,执行需要使用 source xxx.sh 命令。

  • source jdkInstall.sh
  • source influxdbInstall.sh
  • source zookeeperInstall.sh
  • source kafkaInstall.sh

2.1 JDK安装脚本

脚本仅适用于jdk-8u241-linux-x64.tar.gz的安装部署。

  • 步骤 (2/3) JAVA_HOME文件夹可自定义,默认为/usr/local/java/jdk1.8.0_241
#!/bin/bash
rm -rf /usr/local/java/jdk1.8.0_241
echo "(1/3): 解压JDK安装文件..."
mkdir -p /usr/local/java/jdk1.8.0_241
tar -zxvf jdk-8u241-linux-x64.tar.gz
sleep 10
echo "(1/3): JDK安装文件解压完毕"
echo "(2/3): 配置JDK环境变量..."
mv -f jdk1.8.0_241/ /usr/local/java
sleep 2
cat <<'EOF' > /etc/profile.d/java.sh
export JAVA_HOME=/usr/local/java/jdk1.8.0_241
export PATH=$PATH:$JAVA_HOME/bin
EOF
sleep 1
source /etc/profile.d/java.sh
echo "JAVA_HOME目录:"${JAVA_HOME}
echo "(2/3): JDK环境变量配置完毕"
echo "(3/3): 验证JDK版本..."
java -version
echo "(3/3): JDK版本验证完毕"

2.2 时序数据库InfluxDB安装脚本

脚本仅适用于influxdb-1.7.6.x86_64.rpm的安装部署。

  • 步骤 (2/6) 配置数据存储位置,根据实际情况进行配置。
  • 步骤 (4/6) 创建admin用户及数据库,根据实际情况进行配置。
#!/bin/bash 
# yum -y remove influxdb.x86_64
echo "(1/6): 安装InfluxDB..."
yum localinstall -y influxdb-1.7.6.x86_64.rpm
echo "(1/6): InfluxDB安装完毕"
echo "(2/6): 配置InfluxDB运行参数..."
mkdir -p /home/influxdb/meta
mkdir -p /home/influxdb/data
mkdir -p /home/influxdb/wal
chown -R influxdb:influxdb /home/influxdb
sed -i "26c dir = \"/home/influxdb/meta\"" /etc/influxdb/influxdb.conf
sed -i "45c dir = \"/home/influxdb/data\"" /etc/influxdb/influxdb.conf
sed -i "48c wal-dir = \"/home/influxdb/wal\"" /etc/influxdb/influxdb.conf
sed -i "247c enabled = true" /etc/influxdb/influxdb.conf
echo "(2/6): InfluxDB运行参数配置完毕"
echo "(3/6): 首次启动InfluxDB..."
systemctl start influxd
sleep 3
systemctl status influxd
echo "(3/6): InfluxDB首次启动完毕"
echo "(4/6): 创建用户及数据库..."
influx  -execute 'create user "dsj" with password '\''dsj'\'' with all privileges;' -format 'json' -pretty
sleep 1
influx  -execute 'create database "sjzt";' -format 'json' -pretty
sleep 1
echo "(4/6): 用户及数据库创建完毕"
echo "(5/6): 开启权限认证并重启InfluxDB..."
sed -i "259c auth-enabled = true" /etc/influxdb/influxdb.conf
systemctl restart influxd
sleep 3
systemctl status influxd
echo "(5/6): 开启权限认证并重启InfluxDB完毕"
echo "(6/6): 配置InfluxDB开机启动..."
cat <<EOF >> /etc/rc.loal
systemctl start influxd
EOF
echo "(6/6): InfluxDB开机启动配置完毕"

2.3 Zookeeper安装脚本

脚本仅适用于apache-zookeeper-3.6.2-bin.tar.gz的安装部署。

  • 步骤 (2/6) 内ZOOKEEPER_HOME可自定义
  • 步骤 (3/6) 内运行参数可配置
  • 步骤 (6/6) 内JAVA_HOME需根据实际情况进行修改,默认为/usr/local/java/jdk1.8.0_241
#!/bin/bash
rm -rf /usr/local/zookeeper
echo "(1/6): 解压Zookeeper安装文件..."
tar -zxvf apache-zookeeper-3.6.2-bin.tar.gz
sleep 10
echo "(1/6): Zookeeper安装文件解压完毕"
echo "(2/6): 配置Zookeeper环境变量..."
mv ./apache-zookeeper-3.6.2-bin/ /usr/local/zookeeper
sleep 2
cat <<'EOF' > /etc/profile.d/zookeeper.sh
export ZOOKEEPER_HOME=/usr/local/zookeeper
export PATH=$PATH:$ZOOKEEPER_HOME/bin
EOF
sleep 1
source /etc/profile.d/zookeeper.sh
echo "ZOOKEEPER_HOME目录:"${ZOOKEEPER_HOME}
echo "(2/6): 配置Zookeeper环境变量完毕"
echo "(3/6): 配置Zookeeper运行参数..."
cp ${ZOOKEEPER_HOME}/conf/zoo_sample.cfg ${ZOOKEEPER_HOME}/conf/zoo.cfg
sed -i "12c dataDir=/usr/local/zookeeper/data" ${ZOOKEEPER_HOME}/conf/zoo.cfg
sed -i "13i dataLogDir=/usr/local/zookeeper/datalog" ${ZOOKEEPER_HOME}/conf/zoo.cfg
echo "(3/6): Zookeeper运行参数配置完毕"
echo "(4/6): 初次启动Zookeeper..."
zkServer.sh start
sleep 2
zkServer.sh status
echo "(4/6): Zookeeper初次启动完毕"
echo "(5/6): 开启2181端口..."
firewall-cmd --zone=public --add-port=2181/tcp --permanent && firewall-cmd --reload
echo "(5/6): 2181端口开启完毕"
echo "(6/6): Zookeeper加入到service服务并设置开机自启..."
cat <<'EOF' > /etc/rc.d/init.d/zookeeper
#!/bin/bash
# chkconfig: 2345 10 90
# description: service zookeeper
# processname: zookeeper
export JAVA_HOME=/usr/local/java/jdk1.8.0_241
ZOOKEEPER_HOME=/usr/local/zookeeper
case $1 in
     start) su root ${ZOOKEEPER_HOME}/bin/zkServer.sh start;;
     start-foreground) su root ${ZOOKEEPER_HOME}/bin/zkServer.sh start-foreground;;
     stop) su root ${ZOOKEEPER_HOME}/bin/zkServer.sh stop;;
     status) su root ${ZOOKEEPER_HOME}/bin/zkServer.sh status;;
     restart) su root ${ZOOKEEPER_HOME}/bin/zkServer.sh restart;;
     upgrade) su root ${ZOOKEEPER_HOME}/bin/zkServer.sh upgrade;;
     print-cmd) su root ${ZOOKEEPER_HOME}/bin/zkServer.sh print-cmd;;
     *) echo "require start|start-foreground|stop|status|restart|print-cmd";;
esac
EOF
chmod +x /etc/rc.d/init.d/zookeeper
chkconfig --add /etc/rc.d/init.d/zookeeper
chkconfig zookeeper on
echo "(6/6): Zookeeper加入到service服务并设置开机自启完毕"

2.4 Kafka安装脚本

脚本仅适用于kafka_2.12-2.6.0.tgz的安装部署。

  • 步骤 (2/6) 内KAFKA_HOME可自定义,Kafka会存储较多数据,需选择空间较大磁盘。
  • 步骤 (3/6) 内运行参数可配置
  • 步骤 (6/6) 内JAVA_HOME需根据实际情况进行修改,默认为/usr/local/java/jdk1.8.0_241
#!/bin/bash
rm -rf /usr/local/kafka
# 获取local_host值
local_host=`ifconfig|grep "broadcast"|tail -1|awk '{print $2}'`
echo "(1/6): 解压Kafka安装文件..."
tar -zxvf kafka_2.12-2.6.0.tgz
sleep 10
echo "(1/6): Kafka安装文件解压完毕"
echo "(2/6): 配置Kafka环境变量..."
mv ./kafka_2.12-2.6.0/ /usr/local/kafka
sleep 2
cat <<'EOF' > /etc/profile.d/kafka.sh
export KAFKA_HOME=/usr/local/kafka
export PATH=$PATH:$KAFKA_HOME/bin
EOF
sleep 1
source /etc/profile.d/kafka.sh
echo "KAFKA_HOME目录:"${KAFKA_HOME}
echo "(2/6): Kafka环境变量配置完毕"
echo "(3/6): 配置Kafka运行参数..."
sed -i "32i listeners=PLAINTEXT://"${local_host}":9092" ${KAFKA_HOME}/config/server.properties
sed -i "61c log.dirs=${KAFKA_HOME}/kafka-logs" ${KAFKA_HOME}/config/server.properties
echo "(3/6): Kafka运行参数配置完毕"
echo "(4/6): 首次启动Kafka..."
kafka-server-start.sh -daemon ${KAFKA_HOME}/config/server.properties
echo "(4/6): Kafka首次启动完毕"
echo "(5/6): 开启9092端口..."
firewall-cmd --zone=public --add-port=9092/tcp --permanent && firewall-cmd --reload
echo "(5/6): 9092端口开启完毕"
echo "(6/6): Kafka加入到service服务并设置开机自启..."
cat <<'EOF' > /etc/rc.d/init.d/kafka
#!/bin/bash
# chkconfig: 2345 40 60
# description: service kafka
# processname: kafka
export JAVA_HOME=/usr/local/java/jdk1.8.0_241
KAFKA_HOME=/usr/local/kafka
case $1 in
  start) ${KAFKA_HOME}/bin/kafka-server-start.sh -daemon ${KAFKA_HOME}/config/server.properties;;
  stop) ${KAFKA_HOME}/bin/kafka-server-stop.sh;;
  status) ${JAVA_HOME}/bin/jps | grep Kafka;;
  restart) ${KAFKA_HOME}/bin/kafka-server-stop.sh
       ${KAFKA_HOME}/bin/kafka-server-start.sh -daemon ${KAFKA_HOME}/config/server.properties;;
  *) echo "require start|stop|status|restart";;
esac
EOF
chmod +x /etc/rc.d/init.d/kafka
chkconfig --add /etc/rc.d/init.d/kafka
chkconfig kafka on
echo "(6/6): Kafka加入到service服务并设置开机自启完毕"

3.更新记录

  • 20220520 kafka脚本修改监听地址从localhost(127.0.0.1)改为获取的本机host值。
目录
相关文章
|
Ubuntu Linux 网络安全
Linux系统初始化脚本
一款支持Rocky、CentOS、Ubuntu、Debian、openEuler等主流Linux发行版的系统初始化Shell脚本,涵盖网络配置、主机名设置、镜像源更换、安全加固等多项功能,适配单/双网卡环境,支持UEFI引导,提供多版本下载与持续更新。
772 3
Linux系统初始化脚本
|
8月前
|
存储 安全 Unix
七、Linux Shell 与脚本基础
别再一遍遍地敲重复的命令了,把它们写进Shell脚本,就能一键搞定。脚本本质上就是个存着一堆命令的文本文件,但要让它“活”起来,有几个关键点:文件开头最好用#!/usr/bin/env bash来指定解释器,并用chmod +x给它执行权限。执行时也有讲究:./script.sh是在一个新“房间”(子Shell)里跑,不影响你;而source script.sh是在当前“房间”里跑,适合用来加载环境变量和配置文件。
704 9
|
8月前
|
存储 Shell Linux
八、Linux Shell 脚本:变量与字符串
Shell脚本里的变量就像一个个贴着标签的“箱子”。装东西(赋值)时,=两边千万不能有空格。用单引号''装进去的东西会原封不动,用双引号""则会让里面的$变量先“变身”再装箱。默认箱子只能在当前“房间”(Shell进程)用,想让隔壁房间(子进程)也能看到,就得给箱子盖个export的“出口”戳。此外,Shell还自带了$?(上条命令的成绩单)和$1(别人递进来的第一个包裹)等许多特殊箱子,非常有用。
720 2
|
10月前
|
Web App开发 缓存 安全
Linux一键清理系统垃圾:释放30GB空间的Shell脚本实战​
这篇博客介绍了一个实用的Linux系统盘清理脚本,主要功能包括: 安全权限检查和旧内核清理,保留当前使用内核 7天以上日志文件清理和系统日志压缩 浏览器缓存(Chrome/Firefox)、APT缓存、临时文件清理 智能清理Snap旧版本和Docker无用数据 提供磁盘空间使用前后对比和大文件查找功能 脚本采用交互式设计确保安全性,适合定期维护开发环境、服务器和个人电脑。文章详细解析了脚本的关键功能代码,并给出了使用建议。完整脚本已开源,用户可根据需求自定义调整清理策略。
1139 1
|
12月前
|
Java Linux
自定义linux脚本用于快速jar包启动、停止、重启
自定义linux脚本用于快速jar包启动、停止、重启
455 29
|
12月前
|
Linux Shell
Centos或Linux编写一键式Shell脚本删除用户、组指导手册
Centos或Linux编写一键式Shell脚本删除用户、组指导手册
341 4
|
12月前
|
Linux Shell 数据安全/隐私保护
Centos或Linux编写一键式Shell脚本创建用户、组、目录分配权限指导手册
Centos或Linux编写一键式Shell脚本创建用户、组、目录分配权限指导手册
605 3
|
Ubuntu Linux Shell
【Linux操作系统】探秘Linux奥秘:shell 编程的解密与实战
【Linux操作系统】探秘Linux奥秘:shell 编程的解密与实战
279 0
|
Shell Linux C++
Linux C/C++ 开发(学习笔记二):Shell脚本编程案例
Linux C/C++ 开发(学习笔记二):Shell脚本编程案例
341 0
|
运维 Shell Linux
Linux 之大数据定制篇-Shell 编程
Linux 之大数据定制篇-Shell 编程
408 0