前言:有个别网站服务器是部署在windows上的。windows又不像Liunx机器有强大的crontab和shell,而且windows机器上的权限问题又很蛋疼没有linux的好用,本来想用bat脚本做这个监控的。尝试了一番后果断弃坑转向了python(python也是临时看了3天写的这个脚本,半路出家的写的不是很好报介意)
安装完python环境后和pyCharm后我们就可以快乐的codeing了。
在写脚本时需要引入一些python库,这个脚本里用到的库有,os,requests,schedule,time,json
有一些库没有需要自己安装
安装命令:
这里的话用pyCharm的兄弟可以直接在工具里面引入,文本编辑器编辑的需要自己在cmd命令行去安装,不然跑脚本的时候会报错。
pip install 库名
直接上代码:
import os
import requests
import schedule
import time
import json
# coding=utf-8
def job():
try:
localtime = time.asctime(time.localtime(time.time()))
f = open(r'C:\monitor\log\monitor.log', 'a', encoding='utf-8')
print("开始访问:", time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()), file=f)
with open(r"C:\monitor\conf\config.json", 'r') as file:
config = json.load(file)
information = config["information"]
html = requests.get(information["url"], timeout=3)
if str(200) not in str(html.status_code):
print('访问异常,重启tomcat', file=f)
print("访问异常:", time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()), file=f)
f.close()
os.system('cmd /c taskkill /im Tomcat8.exe /f')
time.sleep(5)
os.system('net start Tomcat8')
else:
print('网站访问正常,继续监控', file=f)
print("访问正常:", time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()), file=f)
except requests.RequestException:
print('连接超时,重启tomcat', file=f)
print("访问异常:", time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()), file=f)
f.close()
os.system('cmd /c taskkill /im Tomcat8.exe /f')
time.sleep(5)
os.system('net start Tomcat8')
schedule.every(180).seconds.do(job)
while True:
schedule.run_pending()
time.sleep(5)
这个是定义的json数据,就是上面代码中读取的config.json文件的内容,这个url地址可以自己定义变成了可配置的就很方便。
{
"information": {
"url": "http://localhost:8080/"
}
}
打包脚本时会用到一个pyinstaller的工具
安装时指定一个源,用原本的源下载速度很慢
这里我指定的是清华源
#https://pypi.tuna.tsinghua.edu.cn/simple/
pip install pyinstaller -i https://pypi.tuna.tsinghua.edu.cn/simple/
安装完成后,就可以进行打包exe了。
打包exe时,可以指定一个自己喜欢的图标(图标可以上阿里巴巴矢量图标库上找找看哈哈),下面是打包命令
pyinstall -i 图标.ico -F 脚本名.py
这个是我打包成exe后的样子。是不是很好看呢。
在windows服务器上运行时,记得创建我们的目录,将json文件放到目录下,不然就读不到了。
日志目录记得也创建一下。
exe打包完了,想让我们的脚本程序开机自起怎么办呢,这个时候就用到了nssm工具,这个工具真的超好用!
NSSM官网地址:NSSM - the Non-Sucking Service Managerhttp://nssm.cc/download
使用方法:直接下载解压
解压完后目录结构如下:
使用NSSM工具时用管理员打开cmd命令行工具,cd 到对应的目录下(你电脑是32位的就进入win32,是64位的就进入win64目录下)
cmd命令行中执行:
nssm install
会弹出一个框
Path:运行应用程序的程序
Startup directory:应用程序所在的目录
Arguments:应用运行的参数
Service name:生成服务的名称
最后点击install service 完成windows服务安装,在windows服务列表就能看到创建的服务了。
好了,到这里就配置完毕了,赶快重启一下服务器感受一下吧!