快速业务通道

使用 Ttyutils 截获 UNIX/Linux 终端

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-05-09
监控用户在终端上的会话的话,那么只需要使用前面描述的内容即可,但是如果还想得到更多,那么就可能需要这里描述的内容- 事件触发.

ttyexec 的一个有用的机制是事件触发,它是根据被监控程序的标准输出引起终端屏幕的变化来工作的,每当被监控程序改变终端屏幕的内容时,ttyexec 会根据更新后的屏幕内容与事件表中的事件条件进行匹配,如果成功,那么就会执行一个事件定义的程序.

事件表

在 ttyexec 内容维护了一个事件表,每个节点是一个事件,每个事件由 4 个部分组成:

事件的名称;
事件的组名称;
事件的匹配器;
事件的动作;
事件名称 是事件唯一的标识, 事件组名称 是对多个事件的划分,这两个名称主要用于事件的管理.

事件匹配器 由一个或多个 事件条件 组成,每个 事件条件 又根据类型的不同而不同,我们介绍完虚拟终端后再回头描述事件条件.

事件动作 是一个程序的名称和它的参数 ( 如果有的话 ),它是一个标准的可执行程序,在事件的匹配器得到匹配时执行.

虚拟终端

ttyexec 内部运行着一个虚拟的终端,它可以正确的解析发送到实际终端的那些控制序列,并在内存中重构一个和真实终端屏幕一样大小的屏幕,它的内容和用户在实际终端上看到的是一样的,但是对于用户而言,它是不可见的.

每当被监控的程序改变终端屏幕的内容时,ttyexec 的虚拟终端也会同步更新自己的屏幕,然后它开始检查事件表,如果发现了匹配的事件,就执行为事件定义的事件动作.

事件匹配

在 ttyexec 的事件表的每个事件中, 事件匹配器 由一到多个 事件条件 组成, 事件条件 是真正要去和虚拟终端屏幕比对的单元, 事件匹配器 只有在所有事件条件都匹配的情况下才是匹配的.

每个 事件条件 的类型有两种,第一种是根据光标的位置,第二种是根据屏幕上的数据.

光标位置是指光标到达某个指定的坐标时,条件就得到了满足,这种类型的条件需要两个参数,坐标的行和列.

屏幕的内容是指屏幕某个区域的内容达到预期的值,这种类型的条件需要四个参数,行,起始列,长度,以及一个正则表达式.

一个 事件匹配器 可以包含多个条件,并且只有匹配器中的所有条件都得到满足时,匹配器才算匹配,可以定义出很精确的匹配,当然也可以定义很模糊的匹配.

事件表维护

事件需要根据不同的应用场合而进行独立的设置,有能力去管理 ttyexec 的事件表,这需要了解一些基本的计算机编程.

有两种途径来管理 ttyexec 的事件表,第一种是通过 ttyexec 的配置文件,叫做 ttyexec.lua,这个文件使用标准的 Lua 程序语言.这种方式称为静态事件管理.

第二种方式是使用 ttyutils 提供的编程接口,外部程序可以动态的维护 ttyexec 事件表,这种方式称为动态事件管理.动态事件管理很强很实用,这样我们就可以在事件触发之后的程序中再去动态的管理 ttyexec 的事件表,这可以为事件提供了上下文关系.

在一个复杂的环境中,通常利用静态管理来维护 ttyexec 的初始事件,而在适当的时候利用动态事件管理来动态的维护 ttyexec 的事件表.

RPC 服务

远程过程调用 (remote process call)RPC 服务是 ttyexec 为进程间通讯提供的接口,注意它和 SUN RPC 没有任何的关系,并且不能跨网络使用.

当事件触发时,事件动作程序被启用,事件动作程序是一个标准的应用程序,它可以做任何它喜欢的事情,但是有时候,它需要和 ttyexec 交互,例如它可能需要获取当前终端屏幕的内容, ttyexec 为这样的情况提供了准备,称为 RPC 服务.

Ttyexec 提供了下面的服务 :

snap: 获取当前终端屏幕的快照;
feed: 发送数据作为实终端的标准输入;
suspend/resume_stdio: 悬挂 / 恢复实终端标准输入;
suspend/resume

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号