bat脚本实现条件重启

简介: 当内存占用超过85%且时间是21点-9点区间时就执行重启机器语句,1个小时轮询一次,适用于win server 2008R2
@echo off
setlocal
REM 当内存占用超过85%且时间是21点-9点区间时就执行重启机器语句,1个小时轮询一次,适用于win server 2008R2
:LOOP
REM 获取当前时间
for /f "tokens=1-3 delims=:." %%a in ("%time%") do (
set"hour=%%a"set"minute=%%b"set"second=%%c")
REM 获取当前内存占用率
for /f "skip=1 tokens=2 delims==" %%a in ('wmic OS get FreePhysicalMemory /value') do (
set"free_memory=%%a"    call :CHECK_MEM_USAGE
)
REM 判断满足条件则执行重启机器
if"%is_reboot%"=="true" (
echo 重启机器中...
    shutdown /r /f /t 60exit) else (
echo 没有满足条件。等待一个小时后进行下一次检查...
    powershell -Command"& {Write-Host '当前时间: ' -NoNewline ; Get-Date -format 'HH:mm:ss' ; Write-Host '下一次轮训检查时间是: ' -NoNewline ; $newTime = Get-Date -Date (Get-Date).AddHours(1) -format 'HH:mm:ss' ; $newTime}")
REM 等待一小时后继续检查
timeout /t 3600 >nul
goto :LOOP
:CHECK_MEM_USAGE
REM 计算内存使用率
set /a "total_memory=free_memory+0"set /a "used_memory=768-total_memory"set /a "mem_usage=(used_memory*100)/768"REM 判断内存使用率是否超过85%
if %mem_usage% gtr 85 (
    call :CHECK_TIME
if"%is_reboot%"=="true" (
set"is_reboot=true"    )
)
exit /b
:CHECK_TIME
REM 判断当前时间是否在晚上9点到凌晨9点之间
if %hour% lss 9 (
set"is_reboot=true") elseif %hour% equ 9 (
if %minute% leq 59 (
set"is_reboot=true"    ) else (
set"is_reboot=false"    )
) elseif %hour% geq 21 (
set"is_reboot=true") else (
set"is_reboot=false")
exit /b
exit /b
目录
相关文章
|
Windows
电脑win系统开机自动运行批处理、脚本等的方法/开机自动执行bat脚本
电脑win系统开机自动运行批处理、脚本等的方法/开机自动执行bat脚本
1104 0
BAT中取得一个命令的执行结果
BAT中取得一个命令的执行结果
1371 0
|
Shell
设置shell脚本执行错误自动退出
设置shell脚本执行错误自动退出
948 0
Bat 多个执行操作选择
Bat 多个执行操作选择
|
9月前
|
Shell Linux
shell自动关机/重启计划
shell自动关机/重启计划
226 1
|
Windows
PowerShell添加或修改注册表开机启动项脚本
代码如下: $name = Read-Host "请输入开机启动项的名字(随便起)" $value = Read-Host "请输入开机启动项的值" try{ New-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Run" -Name $name -PropertyType String -Value $value -ErrorAction Stop $tip = "成功添加开机启动项"+$name+"。
2318 0
|
数据安全/隐私保护
winscp自动执行脚本
我们经常使用WinSCP工具通过sftp协议上传获取文件,本文描述通过bat批量处理文件。 首先,我们打开dos命令窗口使用 cd \d :D\WinSCP 打开WinSCP安装目录 上传文件: winscp.
3225 0
|
Shell
shell脚本控制程序启动停止重启
shell脚本控制程序启动停止重启
339 0
|
MySQL 关系型数据库 Linux
Linux启动/停止/重启Mysql数据库的方法
1、查看mysql版本方法一:status;方法二:select version(); 2、Mysql启动、停止、重启常用命令a、启动方式1、使用 service 启动:[root@localhost /]# service mysqld start (5.
8644 0