侧边栏壁纸
博主头像
爱运维 博主等级

行动起来,活在当下

  • 累计撰写 197 篇文章
  • 累计创建 143 个标签
  • 累计收到 21 条评论

目 录CONTENT

文章目录

公司用扫描夜间电脑未关机人员shell

Administrator
2017-02-06 / 0 评论 / 0 点赞 / 2 阅读 / 0 字

前端有一个查询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


0

评论区