利用sed,awk,grep,nmap和blat统计未关机用户,并通过邮件通告

环境:
     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/  >

你可能感兴趣的:(windows,脚本,awk,关机,nmap)