windows磁盘空间检查脚本

2015-10-20 浏览:3224
windows磁盘空间检查脚本
评论:(2)复制地址

同事请了产假,让我帮他盯一下几台windows服务器磁盘空间状况,盯了几天老是这样一个一个远程过去太麻烦楼干脆搞了个检查脚本,这个脚本可以实现将本机每天磁盘空间情况保存在本地并发送到指定的FTP空间里,方便统一查看。同时还可以自动删除7天以前的记录(时间可以自己设置)。

daily_disk_check.bat  https://github.com/zpblog/daily-disk-check 

@echo off
::
set IPADDR=192.168.1.1
set FTPSVR=192.168.1.1
set FTPUSER=ftpuser
set FTPPASSWORD=123456
:: timestamp YYYY-MM-DD_HH-MM-SS
for /f "delims=" %%a in ('wmic OS Get localdatetime  ^| find "."') do set dt=%%a
set day=%dt:~0,8%
set time=%dt:~8,6%
::echo %day%-%time%
:: save dir
set saveDir="C:\diskspace\logs"
set RESULT=%saveDir%\%IPADDR%-%day%-%time%-diskspace.txt
echo IP:%IPADDR% > %RESULT%
echo PLATFORM:WINDOWS >> %RESULT%
:: daily_disk_check.bat
wmic logicaldisk Where DriveType="3" get caption,FreeSpace,size |find ":" >>%RESULT%
:: delete file for 7 days ago  
forfiles /P %saveDir% /M "*diskspace.txt" /D -7 /C "cmd /C del /Q /F @file"
echo open %FTPSVR% >upload.src
echo user %FTPUSER% %FTPPASSWORD% >>upload.src
echo lcd %saveDir% >>upload.src
echo bin >>upload.src
echo put %RESULT% >>upload.src
echo bye >>upload.src
ftp -n -s:upload.src
del /Q /F upload.src

注:记得先建好日志保存文件夹"C:\diskspace\logs",还有就是建一个FTP服务器。


加个“计划任务”每天执行一下,就可以一览众山小喽~


后面有时间的话我准备在搞个数据整合,直接打开一张表格或者一个网页就能看到所有服务器磁盘空间状态。


续:

今天抽空尝试用php写了个整合页面,拼拼的代码,大家凑合看看,效果还不错。

diskspace.php

<form method="POST" action="">
select daytime:
<select name="day">
<option value="<?php echo date("Ymd"); ?>"><?php echo date("Ymd"); ?></option>
<option value="<?php echo date("Ymd",strtotime('-1 days')); ?>"><?php echo date("Ymd",strtotime('-1 days')); ?></option>
<option value="<?php echo date("Ymd",strtotime('-2 days')); ?>"><?php echo date("Ymd",strtotime('-2 days')); ?></option>
<option value="<?php echo date("Ymd",strtotime('-3 days')); ?>"><?php echo date("Ymd",strtotime('-3 days')); ?></option>
<option value="<?php echo date("Ymd",strtotime('-4 days')); ?>"><?php echo date("Ymd",strtotime('-4 days')); ?></option>
<option value="<?php echo date("Ymd",strtotime('-5 days')); ?>"><?php echo date("Ymd",strtotime('-5 days')); ?></option>
<option value="<?php echo date("Ymd",strtotime('-6 days')); ?>"><?php echo date("Ymd",strtotime('-6 days')); ?></option>
</select>
<input value="submit" name="submit" type="submit">
</form>
<?php
if ($_POST['submit']){
    $dateday = $_POST['day'];
}else{
$dateday = date("Ymd");
}
$list = array();
foreach(glob("diskspace_logs/*$dateday*.txt") as $f) {
    $list[basename($f,".txt")] = $f;
}
echo "<br/>";
echo "<table border='0'>";
foreach($list as $path){
$filename= $list[basename($path,".txt")];
$str=file_get_contents($filename);
$arr=explode("\n",trim($str));
$i=0;
echo "<tr>";
foreach($arr as $row){
$temp=preg_split('/[\s]+/', $row);
echo "<td>";
if($i>1){
$FreeSpace= sprintf("%.2f", $temp[1]/1073741824);
$Size= sprintf("%.2f", $temp[2]/1073741824);
$syl=round((1-($FreeSpace/$Size))*100).'%';
if($FreeSpace <= "5"){
echo $temp[0]."--<strong style='background:red'>".$FreeSpace."</strong> --".$Size."--".$syl."&nbsp;";
}else{
echo $temp[0]."--".$FreeSpace."--".$Size."--".$syl."&nbsp;";
}
}elseif($i==0){
echo $temp[0]."&nbsp;&nbsp;";
}
$i++;
echo "</td>";
}
echo "</tr>";
}
echo "</table>";
?>

注:记得注意一下FTP过来的txt文件目录,还需要一个php环境。


当然大家可以直接把这些放在一个搭建好环境的服务器上,方便长期使用和访问,我嘛就临时代劳一下就直接用的整合的小软件在自己电脑上搭了个环境。

评论:(2)复制地址
发布:zpblog | 分类:Windows | Tags:磁盘

评论列表:

新闻头条

评论于2019-05-14 22:55:33
文章不错支持一下吧,非常喜欢 - 回复该评论

头条

评论于2019-09-11 02:12:09
文章不错支持一下吧 - 回复该评论

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。