06-30-2004
Thanks!
Again - it could be the parsing logic. I still am trying to figure out /understand Perl itself. Here is some code. Maybe I will break it up and give you a little at a time.
my $date = $ARGV[0];
shift @ARGV;
my $errfile = "/radius/stats/errors.$date";
my $logfile = "/radius/log/local4.$date";
my $msgfile = "/radius/stats/log_msg.$date";
my $statsfile = "/radius/stats/stats.$date";
my $regfile = "/radius/stats/regid.$date";
my $ldapfile = "/radius/stats/ldap.$date";
my ( $host, $ip, $key, $nas, $reject, $server, $service, $user );
my ( %err, %nas, %regid, %stats );
$regid{'legacy'}{'accepts'}{'west'} = 0;
$regid{'legacy'}{'accepts'}{'central'} = 0;
$regid{'legacy'}{'accepts'}{'north'} = 0;
$regid{'legacy'}{'accepts'}{'northeast'} = 0;
$regid{'legacy'}{'rejects'}{'west'} = 0;
$regid{'legacy'}{'rejects'}{'central'} = 0;
$regid{'legacy'}{'rejects'}{'north'} = 0;
$regid{'legacy'}{'rejects'}{'northeast'} = 0;
#open LOG, "<$logfile" or die "$! : Unable to open $logfile for reading...\n";
open MSG, ">$msgfile" or die "Unable to open $msgfile for writing...\n";
while (defined($_ = <>)) {
if (/^\S+\s+\S+\s+\S+ (\S+?)\.\S+ .+ Protocol: Request from (\S+?) .+$/) {
$host = $1;
$nas = $2;
if ($nas =~ /^bras|^rback|^sms/) {
$service = 'adsl';
}
else {
$service = 'dial';
}
$nas{$service}{$nas}++;
if (/User (\S+) accepted $/) {
$stats{$host}{$service}{'attempts'}++;
$stats{$host}{$service}{'accepts'}++;
$user = $1;
if ($user =~ /^sbcyahooreg\@sbcglobal\.net$/i) {
if ($host =~ /anhmca|irvnca|lsanca|pltnca|snfcca|sntcca/) {
$regid{'sbcy'}{'accepts'}{'west'}++;
}
elsif ($host =~ /hstntx|kscymo|rcsntx/) {
$regid{'sbcy'}{'accepts'}{'central'}++;
}
elsif ($host =~ /chcgil|ipltin|klmzmi|milwwi|sfldmi|wotnoh/) {
$regid{'sbcy'}{'accepts'}{'north'}++;
}
elsif ($host =~ /mrdnct/) {
$regid{'sbcy'}{'accepts'}{'northeast'}++;
}
else {
$regid{'sbcy'}{'accepts'}{'unknown'}++;
}
} elsif ($user =~ /^dslreguser\@\S+$|^dslreguser$/i) {
if ($host =~ /anhmca|irvnca|lsanca|pltnca|snfcca|sntcca/) {
$regid{'legacy'}{'accepts'}{'west'}++;
}
elsif ($host =~ /hstntx|kscymo|rcsntx/) {
$regid{'legacy'}{'accepts'}{'central'}++;
}
elsif ($host =~ /chcgil|ipltin|klmzmi|milwwi|sfldmi|wotnoh/) {
$regid{'legacy'}{'accepts'}{'north'}++;
}
elsif ($host =~ /mrdnct/) {
$regid{'legacy'}{'accepts'}{'northeast'}++;
}
else {
$regid{'legacy'}{'accepts'}{'unknown'}++;
}
}
}
Do you see anything that may cause my problem ?
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
Where can i find solid information about programming in Perl?
Thank you in advance!!!:) (5 Replies)
Discussion started by: SolidSnake
5 Replies
2. Shell Programming and Scripting
When i run my perl/tk script, a perl window pops up behind the GUI window,, can this be hidden????
Also, can the Icon be changed, the Tk icon in every window??? (1 Reply)
Discussion started by: perleo
1 Replies
3. Shell Programming and Scripting
If I use 2 system commands in a script, will one finish before the next one starts? or will it start the first and the second at the same time?
i.e.
system("ps | grep rminer");
system("ls -al | grep 431"); (1 Reply)
Discussion started by: BG_JrAdmin
1 Replies
4. Shell Programming and Scripting
Hello,
pkzipc of a certain zip file yeilds the following in shell
PKZIP(R) Version 6.0 FAST! Compression Utility for AIX
Copyright 1989-2002 PKWARE Inc. All Rights Reserved. Registered Version
PKZIP Reg. U.S. Pat. and Tm. Off. Patent No. 5,051,745
Viewing .ZIP: test.zip
Length... (13 Replies)
Discussion started by: jerardfjay
13 Replies
5. Shell Programming and Scripting
I copy and paste from the book but this thing is not working.
I cannot figure out what is wrong with myline 9.. can someone please tell me
# cat ./sort4.pl
#!/usr/bin/perl -w
use strict;
use warnings;
my $input = shift;
my $output = shift;
open(IN, '<', $input) or die... (4 Replies)
Discussion started by: hankooknara
4 Replies
6. Shell Programming and Scripting
Below program, I do not get why item I am looking for is , instead of .
When I do $#text, i get the right value for $value1, but when I do , i get somsething4, instead of
somsethingxxxxxxxxxxxxxxxxxxx(which is what I am looking for.
when I do , I get empty.. why? what did I do wrong? can you... (2 Replies)
Discussion started by: hankooknara
2 Replies
7. Shell Programming and Scripting
I fail to see how below answer is 1? can someone explain this for me?
DB<3> $string = "The cat sat on the mat";
DB<4> $animal = ($string =~ m/The (.*) sat/);
DB<5> print $animal;
1 (2 Replies)
Discussion started by: hankooknara
2 Replies
8. Shell Programming and Scripting
I have a question regarding bulding a hash from a file which has below pattern
I thought I could write something like this but clearly my syntax is way off
$/ = "\n\n";
$" = "\n";
open(FILE, file1) || die;
my %keymaster = ( );
while (<FILE>) {
my $topinfo =~... (5 Replies)
Discussion started by: hankooknara
5 Replies
9. Shell Programming and Scripting
I am reading a file in perl script .. during the debug the $linein value is :
linein : +ASM1,sys,||¬ |3Æqúoü;”ט||
from this line I am getting the tmepuser and password from above :
($tmpuser, $pwd) = ($linein =~ /^$server\s*,\s*(+)\s*,\|\|(.+)\|\|/sm);
I am getting $tmpuser and... (2 Replies)
Discussion started by: talashil
2 Replies
10. Shell Programming and Scripting
Hello everybody, I am new at the forum and a total newbie when it comes to Unix.
I am trying to see how I can add the ability to kill a user's processes?
I want to add this to my Shel Script Add the code/process into a subroutine.
Also, I would like to use an array to store the list... (0 Replies)
Discussion started by: kinelisch
0 Replies
LEARN ABOUT DEBIAN
battery-graph
BATTERY-GRAPH(1) General Commands Manual BATTERY-GRAPH(1)
NAME
battery-graph - Show a graph of the battery charge
SYNOPSIS
battery-graph [options] [files...]
DESCRIPTION
Show a graph of the battery charge over time.
The files given are assumed to contain battery statistics in the battery-stats(5) format. If no files are specified, the default log files
will be used.
The options can be used for displaying a different interval. An interval is defined in terms of a from timestamp, a to timestamp and a
duration. By specifying any two, the third will be calculated automatically. A missing duration will be defaulted to 3 hours.
OPTIONS
These programs follow the usual GNU command line syntax, with long options starting with two dashes (`-').
-g geometry, --geometry geometry
Sets the X Windows geometry of the graph. This disables text mode. See X(7) for how to specify the geometry.
-D display, --display display
Shows the graph on the given display. The same effect can be achived by setting the DISPLAY environment variable. This disables text
mode. See X(7) for valid values.
--title string
Sets the title of the graph window. By default this will be "Battery Graph". If this is set to the empty string, gnuplot(1) will be
allowed set the window title - this can be useful if you want your ~/.Xdefaults to take effect for this.
-f date, --from date
Specifies the start date/time for the graph. This accepts exactly the same date/time specifications as the date (1) command - see
examples below or the Texinfo manual for date for details.
-t date, --to date
Specifies the ending date/time for the graph. This accepts exactly the same date/time specifications as the date (1) command - see
examples below or the Texinfo manual for date for details.
-s date, --since date
Shorthand for --from date --to now
-d duration, --duration duration
Specifies the duration for the graph. This can be given in units of seconds, hours, days or weeks by suffixing the number with 's'
(seconds), 'm' (minutes), 'h' (hours), 'd' (days) or 'w' (weeks).
Units cannot be combined - e.g. '1d6h' will not be valid, whereas '30h' is OK. If no unit is specified, minutes will be assumed.
--text Shows the graph in text mode on stdout. The resulting size of the graph is determined by the values of the environment variables.
LINES and COLUMNS (failing that, the output from tput will be used). This is the default when the environment variable DISPLAY is
not set.
EXAMPLES
Show the last 2 hours:
$ battery-graph --duration 2h
Show the time since mid day:
$ battery-graph --from 12:00 --to now
or
$ battery-graph --since 12:00
Show the hour before last:
$ battery-graph --from '2 hours ago' --duration 1h
Show the 6 hours after noon:
$ battery-graph --from 12:00 --duration 6h
or
$ battery-graph --from 12:00 --to 18:00
Show the last 6 hours
$ battery-graph --from '6 hours ago'
or
$ battery-graph --since '6 hours ago'
Show the last 30 minutes in text mode:
$ battery-graph --duration 30 --text
Show statistics for Tuesday last week
$ battery-graph --duration 24h --from 'tuesday last week'
or
$ battery-graph --duration 1d --from 'tuesday last week'
Prove that the future hasn't happened yet:
$ battery-graph --from yesterday --to tomorrow
Another way of wasting CPU cycles:
$ battery-graph /dev/null
EXIT STATUS
battery-graph depends on gnuplot (1) to give the correct exit status.
FILES
If no files are given on the command line, batter-graph reads from /var/log/battery-stats
ENVIRONMENT
DISPLAY
If this variable is not set, --text will be defaulted.
LINES / COLUMNS
Determines the size of the graph in text mode.
DIAGNOSTICS
If there are no statistics available for the period chosen, an empty graph will result.
NOTES
There is no requirement for the from time to be earlier than the to time - if so, the X axis will be reversed. Similar results can be
achieved using a negative duration.
Also: battery-stat is quite happy to list statistics in the future; stupid, but obedient.
AUTHOR
This manual page was written by Karl E. Jorgensen <karl@jorgensen.com>, for the Debian GNU/Linux system (but may be used by others).
SEE ALSO
battery-stats (5),
date (1),
battery-stats-collector (8)
Newer versions of this program may (or may not) be available at http://karl.jorgensen.com/battery-stats
September 22, 2002 BATTERY-GRAPH(1)