|
发表于 2009-6-24 20:30:32
|
显示全部楼层
我做了下测试,是没什么问题的,下面我把我的测试方法说一下。
新建一个test.txt记事本,里面输入的数据如下:
测试开始
show 192.168.1.1 4D-5F-2C-AC-DA 2009-06-24
......
show 192.168.1.2 4D-5F-2C-AC-DA 2009-06-24
......
show 192.168.1.3 4D-5F-2C-AC-DA 2009-06-24
.......
测试结束
说明:因为没有接触过交换机,我不知道数据是怎么样的,所以自己假设了一下,这里只有ip是变化的,因为后面的触发是检索ipmac,所以其他变不变化无所谓。
建立数据库:
数据库的fields有:ip 、 mac、 ipmac、 time、 age,类型都为txt
建立触发如下:
#TRIGGER {show%s(%x)%s(%x)%s(%x)} {#add num 1;#var ipmac %1m%2;#if (%find( @ipmac, all, ipmac)) {#dbput %find( @ipmac, all, ipmac) {ip=%1|mac=%2|age=%3|ipmac=@ipmac|time=%time( c)}} {#new all {ip=%1|mac=%2|age=%3|ipmac=@ipmac|time=%time( c)}}}
#TRIGGER {测试结束} {#show @num}
#TRIGGER {测试开始} {#var num 0}
这里对%find命令和#dbput做一下说明:
1、%find
Syntax: %find(s[,view,col]))
returns a list of records in a database whose first column contains the string s. If view is specified, it is a string list whose first value is the name of the View to search, and optional second item is the two-character database name. Col is the name of the column to search instead of the first column and is optional. The string list that is returned is a list of record numbers with the database name attached.
s为要检索的字符串,view是视图,这里默认为all,col是要检索的fields。
对应上面触发的就是:%find( @ipmac, all, ipmac) ;表示在all视图的ipmac中检索@ipmac
2、#dbput
Syntax: #DBPUT database-rec value-list
Saves new data to an existing database record. database-rec is the record number to set, with the optional two-character database name appended to it. The value-list is either a database variable, or a series of field names and values for the fields, or of th format "Name1=Value1|Name2=Value2|etc"
DBPUT Examples
#DBPUT 20 Name Zugg Class Warrior
sets the Name and Class fields of record 20 to Zugg and Warrior respectively
从例子中可以看出#dbput 后面要带序号再带内容。
对应触发是:#dbput %find( @ipmac, all, ipmac) {ip=%1|mac=%2|age=%3|ipmac=@ipmac|time=%time( c)}
好下面看一下结果
从图片中可以看出,共载入208条数据,数据库中ipmac栏没有重复的数据,说明测试是成功的。
另外我测试过把数据增加到5000条,然后用#send输入,也不会出现重复数据。
这是我的测试数据
[ 本帖最后由 maper 于 2009-6-24 08:34 PM 编辑 ] |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|