电脑定时开关机、远程开机、远程关机搭建
全链路
①云服务器:部署xxl-job
②家里路由器 frp 映射到云服务器 / 闪优物联 抓包http接口
③电脑安装web关机指令服务
④集成到ios快捷指令
上述操作可实现定时电脑开机、远程电脑开机、一键手机开机、一键手机关机等操作。
一、机器唤醒
①、基于硬件+wifi 远程唤醒
可以使用闪优物联 or 其他进行app远程唤醒
②、网卡唤醒 ether-wake
Ether-wake 是一个用于发送 Wake-on-LAN (WOL) "Magic Packets" 的命令行工具,它能够唤醒处于网络唤醒状态的设备。这个工具通常在 Linux 系统中使用,并且需要目标机器的网卡支持远程唤醒功能。用户可以通过 ethtool
命令检查网卡是否支持 WOL,如果支持,可以通过 ether-wake
命令发送特定的数据包来唤醒目标机器 1。
使用 ether-wake
命令时,需要指定目标机器的 MAC 地址。命令的基本语法如下:
etherwake [选项] MAC地址
其中,MAC 地址是目标设备的物理地址,格式通常为 xx:xx:xx:xx:xx:xx
。例如,要使用 eth0
网络接口唤醒 MAC 地址为 00:11:22:33:44:55
的设备,可以使用以下命令:
etherwake -i eth0 00:11:22:33:44:55
此外,ether-wake
命令还支持一些选项,如 -b
发送到广播地址,-D
增加调试信息,-i
指定使用的网卡名称,-p
添加密码到数据包中,以及 -V
显示软件版本信息 5。
在使用 ether-wake
之前,需要确保目标机器的 BIOS 设置中启用了 WOL 功能,并且网络接口的 WOL 设置也被激活。例如,在某些 Linux 发行版中,可以使用以下命令来激活 WOL:
ethtool -s 网卡名称 wol g
这将设置指定网卡的 WOL 功能为启用状态 1。
总的来说,ether-wake
是一个方便的工具,可以在局域网内远程唤醒支持 WOL 的设备,前提是设备和网络环境都正确配置了相应的功能
二、XXL-Job 执行Python脚本
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import paramiko
# SSH服务器的连接信息
hostname = "127.0.0.1"
port = 22
username = "admin"
password = "admin"
# 要执行的命令
command = "/usr/sbin/ether-wake -i br0 -b 80:FA:5B:00:E1:81"
# 创建SSH客户端
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
try:
# 连接SSH服务器
client.connect(hostname, port, username, password)
# 执行命令
stdin, stdout, stderr = client.exec_command(command)
# 获取命令执行结果
output = stdout.read().decode("utf-8")
error = stderr.read().decode("utf-8")
if output:
print("命令执行结果:")
print(output)
if error:
print("命令执行错误:")
print(error)
finally:
# 关闭SSH连接
client.close()
三、机器关机/远程执行命令
自建web关机服务,映射到路由器或者云服务器,调用curl命令即可实现关机
/usr/sbin/curl http://192.168.68.15:8081/exec/shutdown