设为首页 收藏本站
查看: 729|回复: 0

[经验分享] tomcat脚本分类

[复制链接]

尚未签到

发表于 2018-11-29 13:19:28 | 显示全部楼层 |阅读模式
1、jvm配置以及pid配置
  更新catalina.sh脚本配置文件,避免在关闭tomcat停止的时候出现端口关了,进程没关的现象
配置时候运行一次就行.

#!/bin/bash
#
# 获取tomcat的绝对位置
CATALINE_BIN_DIR=/usr/local/tomcat/bin
# 获取tomcat的位置
CATALINA_BASE=`dirname $CATALINE_BIN_DIR`
# 获取tomcat的目录名称
BASE_DIR=`basename $CATALINA_BASE`
# 设置tomcat.pid
CATALINA_PID=$CATALINA_BASE/$BASE_DIR.pid
# 获取catalina.sh的脚本位置
CATALINA_START=$CATALINE_BIN_DIR/catalina.sh
# tomcat环境变量配置,有时tomcat重新启动失败需要手动改,配置环境变量就会减少这些问题,
# 设置jvm内存新生代老年代的最大大小
sed  -i "106a CATALINA_BASE=$CATALINA_BASE \nCATALINA_PID=$CATALINA_PID\nJAVA_OPTS=\"-server -Xms218m -Xmx512m -XX:PermSize=256M -XX:MaxPermSize=512m\"\n" $CATALINA_START
# catalina.sh stop的时候强制让进程关闭
sed -i 's/kill -3 `cat "$CATALINA_PID"`/echo "强制将进程关闭"\n\tkill -9 `cat "$CATALINA_PID"`\n\trm -rf "$CATALINA_PID"/' #!/bin/bash
#
# 获取tomcat的绝对位置
CATALINE_BIN_DIR=/usr/local/tomcat/bin
# 获取tomcat的位置
CATALINA_BASE=`dirname $CATALINE_BIN_DIR`
# 获取tomcat的目录名称
BASE_DIR=`basename $CATALINA_BASE`
# 设置tomcat.pid
CATALINA_PID=$CATALINA_BASE/$BASE_DIR.pid
# 获取catalina.sh的脚本位置
CATALINA_START=$CATALINE_BIN_DIR/catalina.sh
# tomcat环境变量配置,有时tomcat重新启动失败需要手动改,配置环境变量就会减少这些问题,
# 设置jvm内存新生代老年代的最大大小
sed  -i "106a CATALINA_BASE=$CATALINA_BASE \nCATALINA_PID=$CATALINA_PID\nJAVA_OPTS=\"-server -Xms218m -Xmx512m -XX:PermSize=256M -XX:MaxPermSize=512m\"\n" $CATALINA_START
# catalina.sh stop的时候强制让进程关闭
sed -i 's/kill -3 `cat "$CATALINA_PID"`/echo "强制将进程关闭"\n\tkill -9 `cat "$CATALINA_PID"`\n\trm -rf "$CATALINA_PID"/'  $CATALINA_START

# 带函数的
#!/bin/bash
#
dir=$1
fun(){
CATALINE_BIN_DIR=/usr/local/$1/bin
if [ -d $CATALINE_BIN_DIR ];then
CATALINA_BASE=`dirname $CATALINE_BIN_DIR`
BASE_DIR=`basename $CATALINA_BASE`
CATALINA_PID=$CATALINA_BASE/$BASE_DIR.pid
CATALINA_START=$CATALINE_BIN_DIR/catalina.sh
sed  -i "106a CATALINA_BASE=$CATALINA_BASE \nCATALINA_PID=$CATALINA_PID\nJAVA_OPTS=\"-server -Xms218m -Xmx512m -XX:PermSize=256M -XX:MaxPermSize=512m\"\n" $CATALINA_START
sed -i 's/kill -3 `cat "$CATALINA_PID"`/echo "强制将进程关闭"\n\tkill -9 `cat "$CATALINA_PID"`\n\trm -rf "$CATALINA_PID"/' catalina.sh
else
echo "then directory not exists."
fi
}
if [ ! -z $dir ];then
fun "$dir"
else
read -p "enable dir_name,as: tomcat_xiong " dir2
fun "$dir2"
fi

2、tomcat 集中启动脚本

#!/bin/bash
#
#   Name: start | stop tomcat services server  
#   Version Number:1.01
#   Type:服务启动脚本
#   Language:bash shell  
#   Date:2018.04.16  
#   Author:xiong
cat &1 &
3.3、 Py脚本

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import os
import time
import sys
# 获取当前路径,以及需要获取文件的日志文件路径.
List_dir = os.listdir(os.path.dirname(os.path.abspath(__file__)))
Log_dir = "release/linux/logs/wrapper.log"
"""
更新某些不在上数或上数慢的服务
"""
def Upnotlstb():
NLSTB = ("logpath")
for i in NLSTB:
with open(i, 'a') as NSLTBD:
NSLTBD.write("python scripts project check, then not alone version insert update messages, \
avoid send mail messages" + "\n")
"""
获取文件路径的函数
dirpath: 用于定义文件日志路径的相对路径
:return: 返回文件元组,当前所有服务的日志相对路径
"""
def Dirfile():
dirpath=[]
for i in List_dir:
if os.path.isdir(i):
files=os.path.join(i,Log_dir)
dirpath.append(files)
return dirpath
"""
获取文件大小
dirsize: 定义一个键值对,用于更新文件的大小及路径
Fsize: 查询到的每个文件大小
:return 返回获取到的键值对
"""
def Filesize(dirname):
dirsize = {}
while True:
for file in dirname:
try:
Fsize=os.path.getsize(file)
dirsize[file]=Fsize
except Exception as E:
pass
return dirsize
"""
收集两次文件的大小用于判断
file_old_size:
"""
def Size_Judge(oldsize,newsize,dirname):
for dirfilename in dirname:
# 循环获取每个文件的大小.
file_old_size=oldsize[dirfilename]
file_new_size=newsize[dirfilename]
# 增长表示没问题,否则就是有问题
if file_old_size != file_new_size:
pass
else:
# 将获取的值写入文件中, 然后执行邮件脚本
with open('test.txt','w') as file:
file.write(dirfilename)
file.write(",then logfile not increase" + "\n")
os.system("/bin/bash /tmp/mail.sh")
"""
执行上面定义的函数
dirname 用于获取文件的路径相对地址,绝对地址需要手动定义
old_dirsize 10秒钟前的文件大小,可以写成死循环
new_dirsize 10秒钟后的文件大小
Size_Judge 判断函数
"""
if __name__ == '__main__':
# 获取文件路径
dirname = Dirfile()
# 先获取一个值,用于测试文件是否停止工作状态,10秒内大小一致说明文件已经挂了
old_dirsize=Filesize(dirname)
# 刷新缓冲区 10秒
for sl in range(2):
sys.stdout.flush()
time.sleep(1)
# 10秒钟之后在更新这些文件,不然获取的还是老的文件的大小
# Upnotlstb()
new_drssize=Filesize(dirname)
Size_Judge(old_dirsize,new_drssize,dirname)
3.4、 邮件shell脚本

#!/bin/bash
#
# Name:定义邮件发送脚本
# Version Number:1.1
# Language:bash shell  
# Date:2017-05-12
# Author:xiong
# 此处定义用户邮箱名称如: name@xx.com
username=123@qq.com
# 此处定义用户邮箱密码
userpass=这里写密码
# 此处定义要发送哪个用户如 a.com发给b.com 这就定义b.com
senduser="这里定义发件人 比如a.qq.com b.qq.com c.qq.cm"
# 此处定义smtp地址  如smtp.qiye.163.com:25  必须加端口号
smtpaddess=smtp.qiye.163.com:25
# 此处定义邮件主题
subject="这里是标题"
# 此处定义邮件信息
message=’这里是内容’  也可以打开文件比如 `cat /tmp/1.txt`
# 发送邮件到各个邮箱中去,附带一个附件显示每日pv
/usr/local/bin/sendEmail -f $username -t $senduser -s $smtpaddess -u $subject -o tls=auto -o message-content-type=html -o message-charset=utf8  -xu $username -xp  $userpass -m $message -a 这里可以带一个附件 >/dev/null




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-641204-1-1.html 上篇帖子: tomcat基本安全加固与优化 下篇帖子: tomcat中文乱码问题的解决
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表