36 lines
783 B
Perl
Executable File
36 lines
783 B
Perl
Executable File
#!/usr/bin/perl -w
|
|
|
|
package esmith;
|
|
|
|
use strict;
|
|
use Errno;
|
|
use esmith::DB::db;
|
|
use IO::File;
|
|
use English;
|
|
|
|
my $db_hosts = esmith::DB::db->open('hosts') || die("Could not open e-smith db (" . esmith::DB::db->error . ")\n");
|
|
|
|
my $event = $ARGV[0];
|
|
|
|
defined $ARGV[1] || die "No host specified";
|
|
my $host = $ARGV[1];
|
|
|
|
wake_host($host);
|
|
|
|
exit 0;
|
|
|
|
sub wake_host
|
|
{
|
|
my ($hostName) = @_;
|
|
#------------------------------------------------------------
|
|
# Wake up the host
|
|
#------------------------------------------------------------
|
|
|
|
my $h = $db_hosts->get($hostName) or die "No host record for $hostName";
|
|
my $client = $h[0];
|
|
my $mac = $client->prop('MacAddress');
|
|
system("/sbin/ether-wake -b -i lan0 $mac") == 0
|
|
or die "Error waking up $hostName";
|
|
|
|
}
|