利用您现有的Debian服务器作为”唤醒中心”,可以完美实现每日凌晨1点自动唤醒Win11电脑执行Python程序。以下是详细方案:
一、准备工作:配置Win11电脑支持Wake-on-LAN
- 启用网卡的WOL功能:
- 以管理员身份打开PowerShell
- 执行
Get-NetAdapter查看网卡名称 - 执行
Enable-NetAdapterPowerManagement -Name "以太网" -WakeOnMagicPacket $true(替换为您的网卡名称) - 或通过设备管理器:网络适配器 → 右键属性 → 电源管理 → 勾选”允许此设备唤醒计算机”和”只允许魔术包唤醒计算机”
- 获取Win11电脑的MAC地址:
- 在Win11上执行
ipconfig /all,记录物理地址(MAC地址)
- 在Win11上执行
- 配置路由器:
- 确保两台电脑在同一局域网,或配置路由器允许WOL包跨子网传输
- 为Win11电脑设置静态IP或DHCP保留
二、在Debian服务器上设置定时唤醒任务
- 安装WOL工具:
sudo apt update sudo apt install wakeonlan - 创建唤醒脚本 (
/usr/local/bin/wake_win11.sh):#!/bin/bash # 替换为Win11电脑的实际MAC地址 wakeonlan 00:11:22:33:44:55 # 等待电脑启动(根据您的电脑启动时间调整) sleep 90 - 设置定时任务:
sudo crontab -e添加以下行(每天凌晨1点执行):
0 1 * * * /usr/local/bin/wake_win11.sh - 设置脚本权限:
sudo chmod +x /usr/local/bin/wake_win11.sh
三、在Win11上配置自动运行Python程序并关机
- 创建批处理文件 (
C:\Scripts\run_and_shutdown.bat):@echo off echo 开始执行Python程序 [%date% %time%] >> C:\Scripts\log.txt python "C:\Path\To\Your\Script.py" >> C:\Scripts\log.txt 2>&1 echo 程序执行完成,准备关机 [%date% %time%] >> C:\Scripts\log.txt timeout /t 10 /nobreak >nul shutdown /s /t 30 /c "Python程序执行完成,30秒后自动关机" - 创建计划任务:
- 以管理员身份运行PowerShell
- 执行以下命令创建任务:
$action = New-ScheduledTaskAction -Execute "C:\Scripts\run_and_shutdown.bat" $trigger = New-ScheduledTaskTrigger -AtStartup $settings = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries -DontStopIfOnBatteries -StartWhenAvailable $principal = New-ScheduledTaskPrincipal -UserId "SYSTEM" -LogonType ServiceAccount -RunLevel Highest Register-ScheduledTask -TaskName "AutoRunPythonScript" -Action $action -Trigger $trigger -Settings $settings -Principal $principal
四、验证与故障排除
- 测试WOL功能:
- 手动关闭Win11电脑
- 在Debian服务器上执行
wakeonlan 您的MAC地址 - 观察Win11电脑是否能正常唤醒
- 测试整个流程:
- 修改Debian上的cron任务为几分钟后执行
- 观察完整流程是否正常工作
- 常见问题解决:
- 无法唤醒:检查BIOS/UEFI中是否启用WOL;某些笔记本需要接通电源才能使用WOL
- 程序未运行:检查计划任务是否配置为SYSTEM权限运行;查看日志文件排查错误
- 无法关机:确保计划任务有足够权限执行关机命令
附加建议
- 增加可靠性:
- 在Debian服务器上添加监控脚本,检查Win11是否已成功启动和执行程序
- 配置邮件或Telegram通知,任务完成后发送执行结果
- 节能优化:
- 在Win11电源选项中设置较短的不活动自动睡眠时间
- 考虑使用
shutdown /h代替shutdown /s让电脑进入休眠而非完全关机,可加快下次启动速度
此方案利用您现有的Debian服务器作为控制中心,无需依赖Win11电脑的BIOS定时开机功能,适用于大多数不支持定时开机的笔记本电脑。