Oracle 监听器日志文档虽不复杂,看起来却有点伤神,常留意的也就是用户请求登录时间,
IP,程序名称等信息,如果将它格式化输出看起来就明了多了.
#!/usr/bin/perl
use strict ;
my $hname="/app/oracle/product/8.1.7/network/log/listener.log" ;
my $line ;
open (FH, "<", $hname) ;
while ($line=<FH> )
{
if ($line =~ m#(^.*) /* /(CONNECT.*PROGRAM=(.*)/)/(HOST=(.*?)/).*HOST=([/d.]*)# )
{
printf ("%-15s %-20s %-25s %15s/n",$4,$3,$1,$2)
}
}
close FH ;
输出格式如下:
172.17.21.114 YYN-21114 07-12月-2006 14:47:11 C:/PROGRAM FILES/ERP SYSTEM/PLAN_APPLY.EXE
172.17.20.44 YYN-2044 07-12月-2006 14:47:13 C:/Program Files/serve_sys/otl_app.exe
172.17.20.175 YYN-2093 07-12月-2006 14:47:16 C:/Program Files/serve_sys/otl_app.exe
.......
....
格式化日志:
cat secure* |awk -F "from " '{print $2}' |awk '{print $1}' |sort |uniq >>ssh_ipaddress.list