当前位置: 首页 > 软件库 > 管理和监控 > 系统监控 >

Ttyutils

终端会话监控软件
授权协议 MIT
开发语言 C/C++
所属分类 管理和监控、 系统监控
软件类型 开源软件
地区 不详
投 递 者 邵崇凛
操作系统 Linux
开源组织
适用人群 未知
 软件概览

Ttyutils 是一套 UNIX/Linux 终端会话监控软件工具包,也是一个可定制和扩展的平台。通过建立一个伪终端来运行一个程序,Ttyutils 能够截获被监控程序全部的输出数据,以及完整的控制被监控程序的标准输入。

在截获程序的输出数据之后,Ttyutils 可以将这些数据录制到一个压缩和加密的文件中,后续可以通过一个播放器回放来重现当时的会话,或者将这些数据发送给网络上的一个监控客户程序来达到实时终端会话监控的目的。终端会话播放器、实时监控程序默认都包含在 Ttyutils 中,不用额外安装,立即可用。

除此之外,Ttyutils 将利用截获到的数据在内存中建立一个虚拟终端,这个终端的内容总是和用户在屏幕上看到的内容保持一致,它类似于 xterm 这样的终端仿真器,但是在内存中,对用户不可见。用户可以通过在这个内存终端仿真器上设置屏幕特征匹配条件来触发定制的动作,例如当屏幕上第一行中第一列到第十列的内容匹配正则表达式 '[0-9a-z].*' 时,发送一封邮件到某个邮箱,或者弹出一个对话框,等等。触发的动作是用户自己编写的一个程序,它几乎可以干任何它喜欢的事情。

和 telnet,ssh 等软件不同,Ttyutils 不能帮助你登陆到远程的主机,它只能监控已经登陆的终端会话,您可以将 Ttyutils 理解为运行在终端上的外挂软件包。实际上,Ttyutils 在设计上将其定位为二次开发平台,除了基础的文件录制/播放、实时监控功能之外, Ttyutils 提供的功能都服务于二次开发,这导致 Ttyutils 的很多功能难于使用,却无比灵活。我们总是希望 Ttyutils 能够更好的适应不同的应用场合,事实上也确实如此,看似完全没有干系的两个应用,其基础平台都是采用 Ttyutils。这个特点是 Ttyutils 设计上的一个与众不同之处。

Ttyutils 的用法类似于 shell 内置命令 `exec',所以,Ttyutils 软件包中的主要程序命名为 ttyexec。

初次接触 Ttyutils 的用户可能对上面的描述不甚理解,可以看看终端监控解决方案,如果您对 Ttyutils 的内部原理好奇,可以看看刊登在 IBM DeveloperWorks 中国网站上的 使用 Ttyutils 截获 UNIX/Linux 终端。

特征

    *  内置 vt102+xterm 兼容的虚拟终端仿真,支持字符属性,色彩,等等,内部编码使用 Unicode,支持字符集转换。支持国内常用的终端 (包括长城、实达、新大陆、湘计) 辅串口指令序列,可以通过简单的扩展配置来支持更多。
    *  灵活的配置参数允许管理员精确的控制 ttyutils 各个方面的行为。配置文件自身是一个 Lua 脚本文件。对于不熟悉 Lua 的管理员,可以使用和 .ini 文件格式类似的配置文件(这个配置文件最终也是由 Lua 配置文件中调用一个函数来解析)。
    *  Ttyutils 的绝大多数代码使用纯 C 语言编写,它应该具有不错的性能和可移植性。
    *  嵌入了 Lua 解释器的最新版本,用户能够用 Lua 语言来定制和扩展 Ttyutils,当然,C 语言总是可用的,但是对于通常的任务,使用 Lua 语言会让事情更加简单,快速,也更稳定。
    *  Ttyutils RPC (远程过程调用) 协议允许管理员在远程管理 Ttyuils,或者允许第三方应用程序访问 Ttyutls 提供的服务。Ttyutils 为RPC 协议进行了封装,提供了一组 API 接口,开发人员使用封装后的接口时不用理会协议的细节,基本 API 是 C 语言接口,但也提供了 Lua 和 Python 语言的接口。
    *  基于插件的体系让扩展新功能更加方便容易,可以根据具体的应用场合选择使用或禁用特定的插件,安装新插件不需要升级现有的系统。可以使用 C 和 Python 语言来开发新插件。
    *  功能强大的管理控制台允许管理员方便的从远程管理 Ttyutils,管理控制台支持 Lua 脚本,可以将常用的任务保存到文件中,而不用每次都重新输入。
    *  中心服务器可以管理运行在一台或者多台主机上的多个监控程序实例,当然,也可以在没有中心服务器的情况下运行监控程序,只是缺乏了管理能力。
    *  事件触发机制允许用户精确的控制终端会话,事件触发条件可以匹配热键,当前光标位置,以及用正则表达式去匹配当前屏幕内容。事件动作可以使用 C,C++,以及 Ttyutils RPC 协议支持的邦定语言编写。因为 RPC 协议提供有 C 语言接口,用户如果要邦定到新的语言也不会有太大困难。
    *  可以将程序的输出数据录制到一个加密和压缩的文件中。提供有 GUI 版本的播放器用来播放 Ttyutils 录制的文件。GUI 播放器可以在主流的 UNIX/Linux 平台上运行,也可以在 Windows 平台上运行。当然,Ttyutils 也提供了在终端中运行的播放器。
    *  内置监视服务器,客户端能够连接到这个服务器来实时的查看程序的输出。提供有 GUI 版本的监视器用来连接 Ttyutils 监视服务器来实时查看程序的输出,GUI 监视器可以在流行的 UNIX/Linux 平台上运行,也可以在 Windows 平台上运行。当然,Ttyutils 也提供了在终端中运行的监视器。
    *  Ttyutils 基础库提供了丰富的功能, API 接口清晰,用户可以利用 Ttyutils 库提供的功能来实现各种终端监控相关的应用程序。Ttyutils 的辅助工具包就是利用 Ttyutils 库实现的各种功能专一的应用程序,包括文件录制工具,播放工具,等等。
    *  可以在很多 UNIX/Linux 平台上使用,不需要对系统进行特殊的修改或配置。遵循标准,可以和其它标准兼容的软件协作。
    *  支持国际化,Ttyutils 会根据系统当前的语言环境自动选择相应的语言,目前支持中文和英文,可以通过翻译一个独立的文件来支持更多的语言。当 Ttyutils 运行在不支持的语言环境时,将使用英语。
    *  需要少量的磁盘空间来安装,需要少量的内存来运行。Ttyutils 运行时需要 OpenSSL,ZLib,GLib 的支持,通常它们是系统的标准配置。
    *  比较详细的文档,在本站点可以找到关于 Ttyutils 各方面的资料。
    *  基于 MIT 授权协议发布,可以在开放源代码项目中使用,也可以在商业和封闭源代码项目中使用。Ttyutils 内部使用了 OpenSSL,ZLib,GLib 和 Lua 来实现一些特定的功能,它们的授权和 Ttyutils 授权协议没有冲突。

适用性

Ttyutils 主要用于以 UNIX/Linux 终端作为用户接口的环境,这包括:

    * 实时监控 Telnet,SSH,控制台,和终端仿真上的会话
    * 终端会话录制和回放,可用于教学,交流经验,追踪责任
    * 终端任务自动化,可用于自动化日常系统管理,软件自动测试
    * 利用事件触发机制结合编写事件程序来扩展现有程序的能力
    * ...

Ttyutils 在实现上是小巧的、稳定的。实践证明,用户在一台 Linux 或者 AIX 主机上运行成百上千个进程,连续工作半年以上不会出现任何问题。Ttyutils 非常快,用户在被监控的终端上操作时感觉不到任何明显的延迟。

  • Ttyutils 是一套 UNIX 终端工具,包括 ttyexec、ttylook、ttyadmin 和一些扩展程序。 ttyexec 建立伪终端去执行一个命令,捕获命令所有的输出,传递这些输出数据到内置的内存终端仿真器和真实的终端。通过 ttyexec 执行的命令和直接执行的命令,用户感觉不到有任何的区别。 通过内存终端仿真器,管理员可以在特定的条件下触发事件,例如,用户希望依赖程序 A 的状态

  • 原帖地址:[url]http://sysadmingear.blogspot.com/2007/10/how-to-install-ttysnoop-on-linux.html[/url] 翻译加整理 ttysnoop是一个很帅的管理工具,它允许管理员查看其它用户在登陆的终端做些什么.对安全管理很有用哟. 因为作者习惯上都默认安装ssh的,想不重新编译安装直接使用但是发现不行,至少目前为止还没有找

  •  http://www.ibm.com/developerworks/cn/aix/library/0809_wuxh_tty/index.html   http://www.ibm.com/developerworks/cn/linux/l-cn-checkinstall/index.html?ca=drs-cn-1211

 相关资料
  • 问题内容: 可以说,我使用ssh访问服务器。同时,另一个人正在访问该服务器。 是否有可能观看该人的终端中正在发生的事情。意思是,我可以看看他在打字吗? 问题答案: 如果其他人正在使用Linux控制台,则可以使用conspy。

  • 我现在正在学习SFML,我刚刚设法实现了一些基本的跳跃和重力。但是,我不知道如何进行碰撞,因为我还需要检测物体的哪一边被击中。例如,如果它击中物体的底部,我需要向上移动以停止,如果它击中顶部,我需要向下移动以停止,如果它只击中一侧,我需要向左或向右移动。这些只是矩形物体,所以我不必为圆形或不自然的形状编写奇怪的程序,只需要4个侧面。谢谢!

  • 1.1.1. Rokid.Control 1.1.1. Rokid.Control 执行指定的操作,并返回终端最新状态 Endpint Object 字段名 类型 描述 endpointId string Skill 提供的终端 Id additionalInfo key-value pairs Skill 提供的终端附加信息 states InterfaceState[] 终端能力状态,具体信息

  • 我正在iOS上构建一个小应用程序,使用Spotify SDK向其Web Api发出请求。问题是,我正在使用函数每当我想提出请求时,都可以续订令牌。但是对于该函数,文档中说“如果没有指定令牌刷新服务,回调将返回nil作为会话”。这就是发生在我身上的事。我总是得到一个零“续费期”(https://developer.spotify.com/ios-sdk-docs/Documents/Classes/

  • 我们说falcon-agent是无需配置即可自动化采集200多项监控指标数据,比如cpu相关的、内存相关的、磁盘io相关的、网卡相关的等等,都可以自动发现,自动采集。 端口监控 falcon-agent编写初期是把本机监听的所有端口上报给server端,比如机器监听了80、443、22三个端口,就会自动上报三条数据: net.port.listen/port=22 net.port.listen/

  • ManageEngine OpManager 是一款全面的网络监视软件,可为网络管理员提供集成控制台,用于管理路由器,防火墙,服务器,交换机和打印机。