须知少年凌云志,曾许人间第一流。这篇文章主要讲述Shell脚本简单示例相关的知识,希望能为你提供帮助。
1
Shell概述shell 是一种脚本语言
脚本:本质是一个文件,文件里面存放的是 特定格式的指令,系统可以使用脚本解析器 翻译或解析 指令 并执行(它不需要编译)
shell 既是应用程序 又是一种脚本语言(应用程序 解析 脚本语言)
shell命令解析器:
系统提供 shell命令解析器: sh ash bash
查看自己linux系统的默认解析:echo $SHELL
写这篇文章的目的是,基于Shell,批量启动/停止Tomcat的教程。
2、使用Shell脚本自动安装JDK8使用此脚本,你只需要将jdk-8u144-linux-x64.tar.gz这个压缩包放在/root目录下,并新建一个脚本文件,即可实现安装JDK,并自动配置环境变量。
脚本文件:install_jdk.sh
1、
在用户家目录(/root)下新建install_jdk.sh文件
2、
将JDK安装包放在/root目录下,这里注意一下要注意脚本中的jdk路径,要与存放的jdk目录一直,否则会找不到
3、
执行脚本:bash install_jdk.sh
#!/bin/bash
# jdk存放目录(指定jdk放在/root目录下)
jdkTarget="/root/jdk-8u144-linux-x64.tar.gz"
jdkInstallCatalogue="/usr/local/java"
# 检查原先是否已配置java环境变量
checkExist()
jdk1=$(grep -n "export JAVA_HOME=.*" /etc/profile | cut -f1 -d:)
if [ -n "$jdk1" ];
then
echo "JAVA_HOME已配置,删除内容"
sed -i "$jdk1d" /etc/profile
fi
jdk2=$(grep -n "export CLASSPATH=.*\\$JAVA_HOME.*" /etc/profile | cut -f1 -d:)
if [ -n "$jdk2" ];
then
echo "CLASSPATH路径已配置,删除内容"
sed -i "$jdk2d" /etc/profile
fi
jdk3=$(grep -n "export PATH=.*\\$JAVA_HOME.*" /etc/profile | cut -f1 -d:)
if [ -n "$jdk3" ];
then
echo "PATH-JAVA路径已配置,删除内容"
sed -i "$jdk3d" /etc/profile
fi
# 查询是否有jdk.tar.gz
if [ -e $jdkTarget ];
then
#查询jdk安装目录是否存在
if [ -d $jdkInstallCatalogue ];
then
echo "— — 删除原jdk安装目录内的所有内容 — —"
rm -rf /usr/local/java/*
else
echo "— — 创建JDK安装目录 — —"
mkdir -p /usr/local/java &
>
/dev/null
fi
echo "— — 存在jdk压缩包 — —"
echo "正在解压jdk压缩包..."
tar -zxvf /root/jdk-8u144-linux-x64.tar.gz -C /usr/local/java/ &
>
/dev/null
# 检查配置信息
checkExist
echo "---------------------------------"
echo "正在配置jdk环境..."
sed -i $a export JAVA_HOME=/usr/local/java/jdk1.8.0_144 /etc/profile
sed -i $a export PATH=.:$JAVA_HOME/bin:$PATH /etc/profile
sed -i $a export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar /etc/profile
echo "---------------------------------"
echo "JAVA环境配置已完成..."
echo "---------------------------------"
echo "正在重新加载配置文件..."
echo "---------------------------------"
source /etc/profile
echo "配置版本信息如下:"
java -version
else
echo "未检测到安装包,请将安装包放到/root目录下"
fi
3、使用Shell脚本自动安装Tomcat使用此脚本,你无需再额外的下载Tomcat的压缩包,该脚本会自动从Apache官网上面下载指定的Tomcat版本。
当然你如果已经有了安装包放在了/root下,脚本也会自动检测到压缩包,并自动安装并启动Tomcat。
脚本文件:install_tomcat.sh
#!/bin/bash
#定义函数check
function check()
if [ $? == 0 ];
then
echo -e "\\033[32m success \\033[0m"
else
echo -e "\\033[31m fail \\033[0m"
exit 0
fi
#创建tomcat目录
if [ -d /usr/local/tomcat ];
then
echo "— — 删除原tomcat安装目录内的所有内容 — —"
rm -rf /usr/local/tomcat/* &
>
/dev/null
cd /usr/local/tomcat &
>
/dev/null
else
echo "正在创建tomcat目录"
mkdir -p /usr/local/tomcat &
>
/dev/null
cd /usr/local/tomcat &
>
/dev/null
fi
check
#下载tomcat8
if [ -e apache-tomcat-8.0.23.tar.gz ];
then
tar -zxvf apache-tomcat-8.0.23.tar.gz &
>
/dev/null
echo "正在安装tomcat8"
else
echo "正在下载tomcat8"
wget https://archive.apache.org/dist/tomcat/tomcat-8/v8.0.23/bin/apache-tomcat-8.0.23.tar.gz &
&
tar -zxvf apache-tomcat-8.0.23.tar.gz &
>
/dev/null
echo "正在解压tomcat8"
fi
check
#启动tomcat服务
echo "正在启动tomcat服务"
cd apache-tomcat-8.0.23/bin &
&
./startup.sh &
>
/dev/null
check
echo -e "\\033[32m 安装成功并启动tomcat服务 \\033[0m"
4、使用Shell脚本批量关闭Tomcat,并清理Tomcat日志在日常的工作中,难免有需要关闭tomcat的功能,如果一个服务器上面有好几个tomcat,一个个手动关闭进程实在是太繁琐,所以本案例演示一下如何使用shell批量关闭tomcat进程,并清理log文件释放磁盘空间。
脚本文件:shutdown_all_tomcat.sh
#!/bin/bash
echo -e "\\e[34m ==================start【`date +"%Y-%m-%d %H:%M:%S"`】================== \\e[0m"
echo -e "\\e[33m ==================【批量关闭tomcat,并清理log文件夹】site:================== \\e[0m"
# 定义全局变量(有几个tomcat,写几个tomcat的路径)
tomcat_dir=(
/usr/local/tomcat/apache-tomcat-8.0.23
/usr/local/tomcat/apache-tomcat-8.0.23-01
)
echo "开始清理日志,释放磁盘空间"
for(( i=0;
i<
$#tomcat_dir[@];
i++))
do
if [ -d$tomcat_dir[i] ];
then
rm -f $tomcat_dir[i]/logs/*;
echo "$tomcat_dir[i]日志文件清理完成"
else
echo -e "\\033[31m目录:$tomcat_dir[i]不存在,无法指定清理日志工作! \\033[0m"
fi
done;
echo "日志文件清理结束"
echo "停止tomcat服务"
echo -e "\\e[34m ==================end【`date +"%Y-%m-%d %H:%M:%S"`】================== \\e[0m"
ps -ef | grep tomcat | grep -v grep | cut -c 9-15 | xargs kill -9 &
>
/dev/null
5、使用Shell脚本批量启动tomcat脚本文件:start_all_tomcat.sh
#!/bin/bash
echo -e "\\e[34m ==================start【`date +"%Y-%m-%d %H:%M:%S"`】================== \\e[0m"
echo -e "\\e[33m ==================【批量启动Tomcat服务器】site:================== \\e[0m"
# 定义全局变量(有几个tomcat,写几个tomcat的路径)
tomcat_dir=(
/usr/local/tomcat/tomcat-web1
/usr/local/tomcat/tomcat-web2
)
for(( i=0;
i<
$#tomcat_dir[@];
i++))
do
if [ -d$tomcat_dir[i] ];
then
echo "正在启动:$tomcat_dir[i]服务"
cd $tomcat_dir[i]/bin &
&
./startup.sh tail -f ../logs/catalina.out &
>
/dev/null
else
echo -e "\\033[31m目录:$tomcat_dir[i]不存在,无法启动服务! \\033[0m"
fi
done;
echo -e "\\e[34m ==================end【`date +"%Y-%m-%d %H:%M:%S"`】================== \\e[0m"
1、
在用户家目录(/root)下新建start_all_tomcat.sh文件
2、
在脚本文件中修改自己的tomcat路径
3、
启动脚本
模拟两个Tomcat:
执行脚本:
两台Tomcat已成功启动:
【Shell脚本简单示例】
推荐阅读
- linux ubuntu 22.04双屏显示颜色变绿问题解决
- mac安装svn,Homebrew简单使用
- windows命令行获取网卡地址--说说getmac的返回值正确截取
- 接口测试系列——AutoDiff流量回放在集成测试中的实践应用
- 佳博GP2120TU标签打印机 安装和使用教程(PC)
- AWTK 设置下拉选择框 (combo box) 弹出窗口/列表项的样式
- app自动化测试(Android)--App 控件定位
- Tomcat高负载WEB服务器Tomcat部署
- 视频压缩数据集TVD