"Sagar, Sanjeev" wrote:
> Big Thanks !
>
> My log file looks like below
Would be better with multiple sections, and only a few representative line
per...
> 2004-03-26 @ 00:00:01 [EMAIL PROTECTED] -- 10881 10864 hyb01
> :INFORMATIONAL
>
...
> Script/function sql_instance_ping_final started at Fri Mar 26 00:00:04 CST
> 2004 -- seconds -- 4:INFORMATIONAL
>
> Any idea on reseting %datastore will be highly appreciable.
Yes it will take an appreicable effort to come up with any ideas. What do you
want this script to do for you? Do you want to have all the log information in
memory so that you can compare between checks? In that case you will probably
want a ahs of hash references. The keys of the outer hash would probably be the
times of the checks The value for each key would be a reference to an anonymous
hash containing all of the status keys and their values for a given checktime.
You can make use of the file structure in deciding when to add one set of status
vlues to your ahs and start the next.
You know that:
Each check-time record starts with a series of lines, each of which starts with
a specifically formatted date and time string.
The end of the report is marked by a constant string;
Variable_name Value
This constant string is followed by the name-value pairs you seek to organize.
So clearly, the first date formatted string you encounter on each timecheck
should signal you to store the previous anonymous hash, and to get the date
information that will be the key of the next. Depending on whether you are
making use of the information contained in the header lines, you will process
them or not while watching for the constant string /^Variable_name Value$/
which will signal your program to start collecting the key-value pairs for the
current time-check.
Joseph
Somthing like this:
Greetings! E:\d_drive\perlStuff>perl -w
my %time_checks;
my $line = <DATA>;
while ($line) {
my $current_time;
if ($line =~ /^(\d{4}-\d{2}-\d{2} \@ \d{2}:\d{2}:\d{2})/) {
$current_time = $1;
}
$line = <DATA> until $line =~ /^Variable_name Value$/;
my $current_values = {};
$line = <DATA>;
until ($line =~ /^(\d{4}-\d{2}-\d{2} \@ \d{2}:\d{2}:\d{2})/) {
chomp $line;
last unless $line;
my ($key, $value) = split /\s+/, $line;
$current_values->{$key} = $value;
$line = <DATA>;
}
$time_checks{$current_time} = $current_values;
chomp $line;
}
foreach $time_check (sort keys %time_checks) {
print "\n\n$time_check:\n";
my $check_values = $time_checks{$time_check};
print " $_: $check_values->{$_}\n" foreach (keys %$check_values);
}
__DATA__
2004-03-26 @ 00:00:01 [EMAIL PROTECTED] -- 10881 10864 hyb01
:INFORMATIONAL
2004-03-26 @ 00:00:01 [EMAIL PROTECTED] -- 10881 10864 hyb01 Function
(up) returned (0) return code. -- seconds -- 1:INFORMATIONAL
Variable_name Value
Aborted_clients 5592
Aborted_connects 4
Bytes_received 500
Bytes_sent 5000
Com_admin_commands 0
Com_alter_table 27
Com_analyze 0
Com_backup_table 0
2004-03-26 @ 00:15:01 [EMAIL PROTECTED] -- 10881 10864 hyb01
:INFORMATIONAL
2004-03-26 @ 00:15:01 [EMAIL PROTECTED] -- 10881 10864 hyb01 Function
(up) returned (0) return code. -- seconds -- 1:INFORMATIONAL
Variable_name Value
Aborted_clients 5592
Aborted_connects 4
Bytes_received 2678
Bytes_sent 6935
Com_admin_commands 0
Com_alter_table 29
Com_analyze 0
Com_backup_table 0
2004-03-26 @ 00:30:01 [EMAIL PROTECTED] -- 10881 10864 hyb01
:INFORMATIONAL
2004-03-26 @ 00:30:01 [EMAIL PROTECTED] -- 10881 10864 hyb01 Function
(up) returned (0) return code. -- seconds -- 1:INFORMATIONAL
Variable_name Value
Aborted_clients 5592
Aborted_connects 4
Bytes_received 6023
Bytes_sent 10001
Com_admin_commands 0
Com_alter_table 15
Com_analyze 0
Com_backup_table 0
2004-03-26 @ 00:00:01:
Bytes_received: 500
Com_analyze: 0
Bytes_sent: 5000
Com_alter_table: 27
Com_backup_table: 0
Com_admin_commands: 0
Aborted_clients: 5592
Aborted_connects: 4
2004-03-26 @ 00:15:01:
Bytes_received: 2678
Com_analyze: 0
Bytes_sent: 6935
Com_alter_table: 29
Com_backup_table: 0
Com_admin_commands: 0
Aborted_clients: 5592
Aborted_connects: 4
2004-03-26 @ 00:30:01:
Bytes_received: 6023
Com_analyze: 0
Bytes_sent: 10001
Com_alter_table: 15
Com_backup_table: 0
Com_admin_commands: 0
Aborted_clients: 5592
Aborted_connects: 4
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>