1.程序制作原因:

需要定位RouterOS路由器是否在线,并统计pppoe故障的拨号数目

2.所需环境:

windows7,python3.6

3.实现方式:

通过ssh发送命令

4.实现功能:

①判断RouterOS路由器是否在线

②统计各个RouterOS路由器pppoe故障的拨号数目

③将获取到的数据钉钉群通知

5.完整代码如下(branch_pppoe_detection.py):

import paramiko
import threading
import json
import requests
import os
import datetime
import time# 定义存储结果的数组
# re_result = []
out_result = []
falt_area = []# 钉钉群通知
def inotice(content):# webhook请替换为你实际的钉钉群api链接webhook = 'xxxx'data = {"msgtype": "text","text": {"content": content}}headers = {'Content-Type': 'application/json'}result = requests.post(url=webhook, data=json.dumps(data), headers=headers)def ssh_connect(host_ip, host_port, user_name, password, command, city):# SSH远程连接ssh = paramiko.SSHClient()  # 创建sshclientssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())  # 指定当对方主机没有本机公钥的情况时应该怎么办,AutoAddPolicy表示自动在对方主机保存下本机的秘钥ssh.connect(host_ip, host_port, user_name, password, timeout=5, allow_agent=False, look_for_keys=False)# 执行命令并获取执行结果stdin, stdout, stderr = ssh.exec_command(command)out = stdout.readlines()err = stderr.readlines()for i in out:message = str(host_ip) + " " + city + " " + str(i).strip('\r\n')out_result.append(message)ssh.close()def operation(user_name, password, host_port, host_ip, command, city):try:ssh_connect(host_ip, host_port, user_name, password, command, city)except Exception as e:content = host_ip + " " + city + " " + str(e)# re_result.append(content)out_result.append(content)def main():# 存储routeros的管理地址iplist = []# 存储账号,密码,端口信息auth = []dir = os.getcwd()dir_iplist = os.path.join(dir, "iplist.txt")dir_auth = os.path.join(dir, "auth.txt")# 读取routeros的管理地址if os.path.isfile(dir_iplist):with open(dir_iplist, "r") as f:for line in f.readlines():iplist.append(line.strip("\n"))# 读取账号,密码,端口信息if os.path.isfile(dir_auth):with open(dir_auth, "r") as f:for line in f.readlines():# print(line.strip("\n"))auth.append(line.strip("\n"))# 定义线程数组threads = []# 获取权限u_name = auth[0]u_pass = auth[1]u_port = auth[2]# 定义执行的命令command = ':gl lt 0;/interface pppoe-cl;:foreach i in [find] do={:if [get $i running ] do={} else={:set lt ($lt+1)}};:put $lt'for i in iplist:# print(i)data = i.split('\t')print(data)ip = data[0]# print(ip)city = data[1]th = threading.Thread(target=operation, args=(u_name, u_pass, u_port, ip, command, city,))th.setDaemon(True)th.start()threads.append(th)# 关闭所有子线程for th in threads:th.join()for i in out_result:arry = i.split(" ")# print(type(arry[2]))if arry[2] != "0":falt_area.append(i)# 数组不为空则有故障,则发送钉钉通知if len(falt_area) != 0:now_time = datetime.datetime.now().strftime('%Y-%m-%d %R')falt_area.sort(key=lambda i: (int(i.split('.')[2]), int(i.split('.')[3].split(' ')[0])))falt = '\n'.join(falt_area)falt_area.clear()falt = now_time + ' 地区故障拨数\n' + faltprint(falt)inotice(falt)out_result.clear()if __name__ == '__main__':while True:main()time.sleep(900)

监控100台RouterOS路由器的各个pppoe拨号失败的数目并钉钉通知相关推荐

  1. Linux Shell脚本专栏_监控100台服务器磁盘利用率脚本_07

    文章目录 监控100台服务器磁盘利用率脚本 1. 远程连接生成sshkey 2. 复制ssh公钥到目标服务器 3. 登录目标服务器查看 4. 私钥免登录 5. 192.168.43.134 服务器创建 ...

  2. 拨号云服务器怎么自动配置网关_如何解决路由器静态IP+PPPoE拨号双链路负载分担问题...

    在PPPoE拨号+静态IP双链路环境下我们有时会遇到有些网站无法打开,但是断掉其中一条链路后网站就可以打开了,这又什么原因呐?作为网络工程师经常会遇到用户双链路网络环境,对网络依赖性高的用户通常会采取 ...

  3. 水星pppoe连接服务器无响应,利用水星路由器系统日志解决PPPOE拨号故障

    如今,PPPOE拨号已经成为家庭用户最常见的宽带接入类型,很多家庭都拥有两台.三台或更多的电脑.下面学习啦小编将在水星路由器上以PPPOE拨号上网的常见故障介绍,希望对您有所帮助! 利用水星路由器系统 ...

  4. 一个账号多路由器拨号失败服务器无响应,PPPoE拨号失败 PPPoE拨号失败服务器无响应怎么办?...

    路由器一般有三种上网方式:1.宽带拨号上网:2.自动获得IP地址:3固定(静态)IP地址,路由器PPPoE拨号失败或者PPPoE拨号失败服务器无响应怎么办? 路由器上网方式 (1)检查WAN口.网线. ...

  5. ppoe拨号服务器没响应,pppoe拨号失败怎么办 pppoe拨号失败解决方法

    pppoe拨号失败怎么办 pppoe拨号失败解决方法 2020-12-18 17:19:46  来源:网络整理 扫码可以: 1.在手机上浏览 2.分享给微信好友或朋友圈 摘要: pppoe拨号失败解决 ...

  6. tp link拨号失败 服务器无响应,pppoe拨号失败解决方法_pppoe怎么设置

    描述 pppoe拨号失败解决方法 1.可能是ISP(网络服务提供商)服务器故障,如果是这样请直接致电ISP询问并解决问题. 2.确认输入的用户名和密码是否正确,是不是因为不小心开启了Caps Lock ...

  7. RouterOS(ROS)软路由PPPOE拨号上网配置指南(附授权镜像下载)

    本文将从零开始讲解Mikrotik RouterOS(ROS) PPPOE拨号上网配置,通过WinBox图形化操作,助力小白用户成功使用ROS进行上网,使用ROS内置的DNS缓存达到网页秒开的效果. ...

  8. 破解星空极速 用路由器上网破解PPPOE拨号***密码

    1.PPPOE拨号上网流程 下载 (41.9 KB) 2009-10-7 19:05 如上图,通常家庭拨号上网会有两种方式:一种就是左边的,从楼道交换机直接拉根网线到家中,将网线直接接到电脑上.另外一 ...

  9. 路由器如何设置pppoe拨号上网

    新购买的路由器如何设置,怎么自动拨号.怎么设置wifi.怎么修改默认登录名称与密码?成为很多人的困扰,甚至被蹭网,无奈原本就不通畅的宽带变得回归到n年前的龟速!怎么办? 路由器设置pppoe拨号上网的 ...

最新文章

  1. centos7数据库mysql+mariadb
  2. python基础练习(八)
  3. 数组与指针的艺术--深入探索c/c++数组与指针的奥秘
  4. 02_创建Git仓库,克隆仓库,git add,git commit,git push,git pull,同行冲突,不同行冲突的结局方案,git mergetool的使用
  5. 大连开发区中老年运动微信群_消暑!大连近郊最受欢迎的海滨浴场集合来啦
  6. 尼康G镜头与D镜头的差别
  7. Linux 监控命令之 vmstat
  8. Linux编译安装MySQL5.6及修改字符集
  9. zabbix 安装(yum)
  10. 冰点下载器手机版apk_冰点文库下载器安卓手机版
  11. 十、基于FPGA的PCIE协议介绍(一)
  12. php 公众号调起小程序,微信公众号怎么跳转到小程序 微信公众号跳转到小程序方法介绍...
  13. RPG游戏中造过的BUG
  14. 在龙芯电脑制作 debian 系统(MIPS)
  15. 频谱分析仪是什么东西 怎么去选择----TFN FMT350(3.1gHz)/FMT450(4.4gHz)/FMT650(6gHz) 系列频谱仪
  16. android版本低无法安装微信,解决低版本安卓4.4.4无法安装微信的问题
  17. Verilog学习笔记-——Verilog模块例化
  18. 【交换机】网络交换机的作用
  19. python用爬虫制作英汉词典
  20. 一分钟解决QT官网无法下载的问题

热门文章

  1. git的使用——reset
  2. 单片机做计算机乘法,基于单片机实现的四则运算计算器.DOC
  3. 五子棋 day5-2
  4. 图像处理的一些相关知识(Related knowledge for IQA)
  5. 相机照片大小设置_我应该为运动照片使用哪些相机设置?
  6. 《C/C++ 面试 100 例》(十一)标准输入加速
  7. Lammps模拟剪切作用下的位错滑移
  8. Windows11电脑丢失了数据该怎么恢复?
  9. Navicat 创建数据库
  10. 懒癌治疗仪 - 写在前面