获取windows磁盘的可用空间函数
<?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磁盘的可用空间函数的更多相关文章
- Linux系统查看磁盘可用空间的5个命令
大家好,我是良许. 工作中,经常会遇到磁盘爆满的情况,尤其是一台服务器运行了 N 年之后,里面会充满各种各样垃圾文件,比如:编译产生的中间文件.打包的镜像文件.日志文件,等等. 别问我怎么知道,我上家 ...
- Linux C++获取磁盘剩余空间和可用空间
完整源码 #include <sys/statfs.h> #include <string> #include <iostream> #include <li ...
- 数据库还原总提示空间不够,磁盘卷 'D:\' 上的可用空间不足,无法创建数据库
从数据库上备份下来bak格式的数据库文件之后,在本地数据库欢迎的时候总是提示空间不够. 这种情况一般在从64位电脑上面备份的数据库文件,还原到32位的sqlsever上面. System.Data.S ...
- 获取Windows系统中的所有可用和在用串口
目的:获取Windows系统中的所有可用和在用串口 方法:注册表查询法 优点:简单.实用.快速.无遗漏,无多余结果. 说明:另外还有8种方法可以枚举串口,但都不如此法. 代码和详细注释如下: //-- ...
- Delphi调用API函数获取Windows目录信息、获取System目录信息、获取Temp临时文件目录信息
var Str1, Str2: Array[..Max_Path]of Char;//开辟缓冲区 Str3: Array[..]of Char; begin GetWindowsDirectory(@ ...
- zabbix监控windows磁盘空间
监控windows磁盘空间,不是百分比. 当windows系统添加相应的windows模板后,会自动生成检测系统空间的监控项,在应用集(Filessystem)里面,Free disk space o ...
- C# 获取Windows系统:Cpu使用率,内存使用率,Mac地址,磁盘使用率
一.获取CPU使用率: #region 获取CPU使用率 #region AIP声明 [DllImport("IpHlpApi.dll")] ...
- Linux/Unix shell 脚本监控磁盘可用空间
Linux下监控磁盘的空闲空间的shell脚本,对于系统管理员或DBA来说,必不可少.下面是给出的一个监控磁盘空间空间shell脚本的样本,供大家参考. 1.监控磁盘的空闲空间shell脚本 robi ...
- 3. SQL Server数据库状态监控 - 可用空间
原文:3. SQL Server数据库状态监控 - 可用空间 数据库用来存放数据,那么肯定需要存储空间,所以对磁盘空间的监视自然就很有必要了. 一. 磁盘可用空间 1. 操作系统命令或脚本.接口或工具 ...
随机推荐
- 【BZOJ2243】[SDOI2011]染色 树链剖分+线段树
[BZOJ2243][SDOI2011]染色 Description 给定一棵有n个节点的无根树和m个操作,操作有2类: 1.将节点a到节点b路径上所有点都染成颜色c: 2.询问节点a到节点b路径上的 ...
- Codeforces Testing Round #10 B. Balancer
水题,只要遍历一遍,不够平均数的,从后面的借,比平均数多的,把多余的数添加到后面即可,注意数据范围 #include <iostream> #include <vector> ...
- codeforces round #234B(DIV2) B Inna and New Matrix of Candies
#include <iostream> #include <vector> #include <string> #include <algorithm> ...
- TYVJ P3407 佳佳的魔法照片 Label:语文很重要 语文很重要 语文很重要
描述 佳佳的魔法照片(mphoto.pas\c\cpp) [题目背景] 佳佳的魔法照片(Magic Photo):如果你看过<哈利•波特>,你就会知道魔法世界里的照片是很神奇的.也许是因为 ...
- 彻底弄明白之java多线程中的volatile
一. volatite 简述 Java 语言提供了一种稍弱的同步机制,即 volatile 变量.用来确保将变量的更新操作通知到其他线程,保证了新值能立即同步到主内存,以及每次使用前立即从主内存刷新. ...
- 【CF】438E. The Child and Binary Tree
http://codeforces.com/contest/438/problem/E 题意:询问每个点权值在 $c_1, c_2, ..., c_m$ 中,总权值和为 $s$ 的二叉树个数.请给出每 ...
- NOI模拟赛Day4
看到成绩的时候我的内心** woc第一题写错了呵呵呵呵呵呵呵呵 人不能太浪,会遭报应的** ------------------------------------------------------ ...
- gui学习
GUI 图形用户界面(Graphical User Interface,简称 GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面 有名的实现 : ucgui . 实现围绕几个问题: ...
- Spring MVC中处理静态资源的多种方法
处理静态资源,我想这可能是框架搭建完成之后Web开发的”头等大事“了. 因为一个网站的显示肯定会依赖各种资源:脚本.图片等,那么问题来了,如何在页面中请求这些静态资源呢? 还记得Spring MVC中 ...
- 关于webdriver中弹出框的定位
对于webdriver中弹出框的定位,需要引入这个包: import org.openqa.selenium.Alert; 具体语句为: Alert alert= driver.switchTo(). ...