用于查询windows服务器信息CPU、内存、磁盘,以前做的定时汇总服务器监控用的
@echo off
for /f %%m in ( 'echo 数据时间:%date:~0,4%-%date:~5,2%-%date:~8,2%..%time:~0,2%时%time:~3,2%分%time:~6,2%秒') do set tm=%%m
Setlocal enabledelayedexpansion
::获取ip
for /f "delims=: tokens=2" %%i in ('ipconfig ^| find /i "IPv4"') do if NOT DEFINED ip set ip=%%i
::CPU
for /f "tokens=2 delims==" %%a in ('wmic path Win32_PerfFormattedData_PerfOS_Processor get PercentProcessorTime /value^|findstr "PercentProcessorTime"') do (
set UseCPU=%%a
)
set ipp=%ip:.=%
set file=D:\\ETLmonitor\\info_%ipp: =%.txt
::echo %file%
@echo off
::磁盘
for /f "delims=: tokens=2" %%c in ('fsutil volume diskfree C:') do set C_FREE_SPACE=%%c/1073741824
for /f "delims=: tokens=2" %%d in ('fsutil volume diskfree D:') do set D_FREE_SPACE=%%d/1073741824
for /f "delims=: tokens=2" %%e in ('fsutil volume diskfree E:') do set E_FREE_SPACE=%%e/1073741824
::for /f "delims=: tokens=2" %%f in ('fsutil volume diskfree F:') do set F_FREE_SPACE=%%f/1073741824
call :cu0 %C_FREE_SPACE:/= % C_FREE_SPACE
call :cu0 %D_FREE_SPACE:/= % D_FREE_SPACE
call :cu0 %E_FREE_SPACE:/= % E_FREE_SPACE
::call :cu0 %F_FREE_SPACE:/= % F_FREE_SPACE
echo ip地址:!ip!> %file%
echo %tm%>> %file%
::echo,内 存: >> %file%
@echo off
for /f "tokens=1,* delims==" %%a in ('systeminfo^|find "物理内存"') do (
echo %%a %%b >> %file%
)
::echo,CPU: >> %file%
echo,CPU使用率:%UseCPU%%% >> %file%
::echo,磁盘: >> %file%
echo,C盘剩余空间:%C_FREE_SPACE%Gb >> %file%
echo,D盘剩余空间:%D_FREE_SPACE%Gb >> %file%
echo,: >> %file%
::echo,E盘剩余空间:%E_FREE_SPACE%Gb >> %file%
::echo, F盘剩余空间:%F_FREE_SPACE%Gb >> %file%
::echo %C_FREE_SPACE%
::echo,端口: >> %file%
netstat -ano -p tcp | find "445" >nul 2>nul && echo 445端口:已开启 >> %file% || echo 445端口:未开启 >> %file%
netstat -ano -p tcp | find "135" >nul 2>nul && echo 135端口:已开启 >> %file% || echo 445端口:未开启 >> %file%
D:\\ETLmonitor\\pscp.exe -P 22 -pw etl234322 %file% monitor@192.168.0.14:/data/expt_file/check_done_file/monitor/windows_server
:cu0 500位内整数除法函数(封装) bbs.bathome.net
::函数内有 cu1 cu2 cu3 cu4 四个标签,引用时需注意
setlocal enabledelayedexpansion&set "lin=00000"
set /a zongw=1000,cs1w=0,cs2w=0,falg=0,x=0
if "!str!"=="1" Endlocal&set %~3=%ff%!num!&goto :EOF
if "%~1"=="0" set sang=0&goto cu4
if "!str!"=="0" set sang=以零为除数的错误。&goto cu4
if not defined xiaosu set /a xiaosu=10
for /l %%a in (1 1 5) do set "lin=!lin!!lin!!lin!"
set sang=&set ppp=&set var1=%~1&set "var2=%~2"
for /f "tokens=* delims=0" %%a in ("!var1!")do set var1=%%a
for /f "tokens=* delims=0" %%a in ("!var2!")do set var2=%%a
for /l %%a in (0 1 9)do (set "var1=!var1:%%a= %%a !"
set "var2=!var2:%%a= %%a !")
for %%a in (!var1!) do set /a cs1w+=1
for %%a in (!var2!) do set /a cs2w+=1
for /l %%a in (1 1 10) do (set t=&set cs=%~2&set/a j=0
for /l %%b in (1 1 !cs2w!) do (set /a a=%%a*!cs:~-1!+j
set t=!a:~-1!!t!&set a=0!a!&set "j=!a:~-2,1!"
set cs=!cs:~0,-1!&set cs%%a=&set "bj%%a=")
if !j! neq 0 (set cs%%a=!lin!!j!!t!&set "bj%%a=!j!!t!"
) else set cs%%a=!lin!!t!&set "bj%%a=!t!"
set "cs%%a=!cs%%a:~-%zongw%!")
set var2=!lin!!var2: =!&set "var2=!var2:~-%zongw%!"
set /a cswc=cs1w-cs2w&set "var1=!var1: =!"
if !cswc! lss 0 (set cswc=!cswc:-=!&set/a flag=1
for /l %%a in (1 1 !cswc!)do (
if %%a leq 11 set sang=0!sang!&set /a x=cswc-1
set "var1=!var1!0")
set "sang=!sang:~0,1!.!sang:~1!")
set ppp=!var1:~0,%cs2w%!&set "var1=!var1:~%cs2w%!"
if !flag! equ 1 (set /a bul=1) else set /a bul=0
goto cu2
:cu1
if not defined var1 (set "var1=0"
if not defined ppp goto cu4
if !flag! equ 0 (set sang=!sang!.&set /a flag=1))
set/a bul=1&set ppp=!ppp!!var1:~0,1!&set "var1=!var1:~1!"
:cu2
if !x! geq %xiaosu% goto cu4
set pvar1=!lin!!ppp!&set "pvar1=!pvar1:~-%zongw%!"
if "!pvar1!" lss "!var2!" (
if !bul! equ 1 (set sang=!sang!0&set /a bul=0
if !flag! equ 1 set /a x+=1)
if "!ppp:~0,1!"=="0" set "ppp="
goto cu1)
if !flag! equ 1 set /a x+=1
set /a bul=0
::计算商
for /l %%a in (1 1 10) do (
if "!cs%%a!" equ "!pvar1!" (
set "sang=!sang!%%a"&set "yu=!bj%%a!"&goto cu3)
if "!cs%%a!" gtr "!pvar1!" (set /a s=%%a-1
set "sang=!sang!!s!"&set yu=!t!&goto cu3)
set "t=!bj%%a!")
:cu3 计算差
set cjs=!ppp!&set cj1=&set m=&set/a jjj=0
for /l %%a in (0 1 9) do set "cjs=!cjs:%%a= %%a !"
for %%a in (!cjs!) do set "cj1=%%a !cj1!"
for %%a in (!cj1!) do (if "!yu!"=="" set/a yu=0
set /a a=%%a-jjj,b=!yu:~-1!
if !a! lss !b! (set /a a+=10,jjj=1)else set/a jjj=0
set /a w=a-b&set m=!w!!m!&set yu=!yu:~0,-1!)
for /f "tokens=* delims=0" %%m in ("!m!") do (
if "%%m"=="" (set m=0) else set "m=%%m")
if !m! equ 0 (
if "!var1:0=!"=="" set sang=!sang!!var1!&goto cu4
set ppp=&goto cu1) else set "ppp=!m!"
goto cu2
:cu4
if "!sang:~0,1!"=="." set "sang=0!sang!"
Endlocal&set %~3=%ff%%sang% & goto :EOF
浙公网安备 33010602011771号