公司用的检查openweb服务是否启动的脚本

公司用的检查openweb服务是否启动的脚本

大家好,又见面了,我是全栈君。

这是一个python 2.7的脚本~~!!!!

####################################################################################

#coding=utf-8                                                    

#脚本用途:OPENWEB服务自动化校验                                       

#编写时间:2016年7月11日                                            

#脚本作者:乐橙运维组                                              

####################################################################################

#!/usr/bin/env python

#载入模块

import commands

import os

import socket, fcntl, struct

#制定各标准

IS_PRO_SUCCESS = 0

IS_CRONTAB_SUCCESS = 0

#获取当前执行脚本的时间

time = commands.getoutput(‘date’)

print ‘\033[1;31;40m’

print ‘本脚本的执行时间是’ + time

#获取当前服务器的IP地址和hostname

def Check_local_ip(ifname = ‘eth0’):

        s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

        inet = fcntl.ioctl(s.fileno(), 0x8915, struct.pack(‘256s’, ifname[:15]))

        ret = socket.inet_ntoa(inet[20:24])

        return ret

print ‘\033[1;32;40m’

print ‘执行脚本的服务器内网ip是’ + Check_local_ip()

#获取程序后台进程数量

def CheckProcess() :

        global IS_PRO_SUCCESS

        print ‘\033[1;33;1m’

        boot = commands.getoutput(“ps -ef | grep java|grep -v grep|wc -l”)

        if boot == ‘1’:

                IS_PRO_SUCCESS = 1

                print(‘~~~~openweb已经正常启动~~~~’)

        else:

                print(‘~~~~openweb没有正常启动,脚本会自动帮助您启动startup.sh脚本~~~~’)

                os.system(‘sh /mnt/hswx/tomcat/bin/startup.sh’)

#检测守护进程是否存在

def CheckCrontab() :

        global IS_CRONTAB_SUCCESS

        crontab_content = commands.getoutput(‘crontab -l’)

        crontab_number = commands.getoutput(‘crontab -l|wc -l’)

        if (int(crontab_number) == 3 and “* * * * * cd /mnt/hswx/util/;./monitor_hswx_websvr.sh” in crontab_content) :

                IS_CRONTAB_SUCCESS = 1

        elif int(crontab_number) == 0  :

                print ‘\033[1;34;1m’

                print(‘!!!!! 看门狗程序不存在,进程数: 0\n’)

                print(‘现在为您开启看门狗程序,启动monitor_hswx_websvr.sh’)

                os.system(‘cd /mnt/hswx/util/;./monitor_hswx_websvr.sh’)

        else:

                print ‘\033[1;34;1m’

                print(‘!!!!! 看门狗多于1个,请重启程序\n’)

#判断所有检测是否都成功

def CheckSuccess() :

        if (IS_PRO_SUCCESS == 1 and IS_CRONTAB_SUCCESS == 1) :

                print(‘==========OK!!!SUCCESS!!!===========\n’)

if __name__ == ‘__main__’ :

        CheckProcess()

        CheckCrontab()

        CheckSuccess()

        Check_local_ip()

print ‘\033[0m’

print (‘整个过程结束,感谢您的使用。’)

使用效果图如下,开始的时候没有开启openweb服务器,然后启动脚本。本台机器本身没有看门狗软件,所以启动看门狗是失败的,如果提示no crontab for root,那就在任意窗口#crontab -e,然后什么都不写,直接:wq退出,这样就不会再有提示了。

wKiom1eEZMWCqFX4AAF91tadfaw748.png-wh_50

———————————————分割线——————————-

openweb是干啥的,我也不知道,反正开发那么写,我就这么搞。至于里面的路径是服务器制定的。

python里的有很多种执行其它程序命令的语法,公司之前这位仁兄用的是os.popen,我用的是commands,用了commands,基本一个好端端的python脚本就可以写成shell了,shell怎么写,python就是外面加一个commands.getoutput这个壳子,同样可以通过getstat功能得到命令是否执行成功。

这里要注意一个细节,boot = commands.getoutput(“ps -ef | grep java|grep -v grep|wc -l”),这里的boot得到的不是一个int,而是一个str,也就是带‘’的,所以判断句式里不可以直接写数字,而是‘1’。

如果更改颜色,公司之前的脚本大侠用的是from printColour import PrintColour,我没用这个模块,毕竟不能保证每台机器都安装了printColour这个模块,于是我就干脆用的是“格式:\033[显示方式;前景色;背景色m”这个套路,挺简单也挺好用但是只能在linux下使用,别的地方就不好使了,就是最后时候要记得把字体初始化一下。

 本文转自 苏幕遮618 51CTO博客,原文链接:http://blog.51cto.com/chenx1242/1825624

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/108000.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • js动态显示表格的汇总信息和详细信息

    我在做数据结果展示的时候,想要实现一个如下的功能:用户可以选择一个时间段,默认显示这个时间段的汇总数据,当鼠标点击这个时间段的时候,将显示每个时间点的详细数据,再次点击的时候,详细数据收起,只显示汇

    2021年12月24日
  • sql2005数据库置疑的解决方法_sql数据库置疑修复工具

    sql2005数据库置疑的解决方法_sql数据库置疑修复工具数据库被置疑后的解决方法(一)A.我们使用默认方式建立一个供恢复使用的数据库(如test)。可以在SQLServerEnterpriseManager 里面建立。B.停掉数据库服务器。C.将刚才生成的数据库的日志文件test_log.ldf删除,用要恢复的数据库mdf文件覆盖刚才生成的数据 库数据文件test_data.mdf。D.启动数据库服务器。此时会看

  • 如何彻底删除卸载JDK?「建议收藏」

    如何彻底删除卸载JDK?「建议收藏」最近更新了jdk版本,当运行的时候出现错误couldnotopen’D:\jdk1.8.0_171\jre1.8.0_171\lib\amd64\jvm.cfg’主要是因为上个版本没有卸载干净和,jdk与jre安装的位置发生了冲突!解决jdk彻底删除的问题:1.在电脑的控制面板中卸载(基本的办法)。2.采用360安全卫士卸载,有风险(注册列表可能未删干净)3.在运行中…

  • Centos7安装Mysql5.7最全教程[通俗易懂]

    Centos7安装Mysql5.7最全教程[通俗易懂]最近需要在Linux系统上使用MySQL,记录一下安装过程吧,为后来的同学排除一些问题。更新yumyumupdate-y1.安装wget工具我安装到了/export/install这里可以进入你们所想要安装的地方cd/先进入你想安装的位置,此后全部在此文件夹进行操作。sudoyuminstall-ywget2.使用wget下载mysqlyum源:wgethttps://dev.mysql.com/get/mysql80-community-release-el

  • C# 调用java Webservice「建议收藏」

    C# 调用java Webservice「建议收藏」usingMicrosoft.CSharp;usingSystem;usingSystem.CodeDom;usingSystem.CodeDom.Compiler;usingSystem.Collections.Generic;usingSystem.IO;usingSystem.Linq;usingSystem.Net;usingSystem.Text;us

    2022年10月16日
  • Boltzmann机详解

    Boltzmann机详解基于热力学的随机型神经网络–Boltzmann机1.模拟退火算法我们知道,Hopfield神经网络拥有联想记忆的能力,这也是对生物神经网络的一种模拟。但是,Hopfield神经网络也和BP神经网络一样,有一个致命的缺陷:只能找到局部最优解,而无法沿着梯度上升的方向在全局的角度寻求全局最优解。为了解决这个问题,1983年,Kirkpatrick等提出了模拟退火算法(SA)能有效的解决局部最优…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号