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} ;