shell vs python脚本监控http请求

简介:

    各写一个shell和python脚本来监控http请求,并在服务不可用的时候重启服务。

监控的连接为:

http://192.168.1.101:5022/product

http://192.168.1.101:5024/module

shell脚本如下,配合crontab计划任务每一分钟执行一次检查:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#!/bin/bash
# This shell is used to moniter 192.168.1.101 port 5022 & 5024
date   #在crontab里用来记录log的时间
i=0
curl -s -m 10 192.168.1.101:5022 /product  /dev/null   #用crul测试服务是否可用
n=` echo  $?`   #只有在服务请求正常的情况下$?的值才为0
echo  "5022 curl echo $n"
curl -s -m 10 192.168.1.101:5024 /module  /dev/null
m=` echo  $?`  
echo  "5024 curl echo $m"
if  [[  "$n"  - eq  "$i"  &&  "$m"  - eq  "$i"  ]];  then
     echo  "api port 5022 and 5024 is ok."
else
     echo  "service need restart"
     /etc/init .d /serverapi  restart
fi

python脚本,每隔十秒诊断一次:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import  requests
import  os
import  time
from datetime  import  datetime, timedelta
 
def restart():
     try:
         urls = [ 'http://192.168.1.101:5022/product' 'http://192.168.1.101:5024/module' ]
         while  True:
#            import pdb
#            pdb.set_trace()
             sleep  = 10
             for  url  in  urls:
                 print( 'get %s' %url)
                 r = requests.get(url,timeout=10)
                 if  r.status_code == 200:
                     print( '%s is ok...' %url)
                     print( 'moniter continue after 10s' )
             time . sleep ( sleep )
     except Exception as e:
         print(e.message)
         print( '%s is ERROR !!!' %url)
         print( 'consoleapi will be restart' )
         os.system( '/etc/init.d/serverapi stop' )
     print( 'consoleapi stoped' )
         time . sleep (6)
         os.system( '/etc/init.d/serverapi start' )
if  __name__ ==  '__main__' :
     print( 'main' )
     def main():
       while  True:
             restart()
     main()

两个脚本写的都挺烂,呵呵。贴出来主要是提醒自己,用shell或者用Python怎么方便怎么用,不要太拘泥于形式。


      本文转自Jx战壕  51CTO博客,原文链接:http://blog.51cto.com/xujpxm/1737982,如需转载请自行联系原作者






相关文章
|
4月前
|
监控 算法 安全
深度洞察内网监控电脑:基于Python的流量分析算法
在当今数字化环境中,内网监控电脑作为“守城卫士”,通过流量分析算法确保内网安全、稳定运行。基于Python的流量分析算法,利用`scapy`等工具捕获和解析数据包,提取关键信息,区分正常与异常流量。结合机器学习和可视化技术,进一步提升内网监控的精准性和效率,助力企业防范潜在威胁,保障业务顺畅。本文深入探讨了Python在内网监控中的应用,展示了其实战代码及未来发展方向。
|
1月前
|
Python
使用Python实现multipart/form-data文件接收的http服务器
至此,使用Python实现一个可以接收 'multipart/form-data' 文件的HTTP服务器的步骤就讲解完毕了。希望通过我的讲解,你可以更好地理解其中的逻辑,另外,你也可以尝试在实际项目中运用这方面的知识。
144 69
|
1月前
|
数据采集 数据可视化 大数据
Python入门修炼:开启你在大数据世界的第一个脚本
Python入门修炼:开启你在大数据世界的第一个脚本
76 6
|
2月前
|
SQL Oracle 关系型数据库
【YashanDB知识库】共享利用Python脚本解决Oracle的SQL脚本@@用法
【YashanDB知识库】共享利用Python脚本解决Oracle的SQL脚本@@用法
|
5月前
|
Python
自动化微信朋友圈:Python脚本实现自动发布动态
本文介绍如何使用Python脚本自动化发布微信朋友圈动态,节省手动输入的时间。主要依赖`pyautogui`、`time`、`pyperclip`等库,通过模拟鼠标和键盘操作实现自动发布。代码涵盖打开微信、定位朋友圈、准备输入框、模拟打字等功能。虽然该方法能提高效率,但需注意可能违反微信使用条款,存在风险。定期更新脚本以适应微信界面变化也很重要。
426 61
自动化微信朋友圈:Python脚本实现自动发布动态
|
2月前
|
监控 算法 安全
基于 Python 广度优先搜索算法的监控局域网电脑研究
随着局域网规模扩大,企业对高效监控计算机的需求增加。广度优先搜索(BFS)算法凭借其层次化遍历特性,在Python中可用于实现局域网内的计算机设备信息收集、网络连接状态监测及安全漏洞扫描,确保网络安全与稳定运行。通过合理选择数据结构与算法,BFS显著提升了监控效能,助力企业实现智能化的网络管理。
48 7
|
2月前
|
SQL Oracle 关系型数据库
【YashanDB知识库】共享利用Python脚本解决Oracle的SQL脚本@@用法
本文来自YashanDB官网,介绍如何处理Oracle客户端sql*plus中使用@@调用同级目录SQL脚本的场景。崖山数据库23.2.x.100已支持@@用法,但旧版本可通过Python脚本批量重写SQL文件,将@@替换为绝对路径。文章通过Oracle示例展示了具体用法,并提供Python脚本实现自动化处理,最后调整批处理脚本以适配YashanDB运行环境。
|
3月前
|
缓存 Shell 开发工具
[oeasy]python064_命令行工作流的总结_vim_shell_python
本文总结了命令行工作流中的关键工具和操作,包括vim、shell和Python。主要内容如下: 1. **上次回顾**:完成了输入输出的代码编写,并再次练习了vim的使用。 2. **shell基础**:介绍了shell环境及其基本命令,如`pwd`、`cd`、`ll -l`等。 3. **Python游乐场**:通过`python3`命令进入Python交互环境,可以进行简单计算和函数调用,常用函数有`help`、`ord`、`chr`等。 4. **vim编辑器**:详细讲解了vim的三种模式(正常模式、插入模式、底行命令模式)及其切换方法,以及常用的底行命令如`:w`、`:q`、`
105 15
|
4月前
|
监控 运维
HTTPS 证书自动化运维:https证书管理系统- 自动化监控
本文介绍如何设置和查看域名或证书监控。步骤1:根据证书状态选择新增域名或证书监控,线上部署推荐域名监控,未部署选择证书监控。步骤2:查询监控记录详情。步骤3:在详情页查看每日定时检测结果或手动测试。
HTTPS 证书自动化运维:https证书管理系统- 自动化监控
|
2月前
|
SQL 关系型数据库 数据库连接