<?php
/*
*获取某个磁盘的剩余空间
*$param 关联数组,下标是哪个盘,单位,可以是B,KB,MB,GB
*可以设置获取多个磁盘,例如:array('C'=>'KB','D'=>'MB','E'=>'GB','F'=>'B')
*假如出错,返回false
*/
function Space($arr){
//检查参数
if(is_array($arr)){
//初始化存储值
$memory = array();
foreach($arr as $disk=>$size){
$D = strtoupper($disk).':';//转化为大写的键盘路径
$S = strtoupper($size);//转变为大写的单位
if(in_array($D,array('C:','D:','E:','F:')) && in_array($S,array('B','KB','MB','GB','TB'))){
switch($S){
case 'B':
$memory[$disk]= disk_free_space($D).'B';
break;
case 'KB':
$d = round(disk_free_space($D) / 1024);
$memory[$disk] = $d .'KB';
break;
case 'MB':
$d = round(disk_free_space($D) / pow(1024,2));
$memory[$disk]= $d.'MB';
break;
case 'GB':
$d = round(disk_free_space($D) / pow(1024,3));
$memory[$disk]= $d.'GB';
break;
case 'TB':
$d = sprintf("%.4f", disk_free_space($D) / pow(1024,4));
$memory[$disk] = $d .'TB';
break;
default:
return 0;
break;
}
}else{
return null;
}
}
return $memory;
}else{
return null;
}
}
$arr = array('c'=>'kb','d'=>'Mb','e'=>'Gb','f'=>'Tb');
var_dump(Space($arr));

  根据上面获取磁盘可用空间,我们可以利用电脑的定时器进行磁盘监控,并报警磁盘的剩余空间应急

  //要报警的磁盘和设置的单位
$di = array('c'=>'gb','d'=>'gb','e'=>'gb','f'=>'gb');
$_space = Space($di);
//应急配置
$alarm = '50GB';
$data = array();
//报警处理
foreach ($_space as $k=>$v){
//当磁盘空间小于50GB的情况
if(intval(substr($v,0,-2)) <= intval(substr($alarm,0,-2))){
$data[] = array('data'=>$k.'磁盘空间不足'.$v.',请尽快处理');
}
}
echo json_encode($data,JSON_UNESCAPED_UNICODE);

获取windows磁盘的可用空间函数的更多相关文章

  1. Linux系统查看磁盘可用空间的5个命令

    大家好,我是良许. 工作中,经常会遇到磁盘爆满的情况,尤其是一台服务器运行了 N 年之后,里面会充满各种各样垃圾文件,比如:编译产生的中间文件.打包的镜像文件.日志文件,等等. 别问我怎么知道,我上家 ...

  2. Linux C++获取磁盘剩余空间和可用空间

    完整源码 #include <sys/statfs.h> #include <string> #include <iostream> #include <li ...

  3. 数据库还原总提示空间不够,磁盘卷 'D:\' 上的可用空间不足,无法创建数据库

    从数据库上备份下来bak格式的数据库文件之后,在本地数据库欢迎的时候总是提示空间不够. 这种情况一般在从64位电脑上面备份的数据库文件,还原到32位的sqlsever上面. System.Data.S ...

  4. 获取Windows系统中的所有可用和在用串口

    目的:获取Windows系统中的所有可用和在用串口 方法:注册表查询法 优点:简单.实用.快速.无遗漏,无多余结果. 说明:另外还有8种方法可以枚举串口,但都不如此法. 代码和详细注释如下: //-- ...

  5. Delphi调用API函数获取Windows目录信息、获取System目录信息、获取Temp临时文件目录信息

    var Str1, Str2: Array[..Max_Path]of Char;//开辟缓冲区 Str3: Array[..]of Char; begin GetWindowsDirectory(@ ...

  6. zabbix监控windows磁盘空间

    监控windows磁盘空间,不是百分比. 当windows系统添加相应的windows模板后,会自动生成检测系统空间的监控项,在应用集(Filessystem)里面,Free disk space o ...

  7. C# 获取Windows系统:Cpu使用率,内存使用率,Mac地址,磁盘使用率

    一.获取CPU使用率: #region 获取CPU使用率         #region AIP声明          [DllImport("IpHlpApi.dll")]   ...

  8. Linux/Unix shell 脚本监控磁盘可用空间

    Linux下监控磁盘的空闲空间的shell脚本,对于系统管理员或DBA来说,必不可少.下面是给出的一个监控磁盘空间空间shell脚本的样本,供大家参考. 1.监控磁盘的空闲空间shell脚本 robi ...

  9. 3. SQL Server数据库状态监控 - 可用空间

    原文:3. SQL Server数据库状态监控 - 可用空间 数据库用来存放数据,那么肯定需要存储空间,所以对磁盘空间的监视自然就很有必要了. 一. 磁盘可用空间 1. 操作系统命令或脚本.接口或工具 ...

随机推荐

  1. BZOJ4157 : 星际瘟疫

    首先剔除所有从$R$不可到达的点,然后用Lengauer-Tarjan算法建立出以$R$为起点的Dominator Tree. 那么对于每个询问,求出那些点的父亲的LCA,那么答案就是LCA到根路径上 ...

  2. BZOJ 2957 & 线段树上的查询

    题意: 小A的楼房外有一大片施工工地,工地上有N栋待建的楼房.每天,这片工地上的房子拆了又建.建了又拆.他经常无聊地看着窗外发呆,数自己能够看到多少栋房子. 为了简化问题,我们考虑这些事件发生在一个二 ...

  3. Java中集合Set的用法

    转载 http://blog.163.com/asd_wll/blog/static/210310402010112833332260/ 1.HashSet类 Java.util.HashSet类实现 ...

  4. Code[VS] 1022 覆盖 题解

    Code[VS] 1022 覆盖 题解  Hungary Algorithm 题目传送门:Code[VS] 1022 题目描述 Description 有一个N×M的单位方格中,其中有些方格是水塘,其 ...

  5. 淘宝UED上关于chrome的transition闪烁问题的解决方案

    前段时间,有同事和会员反馈使用Chrome访问淘宝首页会出现画面闪动的现象,但是我在Mac和Win下面的Chrome都无法重现这个问题,后来重装了一遍Win7下的Chrome Beta版本,终于重现了 ...

  6. The Skins of the Substance

    This blog is about a java jar file : Substance.jar well, you can get it from links as below: http:// ...

  7. VS开发好用的扩展

    VS开发好用的扩展(转) 转自:http://www.haogongju.net/art/1977373 首先为大家介绍一下开发字体,做程序开发,代码可读性,在侧面也能帮助开发提高效率,所以给大家介绍 ...

  8. Introduction of SQLite

    SQLite is a lightweight, server-less database, it's great for embedding into client application. It ...

  9. 原生js获取Html元素的实际宽度高度

    第一种情况就是宽高都写在样式表里,就比如#div1{width:120px;}.这中情况通过#div1.style.width拿不到宽度,而通过#div1.offsetWidth才可以获取到宽度. 第 ...

  10. 数位DP HDU3652

    B-number Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Su ...