Help is needed. I've encountered errors as follows
Syntax error in file /home/common/bin/NEL_MailHouseKeeper.pl at line 3, next 2 tokens "my $PATH "
Syntax error in file /home/common/bin/NEL_MailHouseKeeper.pl at line 122, next 2 tokens "my $FLAG_PRINT "
Excution of /home/common/bin/NEL_MailHouseKeeper.pl aborted due to compilation errors.
#!/usr/contrib/bin/perl
my $PATH = "/var/mail";
my $SHOWPATH = "/usr/bin/pwd";
my $RENAME = "/usr/bin/mv";
my $SWITCHPATH = "/usr/bin/cd";
my $COPY = "/usr/bin/cp";
my $DELETE = "/usr/bin/rm";
my $GZIP = "/usr/contrib/bin/gzip";
my $DATE = `/usr/bin/date '+%d_%b_%Y'`;
my $SENDMAIL = "/sbin/init.d/sendmail";
my $SLEEP = "/usr/bin/sleep";
my $MAILER = "/usr/bin/mailx";
my $EMAIL_SUBJECT = "";
my $EMAIL_C755 = "c755mnt";
my $EMAIL_PASS = "/home/common/email/EMAIL_MAIL_HOUSEKEEPER_PASS";
my $EMAIL_FAIL = "/home/common/email/EMAIL_MAIL_HOUSEKEEPER_FAIL";
my $EMAIL_ABORT = "/home/common/email/EMAIL_MAIL_HOUSEKEEPER_ABORT";
my $RETURN = 0;
my $CHECKBIT => 0;
my $BASEFILE = $ARGV[0];
my $DUPFILE = $ARGV[0]."_Copy";
my $TEMPFILE = $BASEFILE."_".${DATE};
my $TEMPFILE2 = $BASEFILE."_tmp";
my $LINE_BUFFER = "";
my $BUFFER = "";
my $TOTAL_MAILS = 0;
my $MAILS_TO_ARCHIVE = 0;
my $THRESHOLD = 10;
my $COUNTER = 0;
#(0) <<START>>
my $date = `/usr/bin/date`;
print "Starting NEL_MAILHOUSEKEEPER script at $date \n";
#(1) Stop sendmail
$RETURN = system "$SENDMAIL stop";
if ($RETURN == $CHECKBIT)
{
print "STEP 1: sendmail is stopped successfully. \n";
}
else
{
print "STEP 1: sendmail cannot be stopped ! \n";
print "The task is aborted ! \n";
$date = `/usr/bin/date`;
print "Exiting at $date !!! \n";
exit;
}
#(2) Goto working directory
$RETURN = system "$SWITCHPATH $PATH";
if ($RETURN == $CHECKBIT)
{
print "STEP 2: Path is switched to `$SHOWPATH` successfully. \n";
}
else
{
print "STEP 2: Could not switch to $PATH ! \n";
}
#(3) Duplicate original file for processing
$RETURN = system "$COPY -p $BASEFILE $DUPFILE";
if ($RETURN == $CHECKBIT)
{
print "STEP 3: The original mail file is duplicated successfully for processing. \n";
}
else
{
print "STEP 3: Duplication of original mail file fails ! \n";
print "The task is aborted ! \n";
#Start sendmail
$RETURN = system "$SENDMAIL start";
system ("$SLEEP 1");
if ($RETURN == $CHECKBIT)
{
print "sendmail is started successfully. \n";
$date = `/usr/bin/date`;
print "Exiting at $date !!! \n";
exit;
}
else
{
print "sendmail cannot be started ! ISCS Maintenance needs to manually start sendmail IMMEDIATELY ! \n";
exit;
}
}
#Count the total number of emails first
open(FILE, "<$DUPFILE");
while ($LINE_BUFFER = <FILE>)
{
if ($LINE_BUFFER =~ m/^From /)
{
$TOTAL_MAILS++;
}
}
close(FILE);
print "Total mails found in $BASEFILE -> $TOTAL_MAILS\n";
#(4) Begin Processing the mails
print "STEP 4: Processing the mails now......\n";
if ($TOTAL_MAILS > $THRESHOLD)
{
#Processing the old emails into 1 mail file and leaving last 10 emails into original mail file
$MAILS_TO_ARCHIVE = $TOTAL_MAILS - $THRESHOLD;
print "Total old mails to archive -> $MAILS_TO_ARCHIVE\n";
open(FILE1, "<$DUPFILE");
open(FILE2, ">$TEMPFILE");
open(FILE3, ">$TEMPFILE2");
while ($BUFFER = <FILE1>)
{
if ($BUFFER =~ m/^From /)
{
my ${FLAG_PRINT} = 1;
$COUNTER++;
}
if (($FLAG_PRINT = 1) && ($COUNTER <= $MAILS_TO_ARCHIVE))
{
print FILE2 $BUFFER;
}
elsif (($FLAG_PRINT = 1) && ($COUNTER > $MAILS_TO_ARCHIVE) && ($COUNTER <= $TOTAL_MAILS))
{
print FILE3 $BUFFER;
}
}
close(FILE1);
close(FILE2);
close(FILE3);
print "Processing of the mails is completed......\n";
}
else
{
#Remove the Duplicate file
$RETURN = system "$DELETE $DUPFILE";
if ($RETURN == $CHECKBIT)
{
print "Duplicate mail file is deleted successfully \n";
}
else
{
print "$DUPFILE cannot be deleted ! ISCS Maintenance needs to delete it manually ! \n";
}
if ($TOTAL_MAILS < $THRESHOLD)
{
print "Total mails found are less than the threshold mails (10) ! \n";
}
elsif ($TOTAL_MAILS == $THRESHOLD)
{
print "Total mails found are same as the threshold mails (10) ! \n";
}
#Start sendmail
$RETURN = system "$SENDMAIL start";
system ("$SLEEP 1");
if ($RETURN == $CHECKBIT)
{
print "sendmail is started successfully. \n";
#Send email informing maintenance team that task is aborted
$EMAIL_SUBJECT = '"AUTOMATION TASK: NEL_MailHouseKeeper.pl script run result -> ABORT"';
system ("$MAILER -s $EMAIL_SUBJECT $EMAIL_C755 < $EMAIL_ABORT");
$date = `/usr/bin/date`;
print "Exiting now at $date ......\n";
print "++++++++++++++++++++++++++++++++++++++++++++++\n";
exit;
}
else
{
print "sendmail cannot be started ! ISCS maintenance needs to manually start sendmail IMMEDIATELY ! \n";
exit;
}
}
#(5) Archive the old emails in 1 mail file (e.g. nelprofile-fwc_<date>.gz)
$RETURN = system "$GZIP -9 $TEMPFILE";
system ("$SLEEP 2");
if ($RETURN == $CHECKBIT)
{
print "STEP 5: $TEMPFILE is zipped successfully. \n";
}
else
{
print "STEP 5: $TEMPFILE cannot be zipped ! ISCS Maintenance needs to gzip manually ! \n";
}
#(6) Rename TEMPFILE2 to BASEFILE (renaming the processed mail file back to original mail file)
$RETURN = system "$RENAME $TEMPFILE2 $BASEFILE";
if ($RETURN == $CHECKBIT)
{
print "STEP 6: $TEMPFILE2 is renamed to $BASEFILE successfully. \n";
}
else
{
print "STEP 6: $TEMPFILE2 cannot be renamed to $BASEFILE ! \n";
#Start sendmail
$RETURN = system ("$SENDMAIL start");
system ("$SLEEP 1");
if ($RETURN == $CHECKBIT)
{
print "sendmail is started successfully. \n";
#Send email informing maintenance team that task has failed
$EMAIL_SUBJECT = '"AUTOMATION TASK: Please inform C755 Maint Team (Hotline: 6214 0674)"';
system ("$MAILER -s $EMAIL_SUBJECT $EMAIL_C755 < $EMAIL_FAIL");
exit;
}
else
{
print "sendmail cannot be started ! ISCS Maintenance needs to manually start sendmail IMMEDIATELY ! \n";
exit;
}
}
#(7) Remove the Duplicate file
$RETURN = system ("$DELETE $DUPFILE");
if ($RETURN == $CHECKBIT)
{
print "STEP 7: Duplicate mail file is deleted successfully. \n";
}
else
{
print "STEP 7: Cannot delete duplicate mail file ! ISCS Maintenance needs to delete it manually ! \n";
}
#Start sendmail
$RETURN = system ("$SENDMAIL start");
system ("$SLEEP 1");
if ($RETURN == $CHECKBIT)
{
print "sendmail is started successfully. \n";
$date = `/usr/bin/date`;
print "NEL_MAILHOUSEKEEPER script has completed at $date \n";
print "++++++++++++++++++++++++++++++++++++++++++++++\n";
#Send email informing the operator that task is completed successfully
$EMAIL_SUBJECT = '"AUTOMATION TASK: NEL_MailHouseKeeper.pl script run result -> SUCCESSFUL"';
system ("$MAILER -s $EMAIL_SUBJECT $BASEFILE < $EMAIL_PASS");
}
else
{
print "sendmail cannot be started ! ISCS Maintenance needs to manually start sendmail IMMEDIATELY ! \n";
}