从脚本编写到面向对象的 Python 编程
2008-09-23 12:46:56 来源:WEB开发网PHP 磁盘监视示例
<html>
<body>
<?php
//Analyzes disk usage
//Takes regex pattern and message
function disk_space( $pattern="/2[0-9]%/", $message="CAPACITY WARNING:" )
{
exec(escapeshellcmd("df -h"),$output_lines,$return_value);
foreach ($output_lines as $output) {
if (preg_match( $pattern, $output ))
echo "<b>$message</b> $output <br />";
}
}
disk_space()
?>
</body>
</html>
如果您在浏览器中运行此网页,将会获得以下结果: CAPACITY WARNING: /dev/sda1 3.8G 694M 2.9G 20% /
查看该代码,可以看到正则表达式模式被设置为匹配某个包含 20-29% 的行。可以容易地修改此模式以适应其他标志,例如 90-99%,因为 20% 是非常低的磁盘容量。
下面让我们看一下如何在 Bash 函数中完成同样的事情。在 Bash 中,该问题要容易解决得多,因为您实际上是在处理系统调用。在此示例中,您甚至不需要使用数组或正则表达式库,因为使用到 grep 的管道容易多了。不过,在 Bash 中设置函数的缺省参数始终有点麻烦。
Bash 磁盘监视示例
#!/usr/bin/env bash
#function flags disk usage takes pattern and message optionally
function disk_space ()
{
#checks for pattern parameter
if [ "$1" != "" ]; then
pattern=$1
else
pattern="2[0-9]%"
fi
#checks for message parameter
if [ "$2" != "" ]; then
message=$2
else
message="CAPACITY WARNING:"
fi
#looks at output for pattern to flag
output_lines=`df -h | grep $pattern`
if [ "$output_lines" != "" ]; then
echo $message $output_lines
fi
}
#example of optional parameters usage
#disk_space 9[0-9]% ALERT:
disk_space
- ››编写Linux定时处理程序
- ››面向对象的JS-私有成员变量实现方式
- ››编写Linux系统下Daemon程序的方法步骤
- ››编写组件,使用JavaScript更新UpdatePanel
- ››面向对象的JavaScript (一、对象基础,使用函数来...
- ››编写多文档应用程序
- ››面向对象数据库 db4o 之旅,第 4 部分: 使用 dRS
- ››编写自定义的 Android Preference 组件
- ››编写高效的Android代码
- ››编写 Android第一个程序 Hello, Android!
- ››编写使用root权限的android应用程序
- ››面向 Java Web 应用程序的 OpenID,第 2 部分: 为...
更多精彩
赞助商链接