#!/usr/bin/perl
use Sys::Syslog;
$PackageDir = shift || "/opt/SYMCScan";
$LockFile = "/tmp/SymScanEngineBusy.lock";
$LOCK_SH = 1;
$LOCK_EX = 2;
$LOCK_NB = 4;
$LOCK_UN = 8;
Sys::Syslog::openlog("SymScanEngine-autoupdate", 'pid, nowait', 'mail');
BailOut("Installation dir \"$PackageDir\" does not exist!")
unless $PackageDir ne "" && -d $PackageDir;
&LockSymantec();
# Need to add code to dymanically locate the java binary
# SuSE has some info in /etc/java, is this a standard location for info?
$JavaDir="/usr/lib/j2sdk1.4.2_03/jre/bin/";
$ENV{'PATH'} .= ":$JavaDir";
system("$PackageDir/bin/liveupdate.sh -VIRUSDEFS -URLUPDATES");
&UnlockSymantec();
Sys::Syslog::syslog('info', "SymScanEngine updated in $PackageDir");
Sys::Syslog::closelog();
exit 0;
sub BailOut {
Sys::Syslog::syslog('err', @_);
Sys::Syslog::closelog();
warn "@_, $!";
exit 1;
}
sub LockSymantec {
open(LOCK, ">$LockFile") or return;
flock(LOCK, $LOCK_EX);
print LOCK "Locked for updating SymScanEngine patterns by $$\n";
}
sub UnlockSymantec {
print LOCK "Unlocked after updating SymScanEngine patterns by $$\n";
unlink $LockFile;
flock(LOCK, $LOCK_UN);
close LOCK;
}
syntax highlighted by Code2HTML, v. 0.9.1