PVE定时开启关闭虚拟机,实现PVE中群晖虚拟机的定时开机和关闭

如果在PVE中安装了群晖,又不想每天关闭PVE(不在家,怕服务器起不来),因此想每天定时关闭开启黑群晖和其他虚拟机释放资源。

在网上查了很多,说在crontab添加命令

00 2 * * * pvesh create /nodes/pve/qemu/102/status/stop
00 6 * * * pvesh create /nodes/pve/qemu/102/status/start

试了一下,没有效果,后来发现我在crontab中执行sh脚本也是不执行,但是直接执行语句echo "test" >>/test.log 是可以的 。希望有大神解答一下。

没办法,只有另辟蹊径了。使用timer来解决问题

1.首先,写sh脚本来实现虚拟机的开机/关机,核心命令 qm start/stop vm_id,vm_id可在PVE左边数据中心查看

创建新文件 vi /opt/shells/vm-start.sh

内容如下

#!/bin/bash
# 虚拟机ID存入数组,用空格隔开
vms=("100" "105")
echo " $(date +"%Y-%m-%d %H:%M:%S") vm-start 启动">> TimerVM.txt

for vm_id in "${vms[@]}"; do
  status=$(qm status $vm_id | grep 'status' |awk '{print $2}')
  if [[ "$status" != "running" ]]; then
   echo " $(date +"%Y-%m-%d %H:%M:%S")  虚拟机 $vm_id 正在启动">> TimerVM.txt
   qm start $vm_id
  fi
  sleep 5
  tempStatus=$(qm status $vm_id | grep 'status' |awk '{print $2}')
  if [[ "$status" == "running" ]]; then
  echo " $(date +"%Y-%m-%d %H:%M:%S")  虚拟机 $vm_id 已经启动">> TimerVM.txt
  fi
done

再创建新文件 vi /opt/shells/vm-stop.sh

内容如下(因为我黑群用的它自动的定时关机,所以这里就不写黑群晖的vm_id,也不建议用命令暴力结束黑群晖,免得数据丢失。如果有需要可以写在数组里面,用空格隔开)

#!/bin/bash
vms=("105")
echo " $(date +"%Y-%m-%d %H:%M:%S")  vm-stop.sh开始">> TimerVM.txt
for vm_id in "${vms[@]}"; do
  status=$(qm status $vm_id | grep 'status' |awk '{print $2}')
  if [[ "$status" == "running" ]]; then
   echo " $(date +"%Y-%m-%d %H:%M:%S")  虚拟机 $vm_id 正在停止">> TimerVM.txt
   qm stop $vm_id
  fi
  sleep 5
  tempStatus=$(qm status $vm_id | grep 'status' |awk '{print $2}')
  if [[ "$status" == "stopped" ]]; then
  echo " $(date +"%Y-%m-%d %H:%M:%S")  虚拟机 $vm_id 已经停止">> TimerVM.txt
  fi
done

2. 创建service

创建新文件 vi /etc/systemd/system/vm-start.service

内容如下

[Unit]
Description=vm-start Service

[Service]
Type=simple
ExecStart=/opt/shells/vm-start.sh
User=root

创建新文件  vi /etc/systemd/system/vm-stop.service

[Unit]
Description=vm-stop Service

[Service]
Type=simple
ExecStart=/opt/shells/vm-stop.sh
User=root

测试 可用 systemctl start vm-start.service和systemctl start vm-stop.service命令看虚拟机是否开关机

3,创建timer

创建新文件 vi /etc/systemd/system/vm-start.timer,我设置的每天6.40运行,可以改时间,Timer里面除了Oncalendar还有其他选项,可以自行百度

内容如下

[Unit]
Description=Run vm-start.sh every day at 7 AM

[Timer]
OnCalendar=*-*-* 06:40:00
#OnUnitActiveSec=10s
Unit=vm-start.service

[Install]
WantedBy=multi-user.target

创建新文件 vi /etc/systemd/system/vm-stop.timer

内容如下,时间自行修改

[Unit]
Description=Run vm-start.sh every day at 7 AM

[Timer]
OnCalendar=*-*-* 23:10:00
#OnUnitActiveSec=10s
Unit=vm-stop.service

[Install]
WantedBy=multi-user.target
~                           

4.启动timer,每次更新相应timer,都需要执行相应的代码

执行命令启动vm-start.timer

systemctl daemon-reload
systemctl enable vm-start.timer
systemctl start vm-start.timer

执行命令启动vm-stop.timer  

systemctl daemon-reload
systemctl enable vm-stop.timer
systemctl start vm-stop.timer

最后,可用systemctl status vm-start.timer查看状态,成功

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/906573.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

JDBC/ODBC—数据库连接API概述

JDBC/ODBC概述 在数据库连接领域,有两种广泛使用的技术:ODBC(Open Database Connectivity - 开放数据库连接)和 JDBC(Java Database Connectivity - Java 数据库连接)。 一、什么是 ODBC? Ope…

2024年NSSCTF秋季招新赛-WEB

The Beginning F12看源码,有flag http标头 黑吗喽 题目说要在发售时的0点0分,所以添加标头data Date: Tue, 20 Aug 2024 00:00:00 GMT然后改浏览器头 User-Agent: BlackMonkey曲奇就是Cookie cookieBlackMonkey这个一般就是Referer Referer:wukon…

后台管理系统的通用权限解决方案(十一)SpringBoot的统一异常处理

文章目录 1 统一异常处理介绍2 统一异常处理案例 1 统一异常处理介绍 在实际项目中,不可避免需要处理各种异常。如果每个都单独处理,代码中则会出现大量的try {...} catch {...} finally {...}代码块,不仅有大量的冗余代码,而且还…

Axure使用动态面板制作新闻栏目高级交互

亲爱的小伙伴,在您浏览之前,烦请关注一下,在此深表感谢! 课程主题:使用动态面板制作新闻栏目 主要内容:动态面板State切换、控制;动态面板滚动设置;设置选中 应用场景&#xff1a…

android数组控件Textview

说明:android循环控件,注册和显示内容 效果图: step1: E:\projectgood\resget\demozz\IosDialogDemo-main\app\src\main\java\com\example\iosdialogdemo\TimerActivity.java package com.example.iosdialogdemo;import android.os.Bundl…

2024年10月文章一览

2024年10月编程人总共更新了21篇文章: 1.2024年9月文章一览 2.《Programming from the Ground Up》阅读笔记:p147-p180 3.《Programming from the Ground Up》阅读笔记:p181-p216 4.《Programming from the Ground Up》阅读笔记&#xff…

List 列表基础用法

List 列表基础用法 列表可以完成大多数集合类的数据结构实现。列表中元素的类型可以不相同,它支持数字,字符串甚至可以包含列表(所谓嵌套)。 列表是写在方括号 [] 之间、用逗号分隔开的元素列表。 和字符串一样,列表…

企业如何通过架构蓝图实现数字化转型

数字化转型的关键——架构蓝图的力量 在当今的商业世界,数字化转型已经不再是一个选择,而是企业生存与发展不可回避的战略行动。企业希望通过数字化提高效率、增强灵活性,并为客户提供更好的体验。然而,数字化转型不仅仅涉及技术…

数字马力二面面试总结

24.03.07数字马力二面面试总结 前段时间找工作,做的一些面试笔记总结 大家有面试录音或者记录的也可以发给我,我来整理答案呀 数字马力二面面试总结 24.03.07数字马力二面面试总结你可以挑一个你的最有挑战性的,有难度的,最具有复杂性的项目,可以简单说一下。有没有和算…

了解SQLExpress数据库

SQLExpress(Microsoft SQL Server Express)是由微软公司开发的一款免费且轻量级的数据库管理系统。以下是关于SQLExpress的详细解释: 一、定义与特点 定义: SQLExpress是Microsoft SQL Server的一个缩减版或基础版,旨在…

华为荣耀曲面屏手机下面空白部分设置颜色的方法

荣耀部分机型下面有一块空白区域&#xff0c;如下图红框部分 设置这部分的颜色需要在themes.xml里面设置navigationBarColor属性 <item name"android:navigationBarColor">android:color/white</item>

服务器数据恢复—SAN环境中LUN映射错误导致文件系统一致性出错的数据恢复案例

服务器数据恢复环境&#xff1a; SAN光纤网络环境&#xff0c;存储由一组6块硬盘组建的RAID6阵列构成&#xff0c;划分为若干LUN&#xff0c;MAP到跑不同业务的SUN SOLARIS操作系统服务器上。 服务器故障&分析&#xff1a; 因为业务需要&#xff0c;用户在该光纤存储环境中…

【python】OpenCV—Connected Components

文章目录 1、任务描述2、代码实现3、完整代码4、结果展示5、涉及到的库函数6、参考 1、任务描述 基于 python opencv 的连通分量标记和分析函数&#xff0c;分割车牌中的数字、号码、分隔符 cv2.connectedComponentscv2.connectedComponentsWithStatscv2.connectedComponents…

【LangChain系列4】【Chain模块详解】

目录 前言一、LangChain1-1、介绍1-2、LangChain抽象出来的核心模块1-3、特点1-4、langchain解决的一些行业痛点1-5、安装 二、Chain模块2-1、介绍2-2、LLMChain2-3、Sequential Chain&#xff08;顺序链&#xff09;2-4、Router Chain 总结 前言 LangChain给自身的定位是&…

[pdf,epub]105页《分析模式》漫谈合集01

105页的《分析模式》漫谈合集第1集的pdf、epub文件&#xff0c;已上传到本账号的CSDN资源。 如果无法下载&#xff0c;也可以访问umlchina.com/url/ap.html 已排版成适合手机阅读&#xff0c;pdf的排版更好一些。 ★UMLChina为什么叒要翻译《分析模式》&#xff1f; ★[缝合故…

Python酷库之旅-第三方库Pandas(186)

目录 一、用法精讲 861、pandas.Index.names属性 861-1、语法 861-2、参数 861-3、功能 861-4、返回值 861-5、说明 861-6、用法 861-6-1、数据准备 861-6-2、代码示例 861-6-3、结果输出 862、pandas.Index.nbytes属性 862-1、语法 862-2、参数 862-3、功能 8…

rabbitmq高级特性(2)TTL、死信/延迟队列、事务与消息分发

目录 1.TTL 1.1.设置消息过期时间 1.2.设置队列过期时间 2.死信队列 2.1.介绍 2.2.演示 3.延迟队列 3.1.模拟实现延迟队列 3.2.延迟队列插件 4.事务与消息分发 4.1.事务 4.2.消息分发 1.TTL 所谓的ttl&#xff0c;就是过期时间。对于rabbitmq&#xff0c;可以设置…

el-table type=“selection“换页多选数据丢失的解决办法

element里有一个 reserve-selection属性 设置以后就可以保留之前选中的选项&#xff0c;但还要设置row-key 代码如下&#xff1a; <el-tableref"mytable":data"HostRows"borderv-loading"loading"element-loading-text"正在加载中...&q…

Gitee push 文件

1、背景 想将自己的plecs仿真放到git中管理&#xff0c;以防丢失&#xff0c;以防乱改之后丢失之前版本仿真。此操作说明默认用户已下载git。 2、操作步骤 2.1 开启Git Bash 在文件夹中右键&#xff0c;开启Git Bash。 2.2 克隆文件 在Git Bash中打git clone git地址&#…

序列中删除指定数字【四种解法】

文章目录 解法1&#xff1a;另辟空间法解法2&#xff1a;覆盖法解法3&#xff1a;覆盖法&#xff08;进阶版&#xff09;解法4&#xff1a;异或取巧法 题目&#xff1a;有一个整数序列&#xff08;可能存在重复的整数&#xff09;&#xff0c;编写程序删除序列中指定的某一个整…