简单网络管理语言(Simple Network Management Language)是一种类自然语言的脚本语言,它采用snmp、telnet、ping、dns、arp、ssh、tcp、udp、web等协议访问网络设备,内置smtp协议用于告警等邮件的发送,支持excel、mysql、sqlite等3种方式进行网管数据的存取。
手册最新版:https://ladybirdsnml.github.io/snmlipv6utf8snmptelnetsshweb/snmldoc_utf8ipv6.html
第17章、mysql
MySQL 是最流行的关系型数据库管理系统之一。MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL分为社区版和商业版,体积小、速度快。
1、mysql语句分析
mysql.open ip {18.25.9.56} port {3306} user {admin} password {Dbpassword} database {snmldb2}
连接mysql数据库服务器,IP地址“18.25.9.56”,端口号“3306”,用户名“admin”,密码“Dbpassword”,打开的数据库名字“snmldb2”
mysql.exec {select count(*) as logcount from snml_log}
执行sql语句,create,select等语句
mysql.log {mysql测试:v_i=~v_i~}
日志记录语句,将在mysql服务器的表snml_log中插入记录,参数值写入log字段,同时自动写入的字段有
log_id、nms_file、nms_errors、run_pid、cur_time、run_steps、run_line、run_errors、run_seconds、run_argc、var_count、var_bytes、text_bytes、memo等
注意:需要在MySql数据库上建立表:snml_log,创建该表的SQL语句如下:
CREATE TABLE `snml_log` (
`log_id` int(20) NOT NULL AUTO_INCREMENT,
`nms_file` varchar(512) DEFAULT NULL,
`nms_errors` int(11) DEFAULT NULL,
`run_pid` int(11) DEFAULT NULL,
`cur_time` datetime DEFAULT NULL,
`log` varchar(1020) DEFAULT NULL,
`run_steps` int(11) DEFAULT NULL,
`run_line` int(11) DEFAULT NULL,
`run_errors` int(11) DEFAULT NULL,
`run_seconds` int(11) DEFAULT NULL,
`run_argc` int(11) DEFAULT NULL,
`var_count` int(11) DEFAULT NULL,
`var_bytes` int(11) DEFAULT NULL,
`text_bytes` int(11) DEFAULT NULL,
`memo` varchar(512) DEFAULT NULL,
PRIMARY KEY (`log_id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
2、示例脚本[C:\snmlipv6\mysql\mysql_utf8.txt]
C:\snmlipv6\mysql\mysql_utf8.txt
001screen.text at point {150} {30} string {17. mysql Test: mysql.open,mysql.exec,mysql.log}
002var {v_y} value {60}
003
004screen.text at point {10} {~v_y~} string {No.}
005screen.text at point {250} {~v_y~} string {Test Sql: delete, select; Test mysql.log}
006screen.line from point {10} {75} to point {50} {75}
007screen.line from point {70} {75} to point {630} {75}
008
009var {v_time} value datetime
010var {v_i} value {0}
011
012loop.begin
013
014 var {v_i} add number {1}
015 var {v_y} add number {18}
016
017 mysql.open ip {18.25.39.56} port {3306} user {Admin} password {Mypassword} database {snmldb2}
018 mysql.exec {delete from snml_log where 1=1}
019 mysql.log {mysql Test: v_i=~v_i~}
020 mysql.exec {select count(*) as logcount from snml_log}
021 mysql.exec {select * from snml_log}
022
023 screen.text at point {10} {~v_y~} string {~v_i~}
024 screen.text at point {70} {~v_y~} string {mysql.errno=[~mysql.errno~], mysql.server.version=[~mysql.server.version~], mysql.rows=[~mysql.rows~], mysql.1.log=[~mysql.1.log~]}
025
026 if.var {v_y} > {200}
027
028 loop.exit
029 if.end
030loop.end
031run.end
脚本执行画面如下:
变量值如下:
33 mysql.client.version=[6.1.11]
34 mysql.server.version=[5.7.20-log]
35 mysql.errno=[0]
36 mysql.error=[]
37 mysql.rows=[1]
38 mysql.fields=[15]
39 mysql.1.logcount=[1]
40 mysql.1.log_id=[4476]
41 mysql.1.nms_file=[C:\snmlipv6\mysql\mysql_utf8.txt]
42 mysql.1.nms_errors=[0]
43 mysql.1.run_pid=[9132]
44 mysql.1.cur_time=[2020-02-09 22:09:38]
45 mysql.1.log=[mysql Test: v_i=8]
46 mysql.1.run_steps=[138]
47 mysql.1.run_line=[19]
48 mysql.1.run_errors=[0]
49 mysql.1.run_seconds=[13]
50 mysql.1.run_argc=[3]
目录:1、var2、screen3、snmp4、telnet5、text6、if7、loop8、dns9、ping10、arp11、excel12、smtp13、tcp14、udp15、ssh16、web17、mysql18、sqlite19、Run20、sys21、macro附录1、全部语句