AIXSPadmin
MIS
I am wondering why the following script is not checking the DayOfWeek variable that is set. Korn shell is my preferred method of scripting, but cannot use it in this case. The script is running and doing as needed, with the exception that it runs daily instead of only Monday (should the GetDoW check against DoW be using 'eq' instead of '=='?). Thanks, the script follows:
#!/usr/bin/perl
# load required modules
use strict;
use POSIX qw(setsid);
use POSIX qw(strftime);
# set constants
my $DoW = 'Mon';
my $Hour = '04';
# flush the buffer
$| = 1;
# daemonize the program
&daemonize;
# infinite loop
while(1) {
my $GetDoW = `date +%a`;
my $GetHour = `date +%H`;
if (($GetDoW == $DoW) && ($GetHour == $Hour)) {
system("/syslib/mail_space_report.ksh"
;
}
sleep(3600);
}
sub daemonize {
chdir '/' or die "Can't chdir to /: $!";
umask 0;
open STDIN, '/dev/null' or die "Can't read /dev/null: $!";
#open STDOUT, '/dev/null' or die "Can't write to /dev/null: $!";
open STDERR, '/dev/null' or die "Can't write to /dev/null: $!";
defined(my $pid = fork) or die "Can't fork: $!";
exit if $pid;
setsid or die "Can't start a new session: $!";
}
#!/usr/bin/perl
# load required modules
use strict;
use POSIX qw(setsid);
use POSIX qw(strftime);
# set constants
my $DoW = 'Mon';
my $Hour = '04';
# flush the buffer
$| = 1;
# daemonize the program
&daemonize;
# infinite loop
while(1) {
my $GetDoW = `date +%a`;
my $GetHour = `date +%H`;
if (($GetDoW == $DoW) && ($GetHour == $Hour)) {
system("/syslib/mail_space_report.ksh"
}
sleep(3600);
}
sub daemonize {
chdir '/' or die "Can't chdir to /: $!";
umask 0;
open STDIN, '/dev/null' or die "Can't read /dev/null: $!";
#open STDOUT, '/dev/null' or die "Can't write to /dev/null: $!";
open STDERR, '/dev/null' or die "Can't write to /dev/null: $!";
defined(my $pid = fork) or die "Can't fork: $!";
exit if $pid;
setsid or die "Can't start a new session: $!";
}