- 论坛徽章:
- 0
|
#!/usr/bin/perl
use File::NFSLock qw(uncache);
use Fcntl ':flock'; # import LOCK_* constants
my $lockp = "/bbmf/shared/crontab.tmp$ARGV[0]";
my $lock = File::NFSLock->;new("$lockp/.lock", LOCK_EX|LOCK_NB, 10, 60);
`mkdir -p $lockp/.lock`;
### set up a lock - lasts until object looses scope
if ($lock)
{
my $cmd = join(" ", @ARGV);
`$cmd`;
writeLog($ARGV[0]);
sleep 30;
$lock->;unlock();
}
else
{
#writeLog("SKIP" ;
}
exit 0;
#
# START OF SUB ROUNTINE
#
sub writeLog
{
my ($msg) = @_;
my $hostn = `hostname -s`;
chop $hostn;
my ($sec,$min,$hour,$day,$mon,$year,$week,$yday,$isdst) = localtime(time);
open(LOG, ">;>;/bbmf/shared/crontab.tmp/bbmf_run.log" ;
print LOG sprintf("%04d-%02d-%02d %02d:%02d:%02d - $hostn - $msg\n",(1900+$year),(1+$mon),$day,$hour,$min,$sec);
close(LOG);
} |
|