WEB开发网
开发学院软件开发Python 从脚本编写到面向对象的 Python 编程 阅读

从脚本编写到面向对象的 Python 编程

 2008-09-23 12:46:56 来源:WEB开发网   
核心提示: PHP 磁盘监视示例<html><body><?php//Analyzes disk usage//Takes regex pattern and messagefunction disk_space( $pattern="/2[0-9]%/&quo

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

上一页  1 2 3 4 5 6 7  下一页

Tags:脚本 编写 面向

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接