对于使用 GNU bash 的用户而言,客户端宏是另一种直接从本地命令提示符访问 CA 3Tera AppLogic shell 命令的方法。
用于 GNU Bash 和 OpenSSH 客户端的客户端宏可以轻松地直接从本地 shell 提示符访问 3tshell(CA 3Tera AppLogic 命令行界面)的所有功能。
在此处下载:
要在系统上使用此功能,您只需使用 GNU Bash 2.0 或更高版本以及 OpenSSH 客户端程序 (ssh) 3.9 或更高版本。下载附带的 shell 文件,将其保存在磁盘上,并使用 source 命令(或 .)将其包括在 shell 中(可以在“.bashrc”文件中完成),以便供启动的每个交互式 shell 实例使用。
一旦加载 rmacros.sh 文件,以下命令即变为可以从 shell 提示符中使用。相同的命令也可以用在非交互式脚本中,为此,您只需通过“source”命令从脚本添加 rmacros.sh 文件:
设置后续命令将定向到的控制器的主机名。此操作必须在使用任何其他命令前完成。
与控制器断开连接。这样将关闭与控制器的主要 ssh 会话。
这相当于在 CA 3Tera AppLogic shell 提示符处键入命令。这种形式对于简单命令以及无人干预的批量操作很有用。需要用户干预的命令(例如:vol manage)则使用 3t -t。
与 3t 任何 3tshell 命令相同,但运行 CA 3Tera AppLogic shell 并启用 ssh pseudo-terminal,启用交互模式。
调用交互式 CA 3Tera AppLogic shell。
设置当前应用。其与交互式 shell 中的“ca”命令工作方式相同。执行 3t ca myapp 不起作用,因为 CA 3Tera AppLogic shell 的新实例通过每次调用“3t”命令来启动。
打印当前应用的名称(如 ca 所设置)
对当前应用或指定应用中正在运行的组件打开交互式 shell。component 是实例在应用层次结构中的全称。可以忽略最顶层组件集 (main.) 的名称,例如:以下内容是等效的:
assh the-app:main.web.srv1 ca the-app ; assh web.srv1
在组件实例上运行非交互式命令。注意:对于 CA 3Tera AppLogic 的旧版本 (1.x),命令名称和参数不能包含空格,即,下面的示例不能产生预期的结果:
assh web.srv1 cat "名称中包含空格的文件".
如果在旧版本的网格中必须如此,则编写简短的脚本,并使用下面的 ascp 命令将其复制到运行的组件中,然后启动该脚本。
从运行的组件复制文件/将文件复制到运行的组件。src 或 dest 参数之一必须是本地文件或目录的名称。另一个以类似于“scp”命令的格式指定远程组件和文件名:
comp.name:filename
组件名称是组件在应用组件集中的完整路径(如果是 assh,则 可以省略 main. 前缀)。该命令要求使用 ca 命令来设置当前应用。
快捷键。与 3t app list 相同。
快捷键。与 3t app start `pwa` 相同。
快捷键。与 3t app stop `pwa` 相同。
在 CA 3Tera AppLogic 2.3 和更高版本中不受支持。请改为使用新的卷管理操作。
在 CA 3Tera AppLogic 2.3 和更高版本中不受支持。
配置自定义 SSH 选项
除了设置 SSH 选项的常规方式外(将这些选项放入您的 ~/.ssh/config 文件中),由 rmacros.sh 所提供的命令还接受环境变量设置,其中包含仅影响由宏生成的 ssh 调用的选项,但其他任何 ssh 命令则不接受这样的环境变量设置。如果您需要不同的设置来使用 CA 3Tera AppLogic 网格以及用于其他 ssh 会话,这会有帮助,ssh/config 文件所支持的每台主机的方式则不适合分隔不同的选项。这包括您还具有 CA 3Tera AppLogic 网格“maintainer”访问权限的情况(例如:如果您安装了该网格)。在此类情形中,您具有 SSH 密钥,可以对控制器进行根级别访问,而不是作为一般的“client”工作时所需的访问权限。
要对 rmacros.sh 中的远程访问宏提供附加选项,请设置 AL_SSH_OPT 变量。它应当包含 ssh 及其所有附带程序(scp、sftp 等)所接受的形式的选项:-o OptionName=option-value。不要使用像 -i、-t 这样的速记选项,它们用于 ssh,而非 scp。
示例: export AL_SSH_OPT='-o IdentityFile=/home/lk/t-key -o IdentitiesOnly=yes -o StrictHostKeyChecking=no'
这会告知 SSH:对公钥身份验证使用密钥 /home/lk/t-key;不使用 ssh 代理所提供的任何密钥;禁用严格主机身份检查(仅当您经常从头开始重新安装网格,从而导致控制器的 SSH ID 每次都发生更改时,才使用最后一个选项)。
快速、方便地访问主 SSH 会话
在 rmacros.sh 中定义的函数使用 OpenSSH 客户端的主会话功能。运行的第一个命令将在“主服务器”模式下启动后台 ssh 客户端,所有后续命令使用“主服务器”所维护的会话来在同一个安全通道上运行其他 ssh 会话。
这具有两个优点:首先,只需要键入一次密码来访问 SSH 私钥,在此之后,会话将保持开放状态,不需要进行多次登录。
其次,这使得“ssh”的新调用与为已经开放的 SSH 会话键入命令一样快,而实际上要更快,因为在您按下 Enter 键时命令只发送一次,而在您键入命令时,交互式会话是逐个字符进行回应。
此外,从您的 shell 而不是 3tshell 控制台在本地运行命令时,允许使用 shell 的全部功能,以构成使用交互式 3tshell 会话所不可能实现的一些命令,例如:
获取一列运行的应用:
3t app list | grep running
将卷列表保存到文件:
3t vol list --all >file
将配置从一个应用传输到另一个应用:
3t app config app1 --batch | 3t app config app2 --stdin
| 版权所有 © 2011 CA。 保留所有权利。 | 就该主题发送电子邮件至 CA Technologies |