首页 >>  正文

python怎么重复程序

来源:baiyundou.net   日期:2024-09-21

作者:王忘杰

全民制作人大家好,我是学习python两天半的练习生王忘杰,喜欢路由交换、linux、网络安全,开整!这是我的第二篇0基础python文章,请大家支持,谢谢~

开发思路
用于监控指定的URL,在我的场景中,我是从腾讯VPS上监控公司宽带出口,当URL访问超时时,即为宽带故障。
设计思路很简单,访问失败发送告警,访问成功发送恢复通知,同时要使用配置文件进行配置,防止持续重复告警。

绘制开发流程图


使用python语言实现

#!/usr/bin/python3import requests
import time
import json
import os# 监测URL是否正常响应def url_check(url):    # 当前时间    check_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
   try:        # 请求URL, 设置3s超时, 忽略SSL证书        r = requests.get(url, timeout=3, verify=False)
       if r.status_code == 200:
           fo = open(config,"r")
           line = fo.read(1)
           print(line)            #判断配置文件内容            if line == "1":
               print("发送报警")
               fo.close()
               fo = open(config, "w")
               fo.write('0')
               print("配置重置为0")                # 请求响应状态                msg = "监控的URL:%s%sURL恢复状态正常:%s%s监测时间:%s" % (
               url, "nn", r.status_code, "nn", check_time)                # 推送消息                yun_push(msg)
           else:
               print("当前配置为",line)
               fo = open(config, "w")
               fo.write('0')
               print("配置重置为0")
       else:
           fo = open(config, "r")
           line = fo.read(1)
           print(line)
           if line == "1":
               print("退出程序")
           else:
               print("发送报警")
               fo.close()
               fo = open(config, "w")
               fo.write('1')
               print("配置重置为1")                # 请求响应状态                msg = "监控的URL:%s%sURL访问异常:%s%s监测时间:%s" % (
                   url, "nn", r.status_code, "nn", check_time)                # 推送消息                yun_push(msg)
   except:
       fo = open(config, "r")
       line = fo.read(1)
       print(line)
       if line == "1":
           print("退出程序")
       else:
           print("发送报警")
           fo.close()
           fo = open(config, "w")
           fo.write('1')
           print("配置重置为1")            # 请求响应状态            msg = "监控的URL:%s%sURL访问失败,无法连接%s监测时间:%s" % (
               url, "nn", "nn", check_time)            # 推送消息            yun_push(msg)

def yun_push(content):
   url = 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=用自己的'
   s = json.dumps({'msgtype': 'text', 'text': {"content" : content}})
   print(requests.post(url, data=s).text)

if __name__ == '__main__':    #判断配置文件是否存在,不存在则生成配置文件并退出,配置文件则存在执行    config = './baidu.config'
   if not os.path.exists(config):
       print("配置文件不存在")
       file = open(config,'w')
       file.close()
       print("配置文件已生成")
   else:
       print("配置文件存在,执行URL检测")
       url_check("https://www.baidu.com/")

运行效果


正式使用
在VPS部署python脚本,并设置定时任务即可


查看文章精彩评论,请前往什么值得买进行阅读互动

","gnid":"96c6a833d821e0468","img_data":[{"flag":2,"img":[{"desc":"","height":"274","title":"","url":"https://p0.ssl.img.360kuai.com/t015394727360c3cdc6.jpg","width":"600"},{"desc":"","height":"616","title":"","url":"https://p0.ssl.img.360kuai.com/t016ff92dc7f2116c3c.jpg","width":"359"}]}],"original":0,"pat":"art_src_1,fts0,sts0","powerby":"cache","pub_time":1683810195000,"pure":"","rawurl":"http://zm.news.so.com/41b69145e2771cb08cd67bac9f05abc6","redirect":0,"rptid":"4cdf902d8b0d23e5","rss_ext":[],"s":"t","src":"什么值得买","tag":[{"clk":"ktechnology_1:机器人","k":"机器人","u":""}],"title":"0基础上手python编程,实践URL监控+企业微信机器人告警

吴海泄1557怎样用python将某一年的全部日期重复七次 -
王砍劳19169663485 ______ 1234567>>> import time>>> time.localtime()time.struct_time(tm_year=2014, tm_mon=9, tm_mday=4, tm_hour=21, tm_min=8, tm_sec=56, tm_wday=3, tm_yday=247, tm_isdst=0)>>> time.localtime()[0]2014>>> time.localtime()[1]9

吴海泄1557关于软件sikuli命令的问题.(sikuli是基于Python的一款软件)怎样使编辑后的命令重复执行?
王砍劳19169663485 ______ 是啊,你都知道sikuli是基于python的了,那么重复执行命令,当然是使用python里的循环语句的语法了,,比如while语句和for语句...当然,sikuli也是以图像识别为基础的,所以需要考虑每次循环给图形界面带来的变化,比如,你想在一个文本框里连续输入三个a,那么用for就不行了,因为当循环体执行完一遍以后,文本框就发生了变化,第二次执行循环体时就会出现识别上的错误..

吴海泄1557Python怎么从文件里的数据去重复,去重复后,再保存到文件里,把重复的数据保存出来 -
王砍劳19169663485 ______ 内容读出来通过逗号分割成一个列表,再去掉重复的,再写入到文件里面 # -*- coding:utf-8 -*- filename = 'data.txt' with open(filename, 'r') as f: content = f.read() content = list(set(content.split(','))) content = ','.join(content) with open(filename, 'w') as _f: _f.write(content)

吴海泄1557Python3,怎样重复进行多次判断? -
王砍劳19169663485 ______ hiiii,我用的是Wing IDE 101 3.1,应该可以吧.这个问题我们可以用一个简单的recursion.def identify(c): '''定义一个简单的识别函数''' if 'abc' != c: #当c不等于'abc'的时候 c1 = raw_input('try again:') #让使用者重新输入字符c1 return identify(c1...

吴海泄1557如何运行Python程序的方法 -
王砍劳19169663485 ______ 1、python *.py2、直接双击运行

吴海泄1557python列表中怎样加入重复的元素 -
王砍劳19169663485 ______ #!usr/bin/python resList = []; resList1 = [1,2,3,1,3] resList2 = [] for i in range(len(resList1)): if(resList1.count(resList1[i]) >=2 ): if(resList2.count(resList1[i]) >= 1): continue else: resList2.append(resList1[i]) print resList2

吴海泄1557如何找出Python list中有重复的项 -
王砍劳19169663485 ______ 可以对第二个list的元素进行遍历,检查是否出现在第二个list当中,如果使用表理解,可以使用一行代码完成任务. list1 = [1,2,3,4,5] list2 = [4,5,6,7,8] print [l for l in list1 if l in list2] # [4,5] 如果每一个列表中均没有重复的元素,那么还有另外一种更好的办法.首先把两个list转换成set,然后对两个set取交集,即可得到两个list的重复元素. set1 = set(list1) set2 = set(list2) print set1 & set 2 # {4,5}

吴海泄1557python如何去除重复行并写入另一个文件 -
王砍劳19169663485 ______ 1. 把文件内容读在一个列表里;2. 将列表转换成集合(集合可以自动去除掉重复项)3. 写进另一个文件中.

吴海泄1557进程中总是出现许多重复的进程,尤其是IE能否避免,如何避免
王砍劳19169663485 ______ IE是一个支持多线程的程序,也就是说你每打开一个IE窗口IE就增加一个线程,每一个窗口就对应一个进程,如果你打开了多少个IE窗口就会有多少个IE进程! 其它的进程的原理都是一样的,你也会发现会有多个svchost.exe这个进程,这个是系统的一个动态链接库,有很多程序会调用到这个文件中的函数,每一个程序调用这个库文件,也就会产生一个进程,所以就有多个了!

(编辑:自媒体)
关于我们 | 客户服务 | 服务条款 | 联系我们 | 免责声明 | 网站地图 @ 白云都 2024