环境:
1. AD DC:Win2003(hostname:AD.yourdomain.com) 2. Desktop:WinXP 3. AD域名和公司邮件域名相同,且主机名和邮件账户名相同(可视具体情况修改脚本)
工具:
1. nmap(带命令行网络扫描工具) 2. gawk for windows 3. sed for windows 4. grep for windows 5. blat(windows下命令行邮件发送工具)
1. 确保所有Winxp都能ping(关闭firewall或允许ping)
2. 安装以上工具并将对应路径添加到环境变量
3. 添加运行脚本hostsup.bat的任务计划(如:0点运行)
4. 脚本内容如下:
echo "###################^^^%DATE:~0,10%^^^####################" >>hostsup.log nmap -sP -R 10.10.19.225-250 -oG hostsup.log --append-output grep "^[^#]" hostsup.log|sed -e s/(//g;s/)//g;s/\.%yourdomain%/@%yourdomain%/g -n -e /%DATE:~0,10%/,$p|awk "{if($3!~/Status:/)print $3}" >tomailaddr
blat mailbody -tf tomailaddr -cf ccmailaddr -charset Gb2312
5. 脚本说明:
5.1 第1,2行命令通过工具nmap扫描域中(IP范围:10.10.19.225-250)在线的主机,以当天日期为分割线来记录日志 并保存到hostsup.log; 5.2 第3行命令通过工具sed、grep和awk从日志文件hostsup.log中提取在线主机名,并将其转换成邮件地址存储到文件 tomailaddr(注:%yourdomain%需换成你主机名中相应的字符串); 5.3 第4行命令通过工具blat发送邮件给未关机用户(文件tomailaddr存储收件人地址,文件ccmailaddr存储IT管理员地址 ,文件mailbody存储邮件内容);
6. 延伸:
这里只是起到抛砖引玉的作用,有兴趣的朋友可以利用nmap监视服务器的服务状态并生成xml/html报告,以及利用工具sed,awk等来分析日志,并通过blat来实现自动邮件告警! 工具下载: blat < http://www.blat.net/ > sed < http://gnuwin32.sourceforge.net/packages/sed.htm > awk < http://gnuwin32.sourceforge.net/packages/gawk.htm > grep < http://gnuwin32.sourceforge.net/packages/grep.htm > nmap < http://nmap.org/ >
转载于:https://blog.51cto.com/zhongq/812727