ftp_watch.py 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. from qcloudsms_py import SmsSingleSender
  2. from qcloudsms_py.httpclient import HTTPError
  3. from qcloudsms_py import SmsMultiSender
  4. import os
  5. import sys
  6. BASE_DIR = os.path.dirname(os.path.abspath(__file__)) # 定位到你的django根目录
  7. sys.path.append(os.path.abspath(os.path.join(BASE_DIR, os.pardir)))
  8. # 引入django配置文件
  9. os.environ.setdefault("DJANGO_SETTINGS_MODULE", "yfwlw_pro.settings") # 你的django的settings文件
  10. import django
  11. # os.environ.setdefault("DJANGO_SETTINGS_MODULE",
  12. # "yfwlw_pro.settings") # project_name 项目名称
  13. django.setup()
  14. import json
  15. import time
  16. import requests
  17. import datetime
  18. from apps.ReportManage.all_dict import mobile_list, insect_dict_new, qxz_dict
  19. from apps.AppInfoManage.models import Equip, Equip_type, CBDphoto, Msg_Send, Msg_Conf, Equip_SimInfo, SCDstatus, CBDstatus, RecentCBDdata, MyUser,JKphoto, BZYdata, QXZstatus,QXZdata,\
  20. QXZstatus_New, QXZ_Conf, QXZ_Default_Conf, MyUser, JKphoto, BZYphoto, QXZdata_New, Group
  21. from apps.SimInfo.views import get_siminfo
  22. import paho.mqtt.client as mqtt
  23. # 短信应用 SDK AppID
  24. appid = 1400227496 # SDK AppID 以1400开头
  25. # 短信应用 SDK AppKey
  26. appkey = "c9aba961bd30072f1e1b9272077abaea"
  27. from requests.auth import HTTPBasicAuth
  28. import xlrd, xlwt
  29. import random
  30. from django.db import transaction
  31. import math
  32. import os
  33. import urllib.parse
  34. import urllib.request
  35. strtmp = os.popen("systemctl status py_ftp_server.service")
  36. #print(type(strtmp))
  37. cmdback = strtmp.read()
  38. # print("----->>",cmdback)
  39. strtmp1 = os.popen("systemctl status bzy_mqtt.service")
  40. #print(type(strtmp))
  41. cmdback1 = strtmp1.read()
  42. # print("----->>",cmdback)
  43. strtmp2 = os.popen("systemctl status cbd_mqtt.service")
  44. #print(type(strtmp))
  45. cmdback2 = strtmp2.read()
  46. # print("----->>",cmdback)
  47. strtmp3 = os.popen("systemctl status scd_mqtt.service")
  48. #print(type(strtmp))
  49. cmdback3 = strtmp3.read()
  50. # print("----->>",cmdback)
  51. strtmp4 = os.popen("systemctl status ftp_bzy_server.service")
  52. #print(type(strtmp))
  53. cmdback4 = strtmp4.read()
  54. # print("----->>",cmdback)
  55. strtmp5 = os.popen("systemctl status ybq_photo_collect.service")
  56. #print(type(strtmp))
  57. cmdback5 = strtmp5.read()
  58. # print("cmdback5----->>",cmdback5)
  59. strtmp6 = os.popen("systemctl status celery.service")
  60. #print(type(strtmp))
  61. cmdback6 = strtmp6.read()
  62. # print("----->>",cmdback)
  63. def send_alarm(name):
  64. # 需要发送短信的手机号码
  65. phone_numbers = ["13733763561","18258845915","15225155092","15538056323"]
  66. # phone_numbers = ["13733763561","18258845915"]
  67. # 短信模板ID,需要在短信控制台中申请
  68. template_id = 579944 # NOTE: 这里的模板 ID`7839`只是示例,真实的模板 ID 需要在短信控制台中申请
  69. # 签名
  70. sms_sign = "云飞科技" # NOTE: 签名参数使用的是`签名内容`,而不是`签名ID`。这里的签名"腾讯云"只是示例,真实的签名需要在短信控制台中申请
  71. msender = SmsMultiSender(appid, appkey)
  72. params = [name,]
  73. try:
  74. result = msender.send_with_param(86, phone_numbers,
  75. template_id, params, sign=sms_sign, extend="", ext="")
  76. except HTTPError as e:
  77. print(e)
  78. except Exception as e:
  79. print(e)
  80. print(result)
  81. print("----发送成功")
  82. print("服务异常!!!")
  83. return
  84. if "failed" in cmdback:
  85. print("ftp_cbd异常")
  86. send_alarm("ftp_cbd")
  87. if "failed" in cmdback1:
  88. print("bzy_mqtt异常")
  89. send_alarm("bzy_mqtt")
  90. if "failed" in cmdback2:
  91. print("cbd_mqtt异常")
  92. send_alarm("cbd_mqtt")
  93. if "failed" in cmdback3:
  94. print("scd_mqtt异常")
  95. send_alarm("scd_mqtt")
  96. if "failed" in cmdback4:
  97. print("ftp_bzy异常")
  98. send_alarm("ftp_bzy")
  99. if "failed" in cmdback5:
  100. print("ybq_photo异常")
  101. send_alarm("ybq_photo")
  102. if "ERROR" in cmdback6:
  103. print("celery异常")
  104. send_alarm("celery")
  105. print("全部正常!")