I created this script to restart a remote services, but before it does, the script will take all logs file in that specified directory and create a folder based on the time stamped and move the logs into them first before it restarting the remote service.
When I run the script on an NT/win2k server I get the following error message. What am I missing or not doing correctly? It seems like "mkdir" does not work remotely on an NT platform....I would also like an email sent everytime this script runs telling me the remote service have been started (I want to use mime::lite as the email module)....
**Error Message I get when running the script on Win2K *** D:\Perl\bin>perl -w service.pl 10.1.1.5 Alerter usage: posix /c <path> [<args>] error creating \\10.1.1.5\Weblogiclogs\02091812! at service.pl line 27 +. ********************************************************** use Win32::Service; my $filedir = "\\\\10.1.1.5\\Weblogiclogs"; my $IWlogs = "\\\\10.1.1.5\\Weblogiclogs\\*.log*"; ############################################################### # Get Local Time and Create folder based on local time stamped ############################################################### ($sec,$min,$hour,$mday,$mon,$year) = localtime(time); $mon = (1,2,3,4,5,6,7,8,9,10,11,12)[$mon]; if($mon < 10){$mon = "0" . $mon;} # add a leading zero to one-di +git months if($mday < 10){$mday = "0" . $mday;} # add a leading zero to one-di +git days if($hour < 10){$hour = "0" . $hour;} # add a leading zero to one-di +git hours if($min < 10){$min = "0" . $min;} # add a leading zero to one-di +git minutes if($sec < 10){$sec = "0" . $sec;} # add a leading zero to one-di +git seconds ################################################## # Create folder based on local time obtained above # - This is where the script is erroring out at.... ################################################## if(!-e $createDir) { @args = ( "mkdir", $createDir); system(@args) == 0 or die "error creating $createDir!"; } ########################################################## # move logs files to new created directory named after # the local time. ########################################################### @args = ( "move" , $IWlogs , $createDir ) ; system( @args ) == 0 or die "error moving $IWlogs!"; ############################### # Restart remote Service ############################### $i=0; @ARGV = ('-') unless @ARGV; while ($ARGV = shift) { $home[$i] = $ARGV; $i = $i + 1; } $restart = 1; if ($restart == 1) {&StartServ($home[0],$home[1])}; sub StartServ { $computername = shift; $servicename = shift; Win32::Service::GetStatus("\\\\".$computername, $servicename, \%st +atus); die "service is arealdy started, please check and try again...\n" +if ($status{CurrentState} == 4); Win32::Service::StartService("\\\\".$computername,$servicename) || + die "Can't start service\n"; print "Your desired service is now started...Have a nice day!\n"; }
Edit by dws to fix formatting
In reply to Please help - problem with script on Win2K by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |