非常实用的Tomcat启动脚本实现方法

 更新时间:2019年05月22日 11:33:49   作者:卧龙小蛋蛋  
这篇文章主要给大家介绍了关于非常实用的Tomcat启动脚本的实现方法,文中通过示例代码介绍的非常详细,对大家学习或者使用Tomcat具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧

前言

有这样一个场景,公司为了安全起见,需要对所有登录Linux服务器做安全限制,要求除了管理员其他要登录linux服务器的员工不能用最高权限账号登录,要创建新的用户,对目录及文件权限做出控制,只能对需要操作的目录允许读,写,执行权限,其他目录只有读的权限,并且所有tomcat不能直接在bin中用startup.sh,shutdown.sh进行启动和停止,要通过写shell脚本进行此操作,也就是说有两个步骤,创建用户并设置权限,写tomcat启动脚本,下面我们就完成这两个步骤。

1.首先我们就来创建一个普通用户。

groupadd tomcat #加组 
useradd -g tomcat -s /usr/sbin/nologin tomcat #向组加用户 
usermod -L tomcat #锁定密码,使密码无效 
passwd tomcat # 设置密码 

通过这四步,我们就把普通用户创建好了,在创建用户时,我们是先创建的组,组创建完成后创建用户并加入该组。

用户创建完成后,就开始给用户设置权限

chown -R tomcat:tomcat /data #分配权限给用户 

这就是给tomcat这个用户设置了可以操作data目录及其子目录下的权限,-R就代表该目录及其级联子目录。

[root@localhost data]# ls -l 
total 0 
drwxr-xr-x. 4 tomcat tomcat 79 May 20 08:03 tomcat 
[root@localhost data]# 

 此时我们通过ls -l 命令就可以看到data目录已经属于tomcat用户,且拥有查看,写入,执行权限

2.完成了用户创建后,我们就要开始完成tomcat启动脚本。

如代码所示:

#!/bin/bash 
tomcat_home=/data/tomcat/tomcat-8484 
SHUTDOWN=$tomcat_home/bin/shutdown.sh 
STARTTOMCAT=$tomcat_home/bin/startup.sh 
case $1 in 
start) 
echo "启动$tomcat_home" 
$STARTTOMCAT 
cd /data/tomcat/tomcat-8484/logs 
tail -f catalina.out 
;; 
stop) 
echo "关闭$tomcat_home" 
#$SHUTDOWN 
netstat -anp | grep 8484| grep -v grep | awk '{print $7}' | sed -e 's//java//g' | sed -e 's/^/kill -9 /g' | sh 
#pidlist=`ps -ef |grep tomcat |grep -v "grep"|awk '{print $2}'` 
#kill -9 $pidlist 
#删除日志文件,如果你不先删除可以不要下面一行 
#rm $tomcat_home/logs/* -rf 
#删除tomcat的临时目录 
#rm $tomcat_home/work/* -rf 
;; 
restart) 
echo "关闭$tomcat_home" 
$SHUTDOWN 
#pidlist=`ps -ef |grep tomcat |grep -v "grep"|awk '{print $2}'` 
#pidlist=`netstat -anp |grep 8484 |grep -v "grep"|awk '{print $2}'` 
#netstat -anp | grep 8484| grep -v grep | awk '{print $7}' | sed -e 's//java//g' | sed -e 's/^/kill -9 /g' | sh 
#kill -9 $pidlist 
sleep 5 
echo "启动$tomcat_home" 
$STARTTOMCAT 
#看启动日志 
#tail -f $tomcat_home/logs/catalina.out 
;; 
logs) 
cd /data/tomcat/tomcat-8484/logs 
tail -f catalina.out 
;; 
esac 

上面代码就是tomcat启动脚本,首先我们要创建一个文本文件,然后将后缀名变成.sh,这里我是用端口号为8484的tomcat作为例子,从脚本文件中可以看到,总共只需对自己tomcat位置和日志位置进行自定义改动后就可以使用,总共有四个命令,start,stop,restart,logs。

脚本文件创建好后,只需将它放入你的服务器中,位置可以自己随意选择,我这里就把它放在了tomcat下bin目录中。

脚本文件放入服务器后其实还不能使用,会有两个问题待解决,一个是格式问题,一个是权限问题。因为我们是文本文件创建的,其格式是文本格式,我们要改成unix格式,所以要进行如下设置

sed -i "s/ 
//" tomcat-8484.sh #设置脚本文件为unix格式 

完成了格式设置后就要为该脚本文件设置权限,因为linux默认文件的权限是drwxr-xr-x,即所有运行权限赋予文件所有者也就是系统管理员(当前我是用系统管理员登录),把读和运行的权限赋予群组用户,把读的权限赋予其他用户,所以我们要对脚本文件权限进行重新设置。

chmod 777 ./tomcat-8484.sh 

chmod命令就是改变权限的命令,这个777是什么意思呢?

在Linux系统中,文件或目录的权限又分为3种:只读、只写、可执行。


依照上面的表格,权限组合就是对应权限值求和,如下:

7 = 4 + 2 + 1 读写运行权限

5 = 4 + 1 读和运行权限

4 = 4 只读权限

因此,大家也就明白了 chmod 777 ./tomcat-8484.sh 命令的含义了。

此时我们的tomcat启动脚本就完成了,下面我们来演示一下。

启动

[root@localhost bin]# ./tomcat-8484.sh start 
启动/data/tomcat/tomcat-8484 
Using CATALINA_BASE: /data/tomcat/tomcat-8484 
Using CATALINA_HOME: /data/tomcat/tomcat-8484 
Using CATALINA_TMPDIR: /data/tomcat/tomcat-8484/temp 
Using JRE_HOME: /usr 
Using CLASSPATH: /data/tomcat/tomcat-8484/bin/bootstrap.jar:/data/tomcat/tomcat-8484/bin/tomcat-juli.jar 
Tomcat started. 

我们查看进程看一下是否真的启动

[root@localhost bin]# ps -ef |grep tomcat 
root 5569 1 7 14:09 pts/0 00:00:06 /usr/bin/java -Djava.util.logging.config.file=/data/tomcat/tomcat-8484/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dignore.endorsed.dirs= -classpath /data/tomcat/tomcat-8484/bin/bootstrap.jar:/data/tomcat/tomcat-8484/bin/tomcat-juli.jar -Dcatalina.base=/data/tomcat/tomcat-8484 -Dcatalina.home=/data/tomcat/tomcat-8484 -Djava.io.tmpdir=/data/tomcat/tomcat-8484/temp org.apache.catalina.startup.Bootstrap start 
root 5611 5340 0 14:10 pts/0 00:00:00 grep --color=auto tomcat 

可以看到启动没有问题。

关闭

[root@localhost bin]# ./tomcat-8484.sh stop 
关闭/data/tomcat/tomcat-8484 
sh: line 2: kill: (18484) - No such process 
[root@localhost bin]# ps -ef |grep tomcat 
root 5621 5340 0 14:13 pts/0 00:00:00 grep --color=auto tomcat 

查看进程确实是关闭成功的,好了我们的tomcat启动脚本也就大功告成了,这个脚本还可以自己在此基础上进行延伸,例如在启动后就立即查看日志等。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。

相关文章

  • 解析Tomcat架构原理到架构设计

    解析Tomcat架构原理到架构设计

    一般学习的时候也是先总览一下整体,然后逐个部分个个击破,最后形成思路,了解具体细节,Tomcat的结构很复杂,但是Tomcat非常的模块化,找到了Tomcat最核心的模块,问题才可以游刃而解,了解了Tomcat的整体架构对以后深入了解Tomcat来说至关重要
    2021-06-06
  • Tomcat配置必备的10个小技巧用法总结

    Tomcat配置必备的10个小技巧用法总结

    Tomcat具有免费、跨平台等诸多特性,并且更新得很快,现在非常的流行,你所需要做的就是:按照你的需求配置Tomcat,只要你正确配置,Tomcat一般都能适合你的要求,下面是一系列关于Tomcat的配置技巧,希望对你有所帮助
    2023-05-05
  • Centos8.2云服务器环境安装Tomcat8.5的详细教程

    Centos8.2云服务器环境安装Tomcat8.5的详细教程

    这篇文章主要介绍了Centos8.2云服务器环境安装Tomcat8.5的详细教程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-12-12
  • Tomcat服务器入门超详细教程

    Tomcat服务器入门超详细教程

    Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选,这篇文章主要介绍了Tomcat服务器入门超详细教程,需要的朋友可以参考下
    2021-11-11
  • Tomcat配置https SSL证书的项目实践

    Tomcat配置https SSL证书的项目实践

    本文主要介绍了Tomcat配置https SSL证书的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • Web应用中设置Context Path案例详解

    Web应用中设置Context Path案例详解

    这篇文章主要介绍了Web应用中设置Context Path案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • 在Tomcat中部署Web项目的操作方法(必看篇)

    在Tomcat中部署Web项目的操作方法(必看篇)

    下面小编就为大家带来一篇在Tomcat中部署Web项目的操作方法(必看篇)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06
  • 使用Tomcat服务器运行sts时出现报错的解决办法

    使用Tomcat服务器运行sts时出现报错的解决办法

    前几天在运行 Spring ToolSuite 时出现Starting Tomcat v8.5 Server at localhost' hasencountered a problem.的错误,所以本文给大家介绍了解决这个错的方法,需要的朋友可以参考下
    2023-09-09
  • idea专业版和idea社区版整合Tomcat并将war包部署

    idea专业版和idea社区版整合Tomcat并将war包部署

    IDEA是一个功能完善的Java开发工具,除了具备有良好的代码开发提示之外,还可以直接在IDEA中集成并启动Tomcat实现程序的自动部署,本文主要介绍了idea专业版和idea社区版整合Tomcat并将war包部署,感兴趣的可以了解一下
    2023-11-11
  • Tomcat6.0与windows 2003 server 的IIS服务器集成

    Tomcat6.0与windows 2003 server 的IIS服务器集成

    本例主要讲解Tomcat6.0与windows 2003 server 的IIS服务器集成的问题,用到的工具版 本如下:jdk是6.0、Tomcat 6.0、windows 2003 server 的IIS。
    2009-08-08

最新评论