前端有一个查询IP和对应人员的一个数据库,这个我没权限,故只能由他们提供模板,我来写后面,提供的模板格式为
工号|部门|姓名|计算机名|IP
现在需求是将夜间在线未关机人员扫描出来。
我的思路:
扫描所在IP段,然后比对IP,最后提取在线用户发送邮件给对应部门负责人核对
shell
#!/bin/bash #发送邮件人员 SH_MAILSEND='351937287@qq.com admin@iyunw.cn' #扫描IP段 IP='172.20.3.0/24 172.20.10.0/24 172.20.66.0/24' #获取每日的IP人员对应库 scp root@172.23.1.180:/tmp/accountlist.csv /tmp/ rm -f /tmp/tommy_list.csv rm /tmp/iplist.csv result=/tmp/sh_scanresult.txt date1=`date "+%Y-%m-%d %H:%M"` output=/tmp/ip.mail file=/tmp/iplist.csv nmap -sP $IP > /tmp/sh_scanresult.txt cat /tmp/sh_scanresult.txt |grep -oE '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+' > /tmp/sh_iplist.txt echo "$date1 Scan result" > $output while read line do info=`cat /tmp/accountlist.csv |grep -wr $line|awk -F "|" '{print $4","$1","$2","$3}'|head -n 1` echo $line,$info >> $file done < "/tmp/sh_iplist.txt" cat /tmp/iplist.csv |awk -F',' '$2 ~/[^"^$"]/{print $1"\t"$2"\t"$4" "$3"\t"$5}'>/tmp/tommy_list.csv #没有人也需要发送一封邮件"未扫描到未关机人员" if [ -s /tmp/tommy_list.csv ];then echo "未扫描到未关机人员">/tmp/tommy_list.csv fi mutt -s "$(date -d '1 day ago' +%F):SH 未关机用户" $SH_MAILSEND < /tmp/tommy_list.csv
评论区