Linux【脚本 02】shell脚本离线安装配置Zookeeper及Kafka并添加service服务和开机启动(脚本分析)

简介: Linux【脚本 02】shell脚本离线安装配置Zookeeper及Kafka并添加service服务和开机启动(脚本分析)

1.离线安装脚本

为了能够快速部署,故编写了离线安装配置的 shell 脚本。

1.1 Zookeeper

Zookeeper 安装文件为apache-zookeeper-3.6.2-bin.tar.gz脚本内容如下:

#!/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
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服务并设置开机自启完毕"

1.2 Kafka

Kafka 安装文件为apache-zookeeper-3.6.2-bin.tar.gz脚本内容如下:

#!/bin/bash
rm -rf /usr/local/kafka
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://localhost: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
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服务并设置开机自启完毕"

2.脚本使用说明

  • 使用source xxx.sh执行上述脚本,否则环境变量无法在当前环境下生效。
  • 不同安装文件的(3/6): 配置xxx运行参数...的代码可能不一致,需要自行整理。
目录
相关文章
|
11月前
|
算法 Linux Shell
Linux实用技能:打包压缩、热键、Shell与权限管理
本文详解Linux打包压缩技巧、常用命令与原理,涵盖.zip与.tgz格式操作、跨系统传文件方法、Shell运行机制及权限管理,助你高效使用Linux系统。
Linux实用技能:打包压缩、热键、Shell与权限管理
|
11月前
|
存储 安全 Unix
七、Linux Shell 与脚本基础
别再一遍遍地敲重复的命令了,把它们写进Shell脚本,就能一键搞定。脚本本质上就是个存着一堆命令的文本文件,但要让它“活”起来,有几个关键点:文件开头最好用#!/usr/bin/env bash来指定解释器,并用chmod +x给它执行权限。执行时也有讲究:./script.sh是在一个新“房间”(子Shell)里跑,不影响你;而source script.sh是在当前“房间”里跑,适合用来加载环境变量和配置文件。
951 9
|
11月前
|
存储 Shell Linux
八、Linux Shell 脚本:变量与字符串
Shell脚本里的变量就像一个个贴着标签的“箱子”。装东西(赋值)时,=两边千万不能有空格。用单引号''装进去的东西会原封不动,用双引号""则会让里面的$变量先“变身”再装箱。默认箱子只能在当前“房间”(Shell进程)用,想让隔壁房间(子进程)也能看到,就得给箱子盖个export的“出口”戳。此外,Shell还自带了$?(上条命令的成绩单)和$1(别人递进来的第一个包裹)等许多特殊箱子,非常有用。
993 2
|
11月前
|
数据采集 监控 Shell
无需Python:Shell脚本如何成为你的自动化爬虫引擎?
Shell脚本利用curl/wget发起请求,结合文本处理工具构建轻量级爬虫,支持并行加速、定时任务、增量抓取及分布式部署。通过随机UA、异常重试等优化提升稳定性,适用于日志监控、价格追踪等场景。相比Python,具备启动快、资源占用低的优势,适合嵌入式或老旧服务器环境,复杂任务可结合Python实现混合编程。
|
Web App开发 缓存 安全
Linux一键清理系统垃圾:释放30GB空间的Shell脚本实战​
这篇博客介绍了一个实用的Linux系统盘清理脚本,主要功能包括: 安全权限检查和旧内核清理,保留当前使用内核 7天以上日志文件清理和系统日志压缩 浏览器缓存(Chrome/Firefox)、APT缓存、临时文件清理 智能清理Snap旧版本和Docker无用数据 提供磁盘空间使用前后对比和大文件查找功能 脚本采用交互式设计确保安全性,适合定期维护开发环境、服务器和个人电脑。文章详细解析了脚本的关键功能代码,并给出了使用建议。完整脚本已开源,用户可根据需求自定义调整清理策略。
1368 1
|
11月前
|
Linux 应用服务中间件 Shell
二、Linux文本处理与文件操作核心命令
熟悉了Linux的基本“行走”后,就该拿起真正的“工具”干活了。用grep这个“放大镜”在文件里搜索内容,用find这个“探测器”在系统中寻找文件,再用tar把东西打包带走。最关键的是要学会使用管道符|,它像一条流水线,能把这些命令串联起来,让简单工具组合出强大的功能,比如 ps -ef | grep 'nginx' 就能快速找出nginx进程。
1064 1
二、Linux文本处理与文件操作核心命令
|
11月前
|
Linux
linux命令—stat
`stat` 是 Linux 系统中用于查看文件或文件系统详细状态信息的命令。相比 `ls -l`,它提供更全面的信息,包括文件大小、权限、所有者、时间戳(最后访问、修改、状态变更时间)、inode 号、设备信息等。其常用选项包括 `-f` 查看文件系统状态、`-t` 以简洁格式输出、`-L` 跟踪符号链接,以及 `-c` 或 `--format` 自定义输出格式。通过这些选项,用户可以灵活获取所需信息,适用于系统调试、权限检查、磁盘管理等场景。
739 137
|
11月前
|
安全 Ubuntu Unix
一、初识 Linux 与基本命令
玩转Linux命令行,就像探索一座新城市。首先要熟悉它的“地图”,也就是/根目录下/etc(放配置)、/home(住家)这些核心区域。然后掌握几个“生存口令”:用ls看周围,cd去别处,mkdir建新房,cp/mv搬东西,再用cat或tail看文件内容。最后,别忘了随时按Tab键,它能帮你自动补全命令和路径,是提高效率的第一神器。
1678 58
|
10月前
|
存储 安全 Linux
Linux卡在emergency mode怎么办?xfs_repair 命令轻松解决
Linux虚拟机遇紧急模式?别慌!多因磁盘挂载失败。本文教你通过日志定位问题,用`xfs_repair`等工具修复文件系统,三步快速恢复。掌握查日志、修磁盘、验重启,轻松应对紧急模式,保障系统稳定运行。
1606 2