in reply to Re: Subroutine to delete one file and copy one file to another
in thread Subroutine to delete one file and copy one file to another
And below are the errors:#!C:\Perl\bin\perl.exe use Win32; use IO::Handle; use File::Find; use strict; use warnings; use File::Copy qw(copy); ###################################################################### +############## #This script is created to put the servers in unplanned outage as part + of the tasks# #that are received to stop the monitoring on the servers #due to some maintenance activity on the servers. # # # #expect values 'on|off' ($SEC,$MIN,$HOUR, $DAY, $MON, $YEAR)= (localtime) [0..6]; $year=$YEAR+1900; $month=$MON+1; $day=$DAY; $date="$year\_$month\_$day"; $LOG="E:/Temp/inyrohs/maintenanceMode_$date.log"; my $tempfile="E:/Temp/inyrohs/temp/outagenodes_temp.txt"; my $serverlist="E:/Temp/INYROHS/serverlist.txt"; open( MYFILE, "<E:/Temp/INYROHS/serverlist.txt"); @outagenodes=<MYFILE>; close MYFILE; open ( MYTEMPLIST, "<E:/Temp/INYROHS/temp/outagenodes_temp.txt"); @tempnodes=<MYTEMPLIST>; close MYTEMPLIST; print "@outagenodes\n"; #Below subroutine call is to delete the temp file if already existing +so that the outage is not run on the previously entered servers. deleteTemp($tempfile,$serverlist); open (LOG,">> $LOG") or die "Can't open $LOG file: $!\n"; printf LOG ("\nTime is %02d:%02d:%02d.\nStarting the maintenance mode +process to turn $maintMode outages.\n\n", $HOUR, $MIN, $SEC); print "$date \n"; print "starting the process \n"; my $maintMode=$ARGV[0]; chomp($maintmode); print "maintMode: $maintMode:\n"; foreach $NODES (@tempnodes) { printLog("Node: $NODES, processing...\n"); if($maintMode =~ m/on/) { print "entered loop \n"; $cmd="ovownodeutil -outage_node -unplanned -disable_heartb +eat -delete_msgs -node_name $NODES -$maintMode "; print "$cmd\n"; system($cmd); print "done with command"; } elsif($maintMode=~ m/off/) { printLog("Putting the server $NODES in the outage.\n"); $cmd="ovownodeutil.cmd -outage_node -unplanned -disable_he +artbeat -delete_msgs -node_name $NODES -$maintMode"; #$cmdstopopcmona="ovdeploy -cmd "ovc -stop opcmona" -host +$NODES"; #$cmdstopopcle="ovdeploy -cmd "ovc -start opcle" -host $NO +DES"; #$cmdstartopcmona="ovdeploy -cmd "ovc -start opcmona" -hos +t $NODES"; #$cmdstartopcle="ovdeploy -cmd "ovc -start opcle" -host $N +ODES"; # $cmdstart="opcragt -start $NODES"; print "$cmd\n"; system($cmd); # print "$cmdstopopcmona\n"; # # system($cmdstopopcmona); # # print "$cmdstopopcle"; # system($cmdstopopcle); # print "$cmdstartopcle\n"; # system($cmdstartopcle); # #print "$cmdstart\n"; # system($cmd); # system($start); } } sub printLog { my ($logLine) = @_; chomp($logLine); $logLine=$logLine . "\n"; print "$logLine"; print LOG "$logLine"; } sub deletTemp { my ($delTemp,$serverlist)=@_; print "temp: $delTemp\n"; print "serv: $serverlist\n"; unlink $delTemp; copy($serverlist,$delTemp); }
E:\Temp\inyrohs>perl outage_nodes.pl on Possible unintended interpolation of @outagenodes in string at outage_ +nodes.pl line 48. Variable "$LOG" is not imported at outage_nodes.pl line 59. Global symbol "$SEC" requires explicit package name at outage_nodes.pl + line 20. Global symbol "$MIN" requires explicit package name at outage_nodes.pl + line 20. Global symbol "$HOUR" requires explicit package name at outage_nodes.p +l line 20. Global symbol "$DAY" requires explicit package name at outage_nodes.pl + line 20. Global symbol "$MON" requires explicit package name at outage_nodes.pl + line 20. Global symbol "$YEAR" requires explicit package name at outage_nodes.p +l line 20. Global symbol "$year" requires explicit package name at outage_nodes.p +l line 22. Global symbol "$YEAR" requires explicit package name at outage_nodes.p +l line 22. Global symbol "$month" requires explicit package name at outage_nodes. +pl line 23. Global symbol "$MON" requires explicit package name at outage_nodes.pl + line 23. Global symbol "$day" requires explicit package name at outage_nodes.pl + line 24. Global symbol "$DAY" requires explicit package name at outage_nodes.pl + line 24. Global symbol "$date" requires explicit package name at outage_nodes.p +l line 25. Global symbol "$year" requires explicit package name at outage_nodes.p +l line 25. Global symbol "$month" requires explicit package name at outage_nodes. +pl line 25. Global symbol "$day" requires explicit package name at outage_nodes.pl + line 25. Global symbol "$LOG" requires explicit package name at outage_nodes.pl + line 27. Global symbol "$date" requires explicit package name at outage_nodes.p +l line 27. Global symbol "@outagenodes" requires explicit package name at outage_ +nodes.pl line 37. Global symbol "@tempnodes" requires explicit package name at outage_no +des.pl line 44. Global symbol "@outagenodes" requires explicit package name at outage_ +nodes.pl line 48. Global symbol "$LOG" requires explicit package name at outage_nodes.pl + line 59. Global symbol "$LOG" requires explicit package name at outage_nodes.pl + line 59. Global symbol "$maintMode" requires explicit package name at outage_no +des.pl line 61. Global symbol "$HOUR" requires explicit package name at outage_nodes.p +l line 61. Global symbol "$MIN" requires explicit package name at outage_nodes.pl + line 61. Global symbol "$SEC" requires explicit package name at outage_nodes.pl + line 61. Global symbol "$date" requires explicit package name at outage_nodes.p +l line 63. Global symbol "$maintmode" requires explicit package name at outage_no +des.pl line 71. Global symbol "$NODES" requires explicit package name at outage_nodes. +pl line 76. Global symbol "@tempnodes" requires explicit package name at outage_no +des.pl line 76. Global symbol "$NODES" requires explicit package name at outage_nodes. +pl line 83. Global symbol "$cmd" requires explicit package name at outage_nodes.pl + line 95. Global symbol "$NODES" requires explicit package name at outage_nodes. +pl line 95. Global symbol "$cmd" requires explicit package name at outage_nodes.pl + line 97. Global symbol "$cmd" requires explicit package name at outage_nodes.pl + line 99. Global symbol "$NODES" requires explicit package name at outage_nodes. +pl line 112. Global symbol "$cmd" requires explicit package name at outage_nodes.pl + line 114. Global symbol "$NODES" requires explicit package name at outage_nodes. +pl line 114. Global symbol "$cmd" requires explicit package name at outage_nodes.pl + line 128. Global symbol "$cmd" requires explicit package name at outage_nodes.pl + line 131. Execution of outage_nodes.pl aborted due to compilation errors.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^3: Subroutine to delete one file and copy one file to another
by pme (Monsignor) on Jul 20, 2015 at 21:12 UTC | |
by ww (Archbishop) on Jul 21, 2015 at 02:38 UTC | |
by shroh (Acolyte) on Jul 20, 2015 at 21:46 UTC | |
by stevieb (Canon) on Jul 20, 2015 at 22:12 UTC | |
by soonix (Chancellor) on Jul 21, 2015 at 12:48 UTC |