ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

Shell脚本简单示例

2022-06-07 16:36:29  阅读:166  来源: 互联网

标签:脚本 Shell tomcat jdk 示例 echo usr local


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 "${jdk1}d" /etc/profile
    fi

 jdk2=$(grep -n "export CLASSPATH=.*\$JAVA_HOME.*" /etc/profile | cut -f1 -d':')
    if [ -n "$jdk2" ];then
        echo "CLASSPATH路径已配置,删除内容"
        sed -i "${jdk2}d" /etc/profile
    fi

 jdk3=$(grep -n "export PATH=.*\$JAVA_HOME.*" /etc/profile | cut -f1 -d':')
    if [ -n "$jdk3" ];then
        echo "PATH-JAVA路径已配置,删除内容"
        sed -i "${jdk3}d" /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,tomcat,jdk,示例,echo,usr,local
来源: https://www.cnblogs.com/zhangzhixi/p/16352319.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有