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脚本
1038 0
|
3月前
|
iOS开发 MacOS
macOS开机自启动执行脚本
【8月更文挑战第23天】在macOS上设置开机自动执行脚本可通过三种方式:一是利用“系统偏好设置”中的“用户与群组”功能直接添加脚本或应用;二是通过创建`.plist`文件并放置于`LaunchAgents`目录,这种方式能更精细地控制脚本运行;三是使用cron任务,在系统启动时执行脚本,但该方法不太适用于图形界面程序且可能受限于启动顺序。每种方法各有优缺点,需根据实际情况选择。
334 0
|
6月前
|
存储 弹性计算 运维
自动修改计划任务配置文件
【4月更文挑战第29天】
40 0
|
6月前
|
Shell Linux
Linux脚本Shell脚本来实现一次性kill多个端口的进程
Linux脚本Shell脚本来实现一次性kill多个端口的进程
77 0
|
6月前
|
Shell Linux
shell自动关机/重启计划
shell自动关机/重启计划
173 1
|
运维 Java 应用服务中间件
Linux启动tomcat命令行关闭后服务会停止
Linux启动tomcat命令行关闭后服务会停止
142 0
|
数据安全/隐私保护
winscp自动执行脚本
我们经常使用WinSCP工具通过sftp协议上传获取文件,本文描述通过bat批量处理文件。 首先,我们打开dos命令窗口使用 cd \d :D\WinSCP 打开WinSCP安装目录 上传文件: winscp.
3171 0
|
Shell
shell脚本控制程序启动停止重启
shell脚本控制程序启动停止重启
305 0
|
Shell Linux 网络安全
大技霸教你远程执行Linux脚本和命令
如果现在需要在 Linux 服务器上执行一系列命令(比如搭建 LNMP 环境)我应该会第一时间想到想办法写个 Shell 脚本,然后扔上去执行以下看看结果。 然而一贯懒惰的我并不想这么去执行 Shell 和一些重复命令。所以俺寻思可以有个方法本地直接在服务器端执行脚本,寻思生异端,这时候有某大技霸告诉我有个叫 paramiko 的 Python 库,从此开启我新世界的大门。
273 0
大技霸教你远程执行Linux脚本和命令
|
MySQL 关系型数据库 Linux
Linux启动/停止/重启Mysql数据库的方法
1、查看mysql版本方法一:status;方法二:select version(); 2、Mysql启动、停止、重启常用命令a、启动方式1、使用 service 启动:[root@localhost /]# service mysqld start (5.
8521 0