• 售前

  • 售后

热门帖子
入门百科

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

[复制链接]
luly靓 显示全部楼层 发表于 2021-10-26 13:30:08 |阅读模式 打印 上一主题 下一主题
媒介
有这样一个场景,公司为了安全起见,须要对所有登录Linux服务器做安全限定,要求除了管理员其他要登录linux服务器的员工不能用最高权限账号登录,要创建新的用户,对目次及文件权限做出控制,只能对须要操作的目次允许读,写,实验权限,其他目次只有读的权限,并且所有tomcat不能直接在bin中用startup.sh,shutdown.sh举行启动和制止,要通过写shell脚本举行此操作,也就是说有两个步调,创建用户并设置权限,写tomcat启动脚本,下面我们就完成这两个步调。
1.起首我们就来创建一个平凡用户。
  1. groupadd tomcat #加组
  2. useradd -g tomcat -s /usr/sbin/nologin tomcat #向组加用户
  3. usermod -L tomcat #锁定密码,使密码无效
  4. passwd tomcat # 设置密码
复制代码
通过这四步,我们就把平凡用户创建好了,在创建用户时,我们是先创建的组,组创建完成后创建用户并加入该组。
用户创建完成后,就开始给用户设置权限
  1. chown -R tomcat:tomcat /data #分配权限给用户
复制代码
这就是给tomcat这个用户设置了可以操作data目次及其子目次下的权限,-R就代表该目次及其级联子目次。
  1. [root@localhost data]# ls -l
  2. total 0
  3. drwxr-xr-x. 4 tomcat tomcat 79 May 20 08:03 tomcat
  4. [root@localhost data]#
复制代码
此时我们通过
  1. ls -l
复制代码
下令就可以看到data目次已经属于tomcat用户,且拥有查看,写入,实验权限
2.完成了用户创建后,我们就要开始完成tomcat启动脚本。

如代码所示:
  1. #!/bin/bash
  2. tomcat_home=/data/tomcat/tomcat-8484
  3. SHUTDOWN=$tomcat_home/bin/shutdown.sh
  4. STARTTOMCAT=$tomcat_home/bin/startup.sh
  5. case $1 in
  6. start)
  7. echo "启动$tomcat_home"
  8. $STARTTOMCAT
  9. cd /data/tomcat/tomcat-8484/logs
  10. tail -f catalina.out
  11. ;;
  12. stop)
  13. echo "关闭$tomcat_home"
  14. #$SHUTDOWN
  15. netstat -anp | grep 8484| grep -v grep | awk '{print $7}' | sed -e 's//java//g' | sed -e 's/^/kill -9 /g' | sh
  16. #pidlist=`ps -ef |grep tomcat |grep -v "grep"|awk '{print $2}'`
  17. #kill -9 $pidlist
  18. #删除日志文件,如果你不先删除可以不要下面一行
  19. #rm $tomcat_home/logs/* -rf
  20. #删除tomcat的临时目录
  21. #rm $tomcat_home/work/* -rf
  22. ;;
  23. restart)
  24. echo "关闭$tomcat_home"
  25. $SHUTDOWN
  26. #pidlist=`ps -ef |grep tomcat |grep -v "grep"|awk '{print $2}'`
  27. #pidlist=`netstat -anp |grep 8484 |grep -v "grep"|awk '{print $2}'`
  28. #netstat -anp | grep 8484| grep -v grep | awk '{print $7}' | sed -e 's//java//g' | sed -e 's/^/kill -9 /g' | sh
  29. #kill -9 $pidlist
  30. sleep 5
  31. echo "启动$tomcat_home"
  32. $STARTTOMCAT
  33. #看启动日志
  34. #tail -f $tomcat_home/logs/catalina.out
  35. ;;
  36. logs)
  37. cd /data/tomcat/tomcat-8484/logs
  38. tail -f catalina.out
  39. ;;
  40. esac
复制代码
上面代码就是tomcat启动脚本,起首我们要创建一个文本文件,然后将后缀名酿成.sh,这里我是用端口号为8484的tomcat作为例子,从脚本文件中可以看到,统共只需对自己tomcat位置和日志位置举行自界说改动后就可以利用,统共有四个下令,start,stop,restart,logs。
脚本文件创建好后,只需将它放入你的服务器中,位置可以自己随意选择,我这里就把它放在了tomcat下bin目次中。
脚本文件放入服务器后实在还不能利用,会有两个问题待办理,一个是格式问题,一个是权限问题。因为我们是文本文件创建的,其格式是文本格式,我们要改成unix格式,所以要举行如下设置
  1. sed -i "s/
  2. //" tomcat-8484.sh #设置脚本文件为unix格式
复制代码
完成了格式设置后就要为该脚本文件设置权限,因为linux默认文件的权限是drwxr-xr-x,即所有运行权限赋予文件所有者也就是体系管理员(当前我是用体系管理员登录),把读和运行的权限赋予群组用户,把读的权限赋予其他用户,所以我们要对脚本文件权限举行重新设置。
  1. chmod 777 ./tomcat-8484.sh
复制代码
chmod下令就是改变权限的下令,这个777是什么意思呢?
在Linux体系中,文件或目次的权限又分为3种:只读、只写、可实验。


依照上面的表格,权限组合就是对应权限值求和,如下:
7 = 4 + 2 + 1 读写运行权限
5 = 4 + 1 读和运行权限
4 = 4 只读权限
因此,大家也就明白了
  1. chmod 777 ./tomcat-8484.sh
复制代码
下令的含义了。
此时我们的tomcat启动脚本就完成了,下面我们来演示一下。
启动
  1. [root@localhost bin]# ./tomcat-8484.sh start
  2. 启动/data/tomcat/tomcat-8484
  3. Using CATALINA_BASE: /data/tomcat/tomcat-8484
  4. Using CATALINA_HOME: /data/tomcat/tomcat-8484
  5. Using CATALINA_TMPDIR: /data/tomcat/tomcat-8484/temp
  6. Using JRE_HOME: /usr
  7. Using CLASSPATH: /data/tomcat/tomcat-8484/bin/bootstrap.jar:/data/tomcat/tomcat-8484/bin/tomcat-juli.jar
  8. Tomcat started.
复制代码
我们查看进程看一下是否真的启动
  1. [root@localhost bin]# ps -ef |grep tomcat
  2. 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
  3. root 5611 5340 0 14:10 pts/0 00:00:00 grep --color=auto tomcat
复制代码
可以看到启动没有问题。
关闭
  1. [root@localhost bin]# ./tomcat-8484.sh stop
  2. 关闭/data/tomcat/tomcat-8484
  3. sh: line 2: kill: (18484) - No such process
  4. [root@localhost bin]# ps -ef |grep tomcat
  5. root 5621 5340 0 14:13 pts/0 00:00:00 grep --color=auto tomcat
复制代码
查看进程确实是关闭成功的,好了我们的tomcat启动脚本也就大功告成了,这个脚本还可以自己在此根本上举行延伸,比方在启动后就立刻查看日志等。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习代价,谢谢大家对脚本之家的支持。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作