Включение, выключение компьютеров по сети в ос linux(debian)
Необходимые пакеты в системе wakeonlan, sshpass, php-cli.
Для включения компьтеры должны быть в одной сети, в опциях BIOS включаемого компьютера разрешено включение по сети.
Пользователю www-data разрешаем запуск wakeonlan и sshpass, через sudoers.
Создаем сценарий onOff.
if ($params['sw'] == 'on') {
exec("/usr/bin/wakeonlan -i 255.255.255.255 " . $params['mac']);
} elseif ($params['sw'] == 'off') {
exec("/usr/bin/sshpass -p " . $params['pass'] . " ssh -o StrictHostKeyChecking=no " . $params['user'] . "@" . $params['ip'] . " \"echo " . $params['user'] . "@ | sudo -S poweroff\"");
}
Вызов скрипта для включения требует указания только параметров sw и mac, для выключения компьютера на базе ос linux необходимы параметры sw, ip, user, pass. Также нужно разрешить пользователю на удаленном компьютере через sudoers использовать команду sudo poweroff.
// Параметры
$data = [
'sw' => 'off', // on - включить, off - выключить
'mac' => '00:11:22:33:44:55', // MAC адрес на удаленном компьютере
'ip' => '192.168.0.12', // IP на удаленном компьютере
'user' => 'user', // ваш логин на удаленном компьютере
'pass' => 'password' // ваш пароль на удаленном компьютере
];
runScript('onOff', $data);
Тверь, Россия