项目/工具
工具 · 运行中 · AI 自动收录

155 节假日自动开关机方案

155 节假日自动开关机方案

通过服务器定时判断节假日,用 WOL 开机、SSH 关机,让 155 电脑按需运行。

约 3 分钟阅读
WOLSSHsystemd节假日Windows自动化
← 返回列表

本项目解决 .155 Windows 电脑在假期/周末期间需要保持开机、假期结束后又要彻底关机的自动化需求。由于电脑不能休眠(显卡灯会亮),且微信冷启动需要手机扫码,方案将判断逻辑放在 .223 服务器:脚本 windows155_period.py 每天 18:00 检查“明天放假且今天上班”,若满足则发送 WOL 魔术包开机;每天 08:00 检查“昨天放假且今天上班”,若满足则通过 SSH 远程关机,已开机或已关机时自动跳过。节假日数据来自 GitHub 的 holiday-cn,包含周末与调休,并支持缓存和每日更新;2027 年数据未发布前退化为周末判断。Windows 端配置自动登录、微信自启及朋友圈同步计划任务,开机后保持在线,关机由服务器统一触发。方案已完成 dry-run 与实测:普通周末和国庆节点判断正确,WOL 后约 25 秒开机、SSH 约 26 秒可用。

功能

  • 按“节假日前一晚 18:00”自动 WOL 开机,假期期间保持开机
  • 按“节后首个工作日 08:00”SSH 远程关机,避免休眠
  • 基于 holiday-cn 自动判断周末/调休,缓存并每日更新
  • 已开机/已关机状态自动跳过,支持 --force 手动补发
  • Windows 端自动登录、微信自启与朋友圈同步计划任务
  • systemd timer 定时执行,旧周五唤醒定时器已禁用

技术栈

Pythonsystemd timerWOLSSHWindows 计划任务PowerShellholiday-cn

使用 / 部署教程

  1. 准备环境:在 .223 服务器保留 /opt/projects-site/scripts/windows155_period.py,确认 .155 Windows 的 WOL 与 SSH 远程关机链路可用。
  2. 配置定时器:创建并启用 win155-period-wake.timer(每天 18:00)和 win155-period-shutdown.timer(每天 08:00);修改后执行 systemd daemon-reload。旧的 blog-wake155.timer 已禁用。
  3. 配置 Windows:启用自动登录,设置微信自启;创建登录触发的计划任务 MomentsNightlySync,流程为启动微信、等待扫码(最多 6 小时)、运行 nightly_sync.ps1 同步朋友圈并保持开机;创建 MomentsDailySync 每天 02:00 增量同步。
  4. 手动验证:在 .223 上执行 python3 /opt/projects-site/scripts/windows155_period.py --mode wake --force 测试开机,执行 --mode shutdown --force 测试关机。资料实测 WOL 后约 25 秒开机、SSH 约 26 秒可用。
  5. 日常使用:无需干预;节假日数据自动拉取,2027 年安排发布后脚本会自动更新。需要改规则时修改脚本或 timer,再 daemon-reload。

常见问题

为什么不用休眠?

资料明确电脑不能休眠(显卡灯会亮),必须真正关机,因此采用 SSH 远程关机。

节假日数据从哪里来?

来自 GitHub 的 holiday-cn,包含周末与调休,支持自动缓存和每天尝试更新;2027 年数据未发布前退化为周末判断。

如何手动开机或关机?

在 .223 上执行 python3 /opt/projects-site/scripts/windows155_period.py --mode wake --force 手动开机,或 --mode shutdown --force 手动关机。

电脑已经开机或关机时脚本会重复操作吗?

不会。wake 模式检测到已开机会跳过,shutdown 模式检测到已关机会跳过。

注意

  • 本方案要求电脑真正关机而非休眠,否则无法满足显卡灯熄灭与远程关机验证。
  • 微信冷启动仍需手机扫码;自动登录与微信自启已在该机启用。
  • 2027 年节假日数据未发布前,脚本退化为周末判断,发布后自动生效。

评论

加载中…