一.简介

登录用户需要二次验证码进行验证

可以配合 监控用户登录,发送通知给企业微信/钉钉 来使用

脚本放到/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脚本 微信/钉钉验证登录服务器的更多相关文章

  1. sshpass 实现shell脚本直接加载密登录服务器

    主要命令:sshpass 这个命不是系统自带的,需要安装: # which sshpass/usr/bin/sshpass[root@666 tools]# rpm -qf /usr/bin/sshp ...

  2. Shell脚本实现SSH免密登录及批量配置管理

    本节索引 场景分析 ssh免密登录 pssh工具批量管理 SHELL自动化脚本 本篇总结 场景分析 作为一个运维工程师,不是每个人工作的环境都想阿里.腾讯那样,动不动就上亿的PV量,上万台服务器.我们 ...

  3. Shell脚本实现超简洁的在Linux服务器上安装nginx、resin、java、tomcat、redis等程序

    说明: 用平常的方式在Linux服务器上安装程序,需要下载安装包.进入安装包位置.给安装包文件赋予可执行权限.执行安装.设置环境变量--等等一系列复杂的操作.并且如果有关联也需要一个一个的挨着安装.耗 ...

  4. 将window的shell脚本通过ftp传输到Linux服务器后, shell脚本中执行时提示“没有那个文件或目录”的解决办法

    出现bad interpreter:No such file or directory的原因,是文件格式的问题.这个文件是在Windows下编写的.换行的方式与Unix不一样,但是在vim下面如果不S ...

  5. Shell脚本——显示系统上的登录用户数

    写一个脚本showlogged.sh,其用法格式为: showlogged.sh -v -c -h|--help 其中,-h选项只能单独使用,用于显示帮助信息:-c选项时,显示当前系统上登录的所有用户 ...

  6. shell脚本监控Linux系统的登录情况

    一.登录日志记录 vi /etc/profile 在最后面添加一行: echo "`who`" > /var/log/login.log 二.监控日志文件 #!/bin/ba ...

  7. 通过Shell脚本来创建批量服务器上的MySQL数据库账号

    1.项目背景 因监控需要,我们需要在既有的每个MySQL实例上创建一个账号.公司有数百台 MySQL 实例,如果手动登入来创建账号很麻烦,也不现实.所以,我们写了一个简单的shell脚本,用来创建批量 ...

  8. shell脚本 用户登录服务器发送钉钉提醒

    一.企业微信配置 1.获取AgentId(AppID).Secret .CropID.部门ID 创建一个企业微信应用获取到AgentId(AppID).Secret 2.获取CropID,点击 &qu ...

  9. 秘钥登录服务器执行shell脚本

    做自动化的时候,有时候避免不了要和服务器有互动,刚巧碰上一个项目,需要执行命令才能完成本次测试. 昨天遇到的是秘钥形式的,只有秘钥和用户名,百度找了许久也没有思路,(能账号密码登录服务器的还简单些), ...

随机推荐

  1. [Apache Doris] Apache Doris 元数据设计及DDL操作源码阅读

    元数据设计 如上图,Doris 的元数据主要存储4类数据: 用户数据信息.包括数据库.表的 Schema.分片信息等. 各类作业信息.如导入作业,Clone 作业.SchemaChange 作业等. ...

  2. 使用VSCode编写,发布cnblogs

    WriteCnBlog插件作者写的教程: https://www.cnblogs.com/caipeiyu/p/11774968.html

  3. [atARC128F]Game against Robot

    为了方便,下文中的$n$是原来的$\frac{n}{2}$ 当确定排列$\{p_{i}\}$后,将$a_{i}$按照$p_{i}$从大到小排序,那么机器人即会不断选第一个元素 考虑玩家最后选择的$n$ ...

  4. [bzoj1576]安全路径

    先建立最短路径树(即跑dij每一个点向更新他的点连边),考虑一个点的答案路径一定要走过且仅走过一条非树边,枚举非树边(x,y),对于一个点k,如果它在x~lca上(y~lca的路径上同理),那么答案可 ...

  5. [tc14634]ExtremeSpanningTrees

    保序回归论文题 要求某一个边集为原图的最小生成树,这等价于非树边比所在环(指树上)的所有边小,最大生成树类似 将这些大小关系的限制看作一张有向图,即若要求$w_{i}\le w_{j}$则连边$(i, ...

  6. java的String参数格式化

    String类的format()方法用于创建格式化的字符串以及连接多个字符串对象.熟悉C语言的同学应该记得C语言的sprintf()方法,两者有类似之处.format()方法有两种重载形式. form ...

  7. 数据库命令补全工具mycli

    一.安装 我的数据库安装的是win版本,安装python后,直接命令行: 1 pip install mycli 即可. 二.使用 进入命令行后输入: 1 mycli -u root -p 88888 ...

  8. 53-Linked List Cycle II

    Linked List Cycle II My Submissions QuestionEditorial Solution Total Accepted: 74093 Total Submissio ...

  9. SQL-增、删、改操作

    #查看表 select * from `竟企区域数据分析` #在表第一列新增名为"年月"的列alter table `竟企区域数据分析` add column 年月 varchar ...

  10. 8.7 进程间的通讯:管道、消息队列、共享内存、信号量、信号、Socket

    进程间的通讯 进程间为什么需要通讯? 共享数据.数据传输.消息通知.进程控制 进程间的通讯有哪些类型? 首先,联系前面讲过的知识,进程之间的用户地址空间是相互独立的,不能进行互相访问,但是,内核空间却 ...