本帖最后由 zg990725 于 2025-7-1 12:05 编辑
norikohxb 发表于 2025-6-23 00:26
感觉你这个是最优的方法!
这个, 叫非法关机, 跟意外停电, 没什么区别
你可以搭建一个服务器, 接收POST或GET, 执行的是一个关机的命令.
然后, 在你的HA里, 按时, 定时, 判断一些场景, 都是可以触发这个POST
// 身份验证(建议改为数据库验证)
if ($_POST['user'] !== 'admin' || $_POST['pw'] !== 'e1bfd762321e409cee4ac0b6e841963c') {
die('认证失败');
}
// 接收参数
$ip = $_POST['ip'] ?? '127.0.0.1'; // 目标服务器IP
$action = $_POST['action'] ?? 'shutdown'; // 操作类型
// 命令构造
$commands = [
'shutdown' => "shutdown /s /m \\\\{$ip} /t 0 /f",
'reboot' => "shutdown /r /m \\\\{$ip} /t 0 /f",
'cancel' => "shutdown /a /m \\\\{$ip}"
];
if (isset($commands[$action])) {
//或shell_exec()
exec($commands[$action], $output, $return_var);
echo $return_var === 0 ? "操作成功" : "执行失败";
} else {
echo "无效操作";
}
没有测试, 理论上是可行的, 一个URL就可以实现, 同时, 满足NODE-RED 发送执行
|