Python执行SSH命令通用模板SSH连接状态探测以及钉钉推送

包含两个主要功能

  1. SshTest类,用于探测ssh是否可以连接以及执行ssh命令。
  2. PushDing,用于推送钉钉消息

本文包含以下三个部分

  1. python脚本正文
  2. 只探测ssh是否可连接样例模板。
  3. 探测ssh并执行操作系统命令以及推送钉钉消息样例模板。

1. SSH探测、钉钉推送通用Python类

下面脚本可直接使用,为通用模板

#!/bin/python3
# 本模块两个包含两个通用功能:
"""
1.SshTest类,用于探测ssh是否可以连接以及执行ssh命令。
2.PushDing,用于推送钉钉消息
"""

# python内置模块
import re
import datetime
import time
import os
import hmac
import hashlib
import urllib
import base64
import requests
import json
# paramiko需要下载模块
import paramiko

"""
一、SshTest类:
1.探测ssh是否可达
2.check_ssh_status方法,用于探测ssh是否可以连接,无法连接将报错,返回三个标志值:
    1.send_msg,显示主机、探测时间、以及ssh无法连接信息
    2.warn_type,告警类型,显示ssh无法连接
    3.sshstat,ssh是否可连接标志位,为boolean值,true为可连接,false为不可连接
3.exec_ssh_cmd用于ssh探测成功之后,执行ssh命令。
"""
class SshTest:
    def __init__(self, host, port, username, pwd):
        self.host = host
        self.port = port
        self.username = username
        self.pwd = pwd
        self.ssh = paramiko.SSHClient()
        self.ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
        self.timenow = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S') + ' '
        try:
            self.ssh.connect(self.host, self.port, self.username, self.pwd, timeout=5)
            self.sshinvalid = False
            # print(self.sshinvalid)
        except Exception as errmsg:
            self.sshinvalid = True
            self.errormsg = errmsg
            # print(self.sshinvalid)

    def check_ssh_status(self):
        if self.sshinvalid:
            send_msg = ('**告警时间:** ' + self.timenow  + ' \\\n **告警主机:** ' + str(self.host) + ' \\\n **告警内容:** ' + str(self.errormsg) + ' ')
            warn_type='主机SSH无法连接'
            sshstat = False
            # 如遇到无法ssh连接,报错详细信息
            # print(self.errormsg)
            print('ssh连接报错为: ' + str(self.errormsg)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值