参阅安装目录下checkscript目录下相关检测脚本文件。诊断脚本是本系统推出的组态合理性检测及修复工具,收集整理了本系统在实际使用过程中,经常出现的配置不合理、垃圾堆积等问题,为新用户正常配置使用本系统提供了极大的帮助。阅读下述内容的过程请参阅随系统安装包的脚本文件,结合本文档,相信你一定可写出属于自己的检测脚本。
检测脚本
检测脚本采用XML格式进行编制,每个脚本包含一个检测项,总体格式举例如下:
<?xml version="1.0" encoding="UTF-8"?>
<SCRIPT SCORE="10">
<NAME>[系统]系统用户配置信息</NAME>
<DESC>若只有一个用户无法完成遥控操作等需要安全监督的操作。</DESC>
<PROMPT>select '系统至少应有两个用户'</PROMPT>
<SOURCE>DB</SOURCE>
<PROCESS>UNREPAIR</PROCESS>
<CHECK_EXPRESSION>select no from usercfg where (select count(*) from usercfg) < 2</CHECK_EXPRESSION>
</SCRIPT>
脚本模板结构如下图:
<SCRIPT>
这是脚本根标识,
[SCORE]: 属性项,表示该检测项的分数。
<NAME>
检测项概要,必需。
简短描述检测项要完成的检测内容,如:“[系统]系统用户配置信息”
<DESC>
检测项说明,必需。
详述检测项要检测的主要问题、来源及目的等,如:“若只有一个用户无法完成遥控操作等需要安全监督的操作。”
<PROMPT>
问题描述,可选。
检测项可能会检测出多个存在的问题,该节描述问题该如何提示。如:“select '系统至少应有两个用户'“,又如:"select station.name,ykcfg.name from ykcfg join station on ykcfg.station = station.no where ykcfg.station = %d and ykcfg.no = %d"。
每个导出的列都应是字符串类型的。诊断工具会依次组织这些字段并用冒号(:)分隔。
注意:第一个事例中的两个格式符(%d),这是诊断工具内部非常重要的两个关键字,每个问题项将以此为唯一索引,若需对每个问题有不同的提示时,这两个关键字非常有用。称为KEY1和KEY2。关于这两个关键字在后续章节将进一步介绍。
<SOURCE>
检测项源,必需[DB 或FILE]
DB – 数据库脚本
FILE – 磁盘文件
描述检测项的分类,二选一。
<PROCESS>
检测项处理标识,必需[PROMPT、REPAIR或UNREPAIR]
PROMPT – 仅提示(暂不用)
REPAIR – 可修复
UNREPAIR – 不可修复
描述检测项的处理方式,三选一。
<PREPROCESS>
数据库预处理脚本集,可选
这部分脚本仅对数据库脚本有效,如临时表、用户定义函数、存储过程等高级SQL特性,可通过这部分进行描述。
<CHECK_EXPRESSION>
检测脚本,必需。
该节脚本是最关键的,对于DB脚本而言,需要特别注意记录集前两个域的输出格式必须是整型,这两个域将作为问题唯一性关键字KEY1和KEY2。如“select station,no from ykcfg where (closedown & 0x2000) > 0”,其中“STATION”和“NO”均为整型域,而且STATION + NO可唯一地确定一个遥控点。再参考一下PROMPT脚本中的事例“select station.name,ykcfg.name from ykcfg join station on ykcfg.station = station.no where ykcfg.station = %d and ykcfg.no = %d”和REPAIR_EXPRESSION脚本中的事例“update ykcfg set closedown = closedown & 0xDFFF where (station = %d) and (no = %d)”。
聪明的您应该可领会到了KEY1和KEY2的深层内含了。其中第一个占位符代表KEY1的值,第二个占位符代表KEY2的值。
该脚本运行后记录集中的每条记录均作为一个问题项存在。
对于FILE类检测项,该节脚本更简单易懂,若表示文件时间差时,用逗号分隔(,)后面为天数。如“DFRFiles\*.dat,7”表示后台安装目录DFRFiles子目录下一周前(7天)所有的扩展名为dat的文件
<REPAIR_EXPRESSION>
修复脚本,可选。
该节脚本仅对数据库脚本有效,用来对问题项进行修复。如“update ykcfg set closedown = closedown & 0xDFFF where (station = %d) and (no = %d)”。
<CLEAR>
数据库清理脚本集,可选。
这部分脚本仅对数据库脚本有效,完成对预处理部分产生的临时表、用户定义函数等的清理工作。
注意事项
XML中的特殊字符
不合法的XML字符必须被替换为相应的实体。主要有5个不合法字符:
不合法字符
|
实体
|
描述
|
<
|
<
|
小于号
|
>
|
>
|
大于号
|
&
|
&
|
与
|
'
|
'
|
单引号
|
"
|
"
|
双引号
|
实体必须以符号"&"开头,以符号";"结尾。
注意:只有"<"字符和"&"字符对于XML来说是严格禁止使用的。剩下的都是合法的。为避免出错,使用实体是一个好习惯。
|