|
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
|
|
|