#!/usr/bin/perl -w use Fcntl qw(O_WRONLY O_CREAT O_EXCL); my $lockfile = '/tmp/lock'; if (sysopen(FH, $lockfile, O_WRONLY | O_CREAT | O_EXCL)) { `your_update_script`; close FH; unlink $lockfile or die "Can't unlink lockfile $lockfile $!"; print "Updated"; } else { die "Update already in progress. Aborting!"; }