易班自动报平安+钉钉机器人消息提醒

(一)声明

        本文仅供学习交流使用,如有发热、感冒、咳嗽请及时根据当地yiqing防控办法及时上报

(二)需求

        首先,我双手支持和配合学校相关yiqing防控政策。

其次,每天重复劳动让我们软件专业情何以堪。说干就干,自己动手,丰衣足食~

(三)准备工作

    ①python的安装,下方链接下载python3.0以上版本Download Python | Python.orghttps://www.python.org/downloads/     

    ② selenium 和requests库安装

        打开命令行cmd,直接使用 pip 安装命令:

pip install selenium
pip install requests

    ③CHROMEDRIVER 下载安装

        要下载与自己所安装 chrome 浏览器版本对应的 Chromedriver 版本,因此首先查看浏览器版本,可以直接进入设置→关于 Chrome,也可以在浏览器地址栏中输入:chrome://version 查看。我的 Chrome 版本号为:99.0.4844.51,因此下载最新的99.0.4844.51的版本就行。

Chromedriver 下载地址:

1、官方下载有时候可能进不去http://chromedriver.storage.googleapis.com/index.htmlhttps://chromedriver.storage.googleapis.com/index.html

2、国内淘宝镜像CNPM Binaries Mirrorhttps://npm.taobao.org/mirrors/chromedriver/

 

    选择自己对应的系统版本

Chromedriver 安装:

Windows 下解压安装包得到 chromedriver.exe 文件,其实现在就已经可以使用了,不过每次使用时要告诉程序 chromedriver.exe 的具体路径;比如:(放在当前python文件的同一目录下)

但是为了以后使用方便,我们干脆一劳永逸,加入环境变量里:

把 chromedriver.exe 放到 chrome 的安装路径下(我的是C:\Users\17965\AppData\Local\Google\Chrome\Application)

并复制当前路径(C:自己的\Local\Google\Chrome\Application)添加到环境变量中,

在 cmd 命令窗口下输入 chromedriver 验证是否 ok

      ④钉钉机器人消息提醒设置(如果不需要可以省略)

        创建一个钉钉群聊进入设置,配置一个机器人如下步骤:

        

设置完了以后要保存好webhook地址和图中第五部的密钥

 

 (四)代码部分

没有钉钉消息提醒的版本

#导入依赖库
import time
from selenium import webdriver

nam=['账号一','账号二']
password=['密码一','密码二']

def work(names,passwords):
	try:
		# 打开浏览器,进入易班第三方登录
		browser = webdriver.Chrome()
		#获取登录网站这里以嘉职打卡网站为例
		browser.get('https://oauth.yiban.cn/code/html?client_id=661a2f7bfd12f200&redirect_uri=http://newca.jxvtc.edu.cn/oauth/login/oAuth&state=')
		#输入账号
		browser.find_element_by_id("oauth_uname_w").send_keys(names)
		#输入密码
		browser.find_element_by_id("oauth_upwd_w").send_keys(passwords)
		time.sleep(3)
		#点击登录
		browser.find_element_by_class_name("oauth_check_login").click()
		#线程强制停5秒等网页加载
		time.sleep(5)
		# 点击否  获取要点击元素的相对路径
		browser.find_element_by_xpath("iv/div[2]/div/div/span[2]").click()
		time.sleep(2)
		#点击提交
		browser.find_element_by_xpath("html/bodyv[1]/div[1]").click()
		time.sleep(5)
		# 退出浏览器
		# browser.quit()
		print(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())+": Clock Success!")
	except:
		print(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())+": Clock Fild!")
	
#循环遍历用户
for i in range(2):
		names=nam[i]
		passwords=password[i]
		work(names,passwords)

 有钉钉消息提醒的版本


#导入依赖库
import time
from selenium import webdriver
import hmac
import hashlib
import base64
import urllib.parse
import requests
import json

rename=['THE_K','牛马']
nam=['账号一','账号二']
password=['密码一','密码二']
#定义数据类型
timestamp = str(round(time.time() * 1000))
#这里填自己机器人miyao
s删除e文字cret = 'miyao'
secret_enc = secret.encode('utf-8')
string_to_sign = '{}\n{}'.format(timestamp, secret)
string_to_sign_enc = string_to_sign.encode('utf-8')
hmac_code = hmac.new(secret_enc, string_to_sign_enc, digestmod=hashlib.sha256).digest()
sign = urllib.parse.quote(base64.b64encode(hmac_code))

#定义数据类型
headers={'Content-Type': 'application/json'} 
#填自己的钉钉机器人webhook
webhook = 'https://oapi.dingtalk.com/robot/send?access_token=c27a4913978ea122c35&timestamp='+timestamp+"&sign="+sign
def work(names,passwords,renames):
	try:
		# 打开浏览器,进入易班第三方登录
		browser = webdriver.Chrome()
		#获取登录网站这里以嘉职打卡网站为例
		browser.get('https://oauth.yiban.cn/code/html?client_id=661a2f7bfd12f200&redirect_uri=http://newca.jxvtc.edu.cn/oauth/login/oAuth&state=627c77785b8c2ec6980f2cd86cfd33cb')
		#输入账号
		browser.find_element_by_id("oauth_uname_w").send_keys(names)
		#输入密码
		browser.find_element_by_id("oauth_upwd_w").send_keys(passwords)
		time.sleep(3)
		#点击登录
		browser.find_element_by_class_name("oauth_check_login").click()
		#线程强制停5秒等网页加载
		time.sleep(5)
		# 点击否  获取要点击元素的相对路径
		browser.find_element_by_xpath("iv/div[2]/div/div/span[2]").click()
		time.sleep(2)
		#点击提交
		browser.find_element_by_xpath("html/bodyv[1]/div[1]").click()
		time.sleep(5)
		# 退出浏览器
		# browser.quit()
		print(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())+": Clock Success!")
		x=time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())
		data = {
    		"msgtype": "text",
    		"text": {"content": x+"用户"+renames+"  "+'打卡成功'},
    		"isAtAll": True}
		res = requests.post(webhook, data=json.dumps(data), headers=headers)   #发送post请求
		print(res.text)
	except:
		print(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())+": Clock Fild!")
		x=time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())
		data1 = {
    		"msgtype": "text",
    		"text": {"content": x+"用户"+renames+"  "+'打卡失败请手动打卡'},
    		"isAtAll": True}
		res = requests.post(webhook, data=json.dumps(data1), headers=headers)   #发送post请求
		print(res.text)
#循环每个用户
for i in range(10):
		renames=rename[i]
		names=nam[i]
		passwords=password[i]
		work(names,passwords,renames)

 (五)定时部分

        可以利用windows定时任务,不过电脑要开机才会执行,最好是有个服务器。

 

 

 

 

好的,下面是Shell脚本+钉钉机器人实现服务及服务器监控告警的步骤: 1. 创建一个Shell脚本,用于监控服务器或服务的运行状态,比如检查CPU、内存、硬盘使用情况、网络连接等。 2. 在Shell脚本中,使用curl命令调用钉钉机器人接口,将告警信息发送到指定的钉钉群中。比如: ``` #!/bin/bash # 获取CPU使用率 cpu_usage=$(top -b -n1 | grep "Cpu(s)" | awk '{print $2+$4}') # 获取内存使用率 mem_usage=$(free | awk '/Mem/{printf("%.2f"), $3/$2*100}') # 获取硬盘使用率 disk_usage=$(df -h | awk '$NF=="/"{printf "%s", $5}') # 获取网络连接数 net_conn=$(netstat -an | grep ESTABLISHED | wc -l) # 配置钉钉机器人URL和access_token url="https://oapi.dingtalk.com/robot/send?access_token=your_access_token" # 组装告警消息 msg="服务器告警:\nCPU使用率:${cpu_usage}%\n内存使用率:${mem_usage}%\n硬盘使用率:${disk_usage}\n当前连接数:${net_conn}" # 发送告警消息钉钉群 curl -H "Content-Type: application/json" -d "{\"msgtype\": \"text\", \"text\": {\"content\": \"${msg}\"}}" ${url} ``` 3. 在服务器上设置定时任务,定期执行Shell脚本,比如每5分钟执行一次。可以使用crontab命令设置定时任务,比如: ``` */5 * * * * /path/to/your/script.sh ``` 4. 在钉钉群中添加机器人,并获取机器人的access_token。 5. 将access_token替换到Shell脚本中的url参数中,然后保存Shell脚本。 6. 等待定时任务执行,当服务器或服务的运行状态异常时,Shell脚本会自动发送告警消息钉钉群中。 以上就是使用Shell脚本+钉钉机器人实现服务及服务器监控告警的步骤。通过这种方式,可以及时发现服务器或服务的运行异常,避免出现更大的问题。
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值