Ttyutils 是一套 UNIX、Linux 终端会话监控软件工具包,也是一个可定制和扩展的平台。通过建立一个伪终端来运行一个程序,Ttyutils 能够截获被监控程序全部的输出数据,以及完整的控制被监控程序的标准输入。
在截获程序的输出数据之后,Ttyutils 可以将这些数据录制到一个压缩和加密的文件中,后续可以通过一个播放器回放来重现当时的会话,或者将这些数据发送给网络上的一个监控客户程序来达到实时终端会话监控的目的。
另外,Ttyutils 将利用截获到的数据在内存中建立一个虚拟终端,这个终端的内容总是和用户在屏幕上看到的内容保持一致,它类似于 xterm 这样的终端仿真器,但是在内存中,对用户不可见。
用户可以通过在这个内存终端仿真器上设置屏幕特征匹配条件来触发定制的动作,例如当屏幕上第一行中第一列到第十列的内容匹配正则表达式 ".*[0-9]{4}.*" 时,发送一封邮件到某个邮箱,或者弹出一个对话框,等等。触发的动作是用户自己编写的一个程序,它可以干任何它喜欢的事情。
和 Telnet、SSH 等软件不同,Ttyutils 不能帮助你登陆到远程的主机,它只能监控已经登陆的终端会话,可以将 Ttyutils 理解为运行在终端上的外挂软件包。
Ttyutils 定位为二次开发平台,除了基础的文件录制/播放、实时监控功能之外,其它功能都服务于二次开发,这让 Ttyutils 无比灵活,开发人员可以基于 Ttyutils 快速开发出满足特定业务需求的应用系统。
我们总是希望 Ttyutils 能够更好更多的适应不同的应用场合。事实上也确实如此,我们基于 Ttyutils 开发了几个不同的应用系统,它们的项目目标有很大的差异,但基础平台都是一样。这个特点是 Ttyutils 的一个与众不同之处。
初次接触 Ttyutils 的用户可能对上面的描述不甚理解,可以看看终端监控解决方案,如果对 Ttyutils 的内部好奇,可以看看刊登在 IBM DeveloperWorks 网站上的 使用 Ttyutils 截获 UNIX/Linux 终端。
基本特征
内置 vt102+xterm 兼容的虚拟终端仿真,支持字符属性、色彩,内部编码使用 Unicode,支持字符集转换。支持长城、实达、新大陆、湘计等国常用的终端辅串口指令序列,可以通过简单的扩展配置来支持更多的终端类型。
Ttyutils 的绝大多数代码使用 C 语言编写,具备良好的性能和可移植性。在运行时需要很少的内存资源,没有内存泄漏。Ttyutils 自身不会记录截获的信息到任何地方,同时也提供了安全机制来确保截获的信息不被非法使用。
内嵌 Lua 解释器,用户可以用 C 和 Lua 语言来扩展 Ttyutils 的功能。精细的配置允许用户灵活的控制 Ttyutils 各方面的行为,配置文件自身是一个 Lua 脚本文件,用户可以在其中应对各种环境,例如访问数据库、连接网络,等等。
Ttyutils RPC(远程过程调用) 协议允许管理员在远程管理 Ttyuils,或者允许第三方应用程序访问 Ttyutls 提供的服务。Ttyutils 对 RPC 协议进行封装后提供了一组 API 接口,开发人员使用这组接口时不用理会协议的细节。除了可以使用 C/C++ 语言访问这组接口外,还可以使用 Lua 和 Python 语言来访问。
基于插件的体系让扩展新功能更加方便容易,可以根据具体的应用场合选择使用或禁用特定的插件,安装新插件不需要修改和升级现有的系统。可以使用 C 和 Python 两种语言来开发插件。
强大的控制台允许管理员从远程动态调整 Ttyutils 的运行时行为,方便快捷。控制台支持 Lua 语言脚本,可以为控制台开发扩展模块来满足特定的需求。
中心服务器可以管理运行在一台或者多台主机上的多个监控程序实例,这让监控系统运行状况一目了然。也可以在没有中心服务器的情况下运行监控程序,这可以灵活部署。
事件触发机制允许用户精确的控制终端会话,事件触发条件可以匹配热键、光标位置,以及用正则表达式去匹配当前屏幕上的内容。事件程序可以使用 C、C++、Lua,以及 Ttyutils RPC 协议支持的邦定语言编写。因为 RPC 协议提供有 C 语言接口,用户如果要邦定到新的语言也不会有太大困难。
可以将程序的输出数据录制到一个加密和压缩的文件中。提供有图形版本的播放器用来播放 Ttyutils 录制的文件。图形版本播放器可以在支持 X11 的平台上运行,也可以在 Microsoft Windows 平台上运行。当然,Ttyutils 也提供了在终端中运行的播放器。
内置监控服务器,监控客户端能够连接到这个服务器来实时查看终端屏幕上的输出。监控客户端有两个版本,一个在终端中运行,一个在图形环境运行,图形版本的监控客户端可以在支持 X11 的平台上使用,也可以在 Microsoft Windows 平台上使用。
Ttyutils 基础库提供了监控终端所需要的各项功能,用户可以利用它来实现适应自己特殊需求的终端监控软件。Ttyutils 软件包中的文件录制工具、播放工具等都是基于 Ttyutils 库的简单应用。
可以在很多 UNIX、Linux 操作系统上使用,不需要对操作系统进行特殊的修改或配置。Ttyutils 和外界通讯都采用业界广泛认可的、有详细规范的标准格式,可以和其它标准兼容的软件互操作。
支持国际化,Ttyutils 会根据系统当前的语言环境自动选择相应的语言,目前支持中文和英文。可以通过翻译一个独立的文件来支持更多的语言。当 Ttyutils 运行在不支持的语言环境时,将使用英语。
需要少量的磁盘空间来安装,需要少量的内存来运行。Ttyutils 采用目标系统包管理系统支持的格式来发布,安装和升级都非常方便。Ttyutils 运行时需要 OpenSSL、ZLib、GLib 的支持,通常它们是系统的标准配置。
详细的文档,本站点包含超过 270 页的文档,几乎涵盖了 Ttyutils 各方面的信息,并且总会根据软件的升级以及用户的反馈不断改进。
基于 MIT 授权协议发布,可以在开放源代码项目中使用,也可以在商业和封闭源代码项目中使用。Ttyutils 内部使用了 OpenSSL、ZLib、GLib 和 Lua 来实现一些特定的功能,它们的授权和 Ttyutils 授权协议没有冲突。
Ttyutils
在实现上是小巧的、稳定的。实践证明,用户在一台 Linux 或者 AIX 主机上使用 Ttyutils 监控成百上千个终端,连续工作 11
个月以上不会出现任何问题。Ttyutils 非常快,用户在被监控的终端上操作时感觉不到任何明显的延迟。
适用环境
Ttyutils 主要用于以 UNIX/Linux 终端作为用户接口的环境,这包括:
终端监控解决方案中的描述更加具体,比较切合实际应用。操作系统
Ttyutils 正在下列操作系统上稳定运行,其中既有 32 位主机,也有 64 位主机:
- IBM AIX
- SCO UNIX
- Redhat Enterprise Linux
理论上,Ttyutils 可以移植到所有兼容 SUS(单一UNIX规范)的操作系统。这包括 AIX、HP/UX、Mac OS X、Mac OS X Server、SCO、Solaris、Tru64 UNIX、z/OS 等等。Linux、*BSD、Darwin 等系统虽然没有经过 SUS 认证,但事实上它们是兼容的。 硬件生产商
通常,终端外设厂商总是跟随软件系统的需求来开发各种硬件产品,这很被动。利用 Ttyutils,可以在不修改现有应用系统的情形下,利用 Ttyutils 的事件触发机制结合编写事件程序的能力,让系统支持新的设备。这提高了硬件生产商的灵活性,加快硬件的更新换代周期,为硬件市场注入活力。
我们已经利用这种模式带动了一批新硬件设备的应用,包括预填单机、高级密码键盘,等等。
软件开发商
软件开发商可以利用 Ttyutils 的二次开发能力来构建面向最终用户的软件产品。Ttyutils 自身只提供终端监控所需的基础能力,这多半不是最终用户需要的。软件开发商能够基于 Ttyutils 为客户量身打造符合特定需求的应用系统。Ttyutils 为二次开发作好了充分的准备。
我们已经基于 Ttyutils 为我们的客户打造了几个这样的应用系统,并在不断寻找新的方向。
无担保
本站点提供的任何信息、资料、软件等仅供参考或试用,作者不提供任何的担保,包括没有适合特定目的的隐含的担保。天用唯勤科技提供有偿的技术支持和产品定制服务。
技术参考
文档授权
本站点提供的所有关于 Ttyutils 的文档、资料基于 GNU自由文档许可证 发布。
Copyright © 2008, 2009 Ttyutils Project.
Permission is granted
to copy, distribute and/or modify this document under the terms of the GNU Free
Documentation License, Version 1.2 or any later version published by the Free
Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no
Back-Cover Texts. A copy of the license is included in the section entitled "GNU
Free Documentation License".
为方便读者,本站引用了部分第三方资源、文档、信息,这些内容不完全按照 GFDL 授权协议发布,如果损害了原作者的利益,请来信告知,本站将在第一时间删除。本站绝不提供任何明确要求不允许对公众开放的内容。