返回列表 发布新帖

[虚拟机] 希望能支持虚拟机定时开关机

1329 6
发表于 2025-10-16 11:09:52 | 查看全部 阅读模式 IP:–河北–衡水

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
希望能支持虚拟机定时开关机

评论6

umaVSbLv.1 发表于 2025-10-16 11:20:57 | 查看全部 IP:美国 CloudFlare节点
支持,或者添加类似群晖的定时执行功能,自己写命令也可以
umaVSbLv.1 发表于 2025-10-16 11:23:35 | 查看全部 IP:法国–法兰西岛–巴黎–巴黎 CloudFlare节点
支持,希望docker也添加类似功能。或者增加类似群晖的定时执行功能,自己写命令也可以
HarveyFangLv.1绿联NAS社区会员用户 发表于 2025-10-16 12:05:30 | 查看全部 IP:–浙江–绍兴
支持,如果虚拟机再加个“快速休眠”就更好了(类似于VirtualBox的),不至于每次开机要等半天,方便快速恢复使用
DaveLv.1 发表于 2025-10-16 12:23:47 | 查看全部 IP:–广东–佛山–高明区
目前可以通过类似方式挂青龙实现自动启动,部分参数自行在web端f12同名接口中查找

  1. import requests
  2. from requests.packages.urllib3.exceptions import InsecureRequestWarning
  3. import os

  4. # 禁用 SSL 警告(因为可能使用自签名证书)
  5. requests.packages.urllib3.disable_warnings(InsecureRequestWarning)


  6. nas_token=os.getenv("nas_token")
  7. nas_ip_port=os.getenv("nas_ip_port")

  8. print("nas_token:"+nas_token)
  9. print("nas_ip_port:"+nas_ip_port)

  10. url = "https://"+nas_ip_port+"/ugreen/v1/kvm/manager/PowerOn"
  11. params = {
  12.     "name": "e55b51c8-5bed-40b5-9d91-xxxxxx",
  13.     "virtualMachineDisplayName": "win10x64"
  14. }

  15. headers = {
  16.   'User-Agent': "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:143.0) Gecko/20**1 Firefox/143.0",
  17.   'Accept': "application/json, text/plain, */*",
  18.   'Accept-Encoding': "gzip, deflate, br, zstd",
  19.   'Accept-Language': "zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2",
  20.   'UG-Agent': "PC/WEB",
  21.   'Client-Id': "7fba09xxxxxxxxx-WEB",
  22.   'Client-Version': "75322",
  23.   'X-Specify-Language': "zh-CN",
  24.   'X-Ugreen-Token': "xxxxxxx",
  25.   'X-Ugreen-Security-Key': "xxxxxx",
  26.   'Referer': "https://"+nas_ip_port+"/kvm/?_kvm=xxxx",
  27.   'Sec-Fetch-Dest': "empty",
  28.   'Sec-Fetch-Mode': "cors",
  29.   'Sec-Fetch-Site': "same-origin",
  30.   'Cookie': "token="+nas_token+""
  31. }


  32. response = requests.get(
  33.     url,
  34.     params=params,
  35.     headers=headers,
  36.     verify=False  # 忽略 SSL 证书验证(仅用于内网/测试环境!)
  37. )
  38. print(response.text)

  39. print("Status Code:", response.status_code)
  40. print("Response Body:", response.text)
  41. QLAPI.systemNotify({"title":"nas虚拟机启动","content": response.text})
复制代码





Yzv9Du楼主Lv.1 发表于 2025-10-16 16:07:36 | 查看全部 IP:–河北–衡水
  1. ## 「工作日开机 / 每天关机」

  2. 工作日08:50开机,每天18点30关机,网络失败按工作日处理

  3. ### 1. 创建脚本(复制即可)

  4. ```bash
  5. sudo tee /usr/local/bin/vm-cron.sh >/dev/null <<'EOF'
  6. #!/usr/bin/env bash
  7. VM="centos7"    # ← 改成你的虚拟机名
  8. code=$(curl -sS --max-time 5 "http://tool.bitefu.net/jiari/?d=$(date +%Y%m%d)" 2>/dev/null | tr -d '"')
  9. [[ -z $code ]] && code=0          # 网络失败 → 工作日
  10. [[ "$1" == "start" ]] && { [[ "$code" == "0" ]] && virsh start "$VM"; }
  11. [[ "$1" == "stop"  ]] && virsh shutdown "$VM"
  12. EOF
  13. # 执行权限
  14. sudo chmod +x /usr/local/bin/vm-cron.sh
  15. ```
  16. ### 2. 加入 root 的 crontab
  17. ```bash
  18. sudo -i
  19. crontab -e
  20. ```
  21. 粘贴下面两行,保存退出:
  22. ```bash
  23. 50 08 * * 1-5 /usr/local/bin/vm-cron.sh start   # 工作日 08:50 开机
  24. 30 18 * * *   /usr/local/bin/vm-cron.sh stop    # 每天 18:30 关机
  25. ```

  26. ### 3. 手动测试
  27. ```bash
  28. sudo /usr/local/bin/vm-cron.sh start   # 测试开机(工作日才执行)
  29. sudo /usr/local/bin/vm-cron.sh stop    # 测试关机(无条件)
  30. ```
复制代码

Yzv9Du楼主Lv.1 发表于 2025-10-16 16:10:29 | 查看全部 IP:–河北–衡水
目前可以通过cron加shell脚本实现
  1. ## 「工作日开机 / 每天关机」

  2. 工作日08:50开机,每天18点30关机,网络失败按工作日处理

  3. ### 1. 创建脚本(复制即可)

  4. ```bash
  5. sudo tee /usr/local/bin/vm-cron.sh >/dev/null <<'EOF'
  6. #!/usr/bin/env bash
  7. VM="centos7"    # ← 改成你的虚拟机名
  8. code=$(curl -sS --max-time 5 "http://tool.bitefu.net/jiari/?d=$(date +%Y%m%d)" 2>/dev/null | tr -d '"')
  9. [[ -z $code ]] && code=0          # 网络失败 → 工作日
  10. [[ "$1" == "start" ]] && { [[ "$code" == "0" ]] && virsh start "$VM"; }
  11. [[ "$1" == "stop"  ]] && virsh shutdown "$VM"
  12. EOF
  13. # 执行权限
  14. sudo chmod +x /usr/local/bin/vm-cron.sh
  15. ```
  16. ### 2. 加入 root 的 crontab
  17. ```bash
  18. sudo -i
  19. crontab -e
  20. ```
  21. 粘贴下面两行,保存退出:
  22. ```bash
  23. 50 08 * * 1-5 /usr/local/bin/vm-cron.sh start   # 工作日 08:50 开机
  24. 30 18 * * *   /usr/local/bin/vm-cron.sh stop    # 每天 18:30 关机
  25. ```

  26. ### 3. 手动测试
  27. ```bash
  28. sudo /usr/local/bin/vm-cron.sh start   # 测试开机(工作日才执行)
  29. sudo /usr/local/bin/vm-cron.sh stop    # 测试关机(无条件)
  30. ```
复制代码

评论

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Copyright © 2026 绿联NAS私有云社区 版权所有 All Rights Reserved. 粤公网安备44030002002555号| 粤ICP备12028978号
关灯 在本版发帖
联系技术支持
返回顶部
快速回复 返回顶部 返回列表