shell脚本 微信/钉钉验证登录服务器
一.简介
登录用户需要二次验证码进行验证
可以配合 监控用户登录,发送通知给企业微信/钉钉 来使用
脚本放到/etc/profile.d/ 目录,登录的时候自动触发
二.微信脚本
1.需要修改CropID、Secret、 local int AppID 、local UserID 、local PartyID 五项内容
#!/bin/bash
#微信配置
CropID='ww022xxxxxxxx'
Secret='RauJ_-t-LxBhfEN7g1shxxxxxxxxxxxx'
APIURL=https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$CropID&corpsecret=$Secret
TOKEN=$(/usr/bin/curl -s -G $APIURL | awk -F\ '{print $10}')
POSTURL=https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=$TOKEN
function body() {
local int AppID=1000004
local UserID=xxxx
local PartyID=2
printf '{\n'
printf '\ttouser: '$UserID\,\n
printf '\ttoparty: '$PartyID\,\n
printf '\tmsgtype: text,\n'
printf '\tagentid: '$AppID\,\n
printf '\ttext: {\n'
printf '\t\tcontent: '$Msg\\n
printf '\t},\n'
printf '\tsafe:0\n'
printf '}\n'
}
Status=who am i | awk '{print $NF}' | sed 's/(//g' | sed 's/)//g'
if [ -n $Status ]; then
Msg=有用户上线请注意:\n主机名:hostname\n主机ip:ifconfig ens33 | grep inet | awk 'NR==1{ print $2}'\n登录用户:whoami\n地址来源:$Status
/usr/bin/curl -s --data-ascii $(body xxxxxx $2) $POSTURL 2>&1 > /dev/null
fi

2.钉钉脚本修改内容 Dingding_Url
#!/bin/bash
###############################
# 2020-3-26 #
# #
# 通过钉钉接口发送验证码二次验证 #
###############################
trap 1
read -p 请输入你的钉钉手机号: user
if [ ${#user} -ne 11 ]; then
echo 请出入有效手机号码
sleep 1
logout
fi
#钉钉配置
Dingding_Url=https://oapi.dingtalk.com/robot/send?access_token=
Status=who am i | awk '{print $NF}' | sed 's/(//g' | sed 's/)//g'
if [ -n $Status ]; then
RANDOM=$(date +%s)
echo $RANDOM >/tmp/pass.txt
PASS=tail -n 1 /tmp/pass.txt
Msg=你的验证码是:$PASS
curl ${Dingding_Url} -H 'Content-Type: application/json' -d
{
'msgtype': 'text',
'text': {'content': '${Msg}\n'},
'at': {'atMobiles': [ '${user}' ], 'isAtAll': false}
} > /dev/null 2>&1
trap 2
read -p 请输入验证码: code
if [ $code != xuewenlong ] && [ $code != $PASS ]; then
echo 验证码验证失败!!!
sleep 1
logout
else
echo Welcome to shvm01 System
fi
fi

shell脚本 微信/钉钉验证登录服务器的更多相关文章
- sshpass 实现shell脚本直接加载密登录服务器
主要命令:sshpass 这个命不是系统自带的,需要安装: # which sshpass/usr/bin/sshpass[root@666 tools]# rpm -qf /usr/bin/sshp ...
- Shell脚本实现SSH免密登录及批量配置管理
本节索引 场景分析 ssh免密登录 pssh工具批量管理 SHELL自动化脚本 本篇总结 场景分析 作为一个运维工程师,不是每个人工作的环境都想阿里.腾讯那样,动不动就上亿的PV量,上万台服务器.我们 ...
- Shell脚本实现超简洁的在Linux服务器上安装nginx、resin、java、tomcat、redis等程序
说明: 用平常的方式在Linux服务器上安装程序,需要下载安装包.进入安装包位置.给安装包文件赋予可执行权限.执行安装.设置环境变量--等等一系列复杂的操作.并且如果有关联也需要一个一个的挨着安装.耗 ...
- 将window的shell脚本通过ftp传输到Linux服务器后, shell脚本中执行时提示“没有那个文件或目录”的解决办法
出现bad interpreter:No such file or directory的原因,是文件格式的问题.这个文件是在Windows下编写的.换行的方式与Unix不一样,但是在vim下面如果不S ...
- Shell脚本——显示系统上的登录用户数
写一个脚本showlogged.sh,其用法格式为: showlogged.sh -v -c -h|--help 其中,-h选项只能单独使用,用于显示帮助信息:-c选项时,显示当前系统上登录的所有用户 ...
- shell脚本监控Linux系统的登录情况
一.登录日志记录 vi /etc/profile 在最后面添加一行: echo "`who`" > /var/log/login.log 二.监控日志文件 #!/bin/ba ...
- 通过Shell脚本来创建批量服务器上的MySQL数据库账号
1.项目背景 因监控需要,我们需要在既有的每个MySQL实例上创建一个账号.公司有数百台 MySQL 实例,如果手动登入来创建账号很麻烦,也不现实.所以,我们写了一个简单的shell脚本,用来创建批量 ...
- shell脚本 用户登录服务器发送钉钉提醒
一.企业微信配置 1.获取AgentId(AppID).Secret .CropID.部门ID 创建一个企业微信应用获取到AgentId(AppID).Secret 2.获取CropID,点击 &qu ...
- 秘钥登录服务器执行shell脚本
做自动化的时候,有时候避免不了要和服务器有互动,刚巧碰上一个项目,需要执行命令才能完成本次测试. 昨天遇到的是秘钥形式的,只有秘钥和用户名,百度找了许久也没有思路,(能账号密码登录服务器的还简单些), ...
随机推荐
- Eclipse使用JDBC方式连接SQLServer2008
JDBC_连接数据库一.配置 (一) 通过SQL Server配置管理器配置相关部分: 右键点击,启动tcp/ip协议右键点击属性查看自己的TCP端口号,记住,后面会用到右键点击SQL Server ...
- 洛谷 P5233 - [JSOI2012]爱之项链(Polya 定理+递推)
洛谷题面传送门 首先很明显题目暗示我们先求出符合条件的戒指数量,再计算出由这些戒指能够构成的项链的个数,因此考虑分别计算它们.首先是计算符合条件的戒指数量,题目中"可以通过旋转重合的戒指视作 ...
- 洛谷 P3994 高速公路(斜率优化)
题目链接 题意:给出一棵树,\(1\) 号点为根,边上有边权. 每个点有两个参数 \(p_i,q_i\) 如果你想从 \(i\) 号点到与其距离为 \(d\) 的 \(j\) 号点,那么你需花费 \( ...
- Codeforces 1392H - ZS Shuffles Cards(DP+打表找规律)
Codeforces 题面传送门 & 洛谷题面传送门 真·两天前刚做过这场的 I 题,今天模拟赛就考了这场的 H 题,我怕不是预言带师 提供一种奇怪的做法,来自于同机房神仙们,该做法不需要 M ...
- 洛谷 P4621 - [COCI2012-2013#6] BAKTERIJE(exCRT)
洛谷题面传送门 发篇正常点的题解. 首先对于这样的题暴力枚举肯定是不行的,因为最小时间显然可能达到 \((4nm)^5\approx 10^{20}\),就算数据很难卡到这个上界,构造出一些使你暴力超 ...
- 配置GitHub和 Gitee共存环境
配置GitHub 和Gitee共存环境 前言 Git共有三个级别的config文件,分别是system.global和local 在当前环境中,分别对应 %GitPath%\mingw64\etc\g ...
- 试了下GoAsm
在VC里我们: #include <windows.h> DWORD dwNumberOfBytesWritten; int main() { HANDLE hStdOut = GetSt ...
- acid, acknowledge, acquaint
acid sulphuric|hydrochloric|nitric|carbolic|citric|lactic|nucleic|amino acid: 硫|盐|硝|碳|柠檬|乳|核|氨基酸 王水是 ...
- day32 HTML
day32 HTML 什么是前端 只要是跟用户打交道的界面都可以称之为前端 # eg:电脑界面, 手机界面,平板界面, 什么是后端? eg:python, java,php,go, 不跟用户直接打交道 ...
- 百度 IP 查询
查询 IP 地址以及百度爬虫 IP 我们如果要查询 IP 地址,互联网上有很多提供IP查询服务的网站,我这里总结和归纳如下: 国内提供 IP 查询的网站: IP138 IPIP,提供 IP 详细信息, ...