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

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

#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退出,这样就不会再有提示了。

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

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下使用,别的地方就不好使了,就是最后时候要记得把字体初始化一下。

时间: 2024-10-08 22:07:42

公司用的检查openweb服务是否启动的脚本的相关文章

linux服务方式启动程序脚本(init.d脚本)

这才是真正正确的让jar后台启动的脚本,网络上的各种nohoup的脚本都是临时执行一次任务用的. #!/bin/sh # # init.d script # # ### BEGIN INIT INFO # Provides: mongodb # Required-Start: $network $local_fs $remote_fs # Required-Stop: $network $local_fs $remote_fs # Should-Start: $named # Should-St

windows management instrumentation服务未启动-解决脚本

桌面新建.txt文件 将以下代码放入 保存为.bat文件 执行即可 @echo on cd /d c:\temp if not exist %windir%\system32\wbem goto TryInstall cd /d %windir%\system32\wbem net stop winmgmt winmgmt /kill if exist Rep_bak rd Rep_bak /s /q rename Repository Rep_bak for %%i in (*.dll) do

dubbo启动时,检查依赖服务配置

dubbo启动有一个选项:即是否检查依赖的服务是否启动,把这个选项置为false就可以了. 这个是从文档上面摘下来的: <dubbo:reference interface="com.foo.BarService" check="false" /> 也可以加lazy="true"配置,懒加载模式

WDCP打开网页时报错:无法连接mysql,请检查mysql是否已启动及用户密码是否配置正确

今天公司很久以前的一台WDCP集成的Web服务出现了问题,打开网页显示"无法连接mysql,请检查mysql是否已启动及用户密码是否配置正确" ???? ?????????????????(上图为服务器故障时Web访问报错信息) ???? ????在网上找了三个小时的资料,找到了很多遇到该问题的朋友,并且只要是数据库连接不正常的或者数据库无法正常启动的,全都会报这个错误,下面是我的解决方法: 1.检查服务运行状态 [[email protected] etc]# service mys

oracle 各种服务关闭启动

-----------windows环境------------------------------------- 1.监听启动&关闭 lsnrctl start //提示启动监听成功后net start OracleServiceORCL lsnrctl stop //提示启动监听成功后net stop OracleServiceORCL. 2.检查监听器状态 C:\-----\Administrator>lsnrctl status LSNRCTL for 64-bit Windows:

无法向会话状态服务器发出会话状态请求。请确保 ASP.NET State Service (ASP.NET 状态服务)已启动

无法向会话状态服务器发出会话状态请求.请确保 ASP.NET State Service (ASP.NET 状态服务)已启动,并且客户端端口与服务器端口相同.如果服务器位于远程计算机上,请检查 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\aspnet_state\Parameters\AllowRemoteConnection 的值,确保服务器接受远程请求.如果服务器位于本地计算机上,并且上面提到的注册表值不存在或者设置为 0,则状态

OracleDBConsole服务无法启动原因

同一台电脑,不同的无线连接 在办公室:IP:***.***.0.100 在市局   :IP:***.***.0.100 在家      :IP:***.***.1.101 在  D:/oracle/product/10.2.0/db_1/oc4j/j2ee 下创建 在家的时候,创建的OC4J_DBConsole_WWW-4A3E4793E05_orcl,能够正常连接 在办公室  :         OC4J_DBConsole_***.***.0.100_jtza 在市局:          

组策略限制添加用户作为服务登录导致ITAtomcat服务无法启动(log on as a service)

[故障类型]:ITA tomcat服务器无法启动. [关 键 词]:Logon as a service  作为服务登录  tomcat  loggeter [适用版本]:FusionCloud Solution V100R005C10/ FusionCloud Solution V100R005C20/ FusionCloud Solution V100R005C30 [问题现象]: ITA tomcat服务无法启动(loggeter服务也无法启动),在windows日志中发现有如下错误提示:

无法向会话状态服务器发出会话状态请求请。确保 ASP.NET State Service (ASP.NET 状态服务)已启动

原文链接:http://www.cnblogs.com/IT-Bear/archive/2012/01/04/2311546.html 无法向会话状态服务器发出会话状态请求.请确保 ASP.NET State Service (ASP.NET 状态服务)已启动,并且客户端端口与服务器端口相同.如果服务器位于远程计算机上,请检查 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\aspnet_state\Parameters\AllowRem