print "The Perl Script does the User health check and system health check...\n";
print "---------------------------------------------------------------------\n";
# use strict;
my($OS);
$OS = $^O;
# need to test @ARGV before GetOptions shifts it
if (@ARGV == 0) {
print "\nNo options provided, using defaults (use -h to view options)\n";
}
#GetOptions( 'h|help' => \$_help
# ,'u|userdata' => \$_userdata
# ,'s|systemdata' => \$_systemdata
# ,'a|authresponsecode' => \$_authresponsecode
# ,'o|outpur_dir' => \$_output_dir);
#if( $_help ) {
# printUsage(); # automatically exits the program
#}
use Getopt::Std;
##############################################################################
# Print the usage info and automatically exit
##############################################################################
sub printUsage() {
print "\n\nUsage:";
print "\n perl MSLogStat.pl [options] [logfile1] [logfile2] ... [logfile(n)]";
print "\n\nOptions:";
print "\n -h * display usage help";
print "\n -o * redirect the output to a directory";
print "\n -u * display user related data";
print "\n -a * display auth response codes";
print "\n -s * output only system related data";
print "\n";
exit;
}
##############################################################################
# Print the authresponsecode
##############################################################################
sub authResponseCode () {
print "AAFW_AUTH_SUCCESS = 0";
print "AAFW_AUTH_MORESTEPS = 1";
print "AAFW_AUTH_ID_NOT_FOUND = 2";
print "AAFW_AUTH_INVALID_CREDENTIAL = 3";
print "AAFW_AUTH_ACCOUNT_EXPIRED = 4";
print "AAFW_AUTH_ACCOUNT_INACTIVE = 5";
print "AAFW_AUTH_ATTEMPTS_EXHAUSTED = 6";
print "AAFW_AUTH_TOKEN_EXPIRED = 7";
print "AAFW_AUTH_CHALLENGE_EXPIRED = 8";
print "AAFW_AUTH_INVALID_REQUEST = 9";
print "AAFW_AUTH_CRED_REISSUED = 10";
print "AAFW_AUTH_INTERNAL_ERROR = 11";
print "AAFW_AUTH_UNSUPPORTED_MECH = 12";
print "AAFW_AUTH_LAST = 13";
}
# redirect output to a directory:
if( $_output_dir ) {
# does this directory already exist?
if (! -e $_output_dir) {
if( $OS =~ "Win32" ) {
`mkdir $_output_dir`;
}
else
{
`mkdir -p $_output_dir`;
}
}
if (! -e $_output_dir) {
die "Failed to create output directory $_output_dir\n";
}
}
if( $_authresponsecode ) {
print "Printing the Auth Response Codes";
authresponsecode();
}
sub userData() {
#$LOG = $_logfile_name;
$username=$2;
open($LOG,"logfile.txt") or die "\nUnable to open log file:\n";
@stock = <$LOG>;
@matches = (grep(/$username/, @stock));
print @matches;
}
my $opt = "hu:sao";
my %options;
getopts( $opt , \%options );
printUsage() if defined $options{h} ;
authResponseCode() if defined $options{a} ;
userData() if defined $options{u} ;