<?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. Document 按照xml格式输出

    private void GetXMLDocument(Document doc) { OutputFormat format1 = new OutputFormat(" ", t ...

  2. 科技部专家王涌天:移动AR头显将“让人类重新站起来”

    目前,业内普遍认为VR和AR技术将是继移动手机之后的下一代计算平台,将给社会的方方面面带来全新的改变.近日,北京理工大学信息与电子学部主任.科技部863信息技术领域专家组成员王涌天教授对头戴式增强现实 ...

  3. Android ListView item项 显示动画

    (1)使用LayoutAnimation 所谓的布局动画,其实就是为ViewGroup添加显示动画效果,主要用过LayoutAnimationController来控制实现.LayoutAnimati ...

  4. topcoder SRM 610 DIV2 DivideByZero

    题目的意思是给你一组数,然后不断的进行除法(注意是大数除以小数),然后将得到的结果加入这组数种然后继续进行除法, 直到没有新添加的数为止 此题按照提议模拟即可 注意要保持元素的不同 int Count ...

  5. ACM 无线网络覆盖

    无线网络覆盖 时间限制:3000 ms  |  内存限制:65535 KB 难度:3   描述 我们的乐乐同学对于网络可算得上是情有独钟,他有一个计划,那就是用无线网覆盖郑州大学. 现在学校给了他一个 ...

  6. ACM 6174问题

    6174问题 时间限制:1000 ms  |  内存限制:65535 KB 难度:2   描述 假设你有一个各位数字互不相同的四位数,把所有的数字从大到小排序后得到a,从小到大后得到b,然后用a-b替 ...

  7. 2076. The Drunk Jailer

    Problem A certain prison contains a long hall of n cells, each right next to each other. Each cell h ...

  8. Android -- shape 定义控件的属性

    <shape> <!-- 实心 --> <solid android:color="#ff9d77"/> <!-- 渐变 --> & ...

  9. BZOJ2097[Usaco2010 Dec] 奶牛健美操

    我猜我这样继续做水题会狗带 和模拟赛的题很像,贪心搞一下. #include<bits/stdc++.h> using namespace std; int read(){ ,f=;cha ...

  10. Top Deep Learning Projects in github

    Top Deep Learning Projects A list of popular github projects related to deep learning (ranked by sta ...