上一主题: 全局用户和组

下一主题: 应用和组件锁定

高级用法

对于使用 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 文件:

controller hostname-or-ip

设置后续命令将定向到的控制器的主机名。此操作必须在使用任何其他命令前完成。

controller -

与控制器断开连接。这样将关闭与控制器的主要 ssh 会话。

3t 任何 3tshell 命令

这相当于在 CA 3Tera AppLogic shell 提示符处键入命令。这种形式对于简单命令以及无人干预的批量操作很有用。需要用户干预的命令(例如:vol manage)则使用 3t -t。

3t -t 任何 3tshell 命令

与 3t 任何 3tshell 命令相同,但运行 CA 3Tera AppLogic shell 并启用 ssh pseudo-terminal,启用交互模式。

3t

调用交互式 CA 3Tera AppLogic shell。

ca appname

设置当前应用。其与交互式 shell 中的“ca”命令工作方式相同。执行 3t ca myapp 不起作用,因为 CA 3Tera AppLogic shell 的新实例通过每次调用“3t”命令来启动。

pwa

打印当前应用的名称(如 ca 所设置)

assh [appname:]component

对当前应用或指定应用中正在运行的组件打开交互式 shell。component 是实例在应用层次结构中的全称。可以忽略最顶层组件集 (main.) 的名称,例如:以下内容是等效的:

assh the-app:main.web.srv1 
ca the-app ; assh web.srv1 
assh [app:]component cmd [args]

在组件实例上运行非交互式命令。注意:对于 CA 3Tera AppLogic 的旧版本 (1.x),命令名称和参数不能包含空格,即,下面的示例不能产生预期的结果:

assh web.srv1 cat "名称中包含空格的文件". 

如果在旧版本的网格中必须如此,则编写简短的脚本,并使用下面的 ascp 命令将其复制到运行的组件中,然后启动该脚本。

ascp src dest

从运行的组件复制文件/将文件复制到运行的组件。src 或 dest 参数之一必须是本地文件或目录的名称。另一个以类似于“scp”命令的格式指定远程组件和文件名:

comp.name:filename 

组件名称是组件在应用组件集中的完整路径(如果是 assh,则 可以省略 main. 前缀)。该命令要求使用 ca 命令来设置当前应用。

als

快捷键。与 3t app list 相同。

astart

快捷键。与 3t app start `pwa` 相同。

astop

快捷键。与 3t app stop `pwa` 相同。

vmnt

在 CA 3Tera AppLogic 2.3 和更高版本中不受支持。请改为使用新的卷管理操作。

vumnt

在 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