libreschool-client-manager/root/etc/e-smith/events/actions/client-shutdown
Paolo Asperti 83bf64bd39
All checks were successful
continuous-integration/drone/tag Build is passing
first release
2019-05-05 23:42:20 +02:00

36 lines
854 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];
shutdown_host($host);
exit 0;
sub shutdown_host
{
my ($hostName) = @_;
#------------------------------------------------------------
# Shutdown the host
#------------------------------------------------------------
my $h = $db_hosts->get($hostName) or die "No host record for $hostName";
my $user = $h->prop('sshUser') || 'amgmt';
system("/usr/bin/sudo -u amgmt /usr/bin/ssh -o StrictHostKeyChecking=no $user\@$hostName /usr/bin/sudo /sbin/poweroff") == 0
or die "Error shutting down $hostName";
}