SMIT 入门

功能强大的 AIX 系统管理工具

本文将介绍 SMIT 工具以及如何使用它。系统管理界面工具(System Management Interface Tool,SMIT)是一种交互式的应用程序,它几乎可以用来简化 AIX® 系统管理中各方面的工作。在学习完本文后,您将会把 SMIT 作为 AIX 系统管理员最好的工具。

Sandor Sklar (ssklar@gmail.com), 自由撰稿人, Author

Sandor W. Sklar 是加利福利亚 Palo Alto 斯坦福大学的一名 UNIX 系统管理员。他具有 8 年为 AIX、Linux 和 Solaris 服务器提供支持的经验。您可以通过 ssklar@gmail.com 与他联系。



2006 年 11 月 16 日

SMIT 是什么?

系统管理界面工具(通常称为 SMIT)是 AIX® 中附带的一种交互式工具。几乎任何系统管理任务都可以通过使用 SMIT 屏幕来完成,通常采用层次的方式对这些屏幕进行逻辑分组,以便能够方便地进行导航。可以使用与各种功能相关联的快捷路径 直接转到相关的屏幕。

SMIT 中最重要的特性之一是,您可以准确地查看它在执行相关命令之前或之后执行了哪些命令。SMIT 并没有对操作系统使用任何特殊的挂钩。它所执行的所有操作都是通过标准的 AIX 命令和 Korn Shell 函数完成。尤其是当您需要为重复性任务实现自动化时,这种特性非常有价值,您可以使用 SMIT 创建合适的命令行序列,然后在自己的脚本中使用这些命令。


基本用法

SMIT 是基本操作系统中的一部分,/usr/bin/smit 命令位于 bos.sysmgt.smit 文件集。有两种版本的 SMIT:全屏幕文本模式版本和图形 X Windows® 客户端。如果设置了 DISPLAY 变量,那么 AIX 将自动运行 GUI 版本。要使用文本模式版本,甚至在设置了 DISPLAY 变量的情况下,那么可以运行 smitty 命令,或运行 smit -a

如果启动 SMIT 时没有指定快捷路径,那么将显示主菜单。在所有的 SMIT 屏幕中,都可以使用箭头键在所显示的选项中向上或向下移动。回车键用来选择当前高亮显示的项目。要返回一个级别,可以按 F3Esc + 3


四种屏幕类型

SMIT 使用四种类型的屏幕来进行交互并为用户显示相关信息:菜单、对话框、选择器和命令状态屏幕。

菜单

菜单 屏幕显示了任务列表,只能选择其中一项。如果 SMIT 启动时没有指定快捷路径,那么将显示主菜单(有关文本模式版本的内容,请参见清单 1)。

清单 1. SMIT 文本模式版本中显示的主系统管理屏幕
                               System Management

Move cursor to desired item and press Enter.

  Software Installation and Maintenance
  Software License Management
  Devices
  System Storage Management (Physical & Logical Storage)
  Security & Users
  Communications Applications and Services
  Print Spooling
  Problem Determination
  Performance & Resource Scheduling
  System Environments
  Processes & Subsystems
  Applications
  Installation Assistant
  Using SMIT (information only)
            
F1=Help             F2=Refresh          F3=Cancel           F8=Image
F9=Shell            F10=Exit            Enter=Do

图 1 显示了该工具 GUI 版本 SMIT 的主菜单。

图 1. SMIT GUI 版本中显示的主系统管理屏幕
SMIT GUI 版本中显示的主系统管理屏幕

对话框

对话框 屏幕由特定任务的选择而产生。不同的符号表示每个字段可以接受的信息条目的类型。您在这些字段中输入的数据将用来生成 SMIT 所执行的命令。

清单 2. SMIT 对话框屏幕具体来说,即 Change/Show Characteristics of a User 屏幕
               Change / Show Characteristics of a User

Type or select values in entry fields.
Press Enter AFTER making all desired changes.
  
[TOP]                                           [Entry Fields]
* User NAME                                    root
  User ID                                     [0]                     #
  ADMINISTRATIVE USER?                         true                   +
  Primary GROUP                               [system]                +
  Group SET                                   [system,bin,sys,securi> +
  ADMINISTRATIVE GROUPS                       []                      +
  ROLES                                       []                      +
  Another user can SU TO USER?                 true                   +
  SU GROUPS                                   [ALL]                   +
  HOME directory                              [/]
  Initial PROGRAM                             [/usr/bin/ksh]
  User INFORMATION                            [palatino root]
  EXPIRATION date (MMDDhhmmyy)                [0]
[MORE...37]

F1=Help             F2=Refresh          F3=Cancel           F4=List
F5=Reset            F6=Command          F7=Edit             F8=Image
F9=Shell            F10=Exit            Enter=Do

选择器

选择 屏幕需要用户选择一个目标,通常是将在后续对话框屏幕中使用的设备。选择器通常作为弹出式 窗口出现,重叠在前一个屏幕的文本之上。

清单 3. SMIT 选择屏幕,要求选择单个逻辑卷
LOGICAL VOLUME name                            
                                                                          
 Move cursor to desired item and press Enter. Use arrow keys to scroll.   
                                                                          
 [TOP]                                                                    
   fslv00            jfs        64    128   2    open/syncd    /ora-dat 
   fslv01            jfs        64    128   2    open/syncd    /u06     
   fslv02            jfs        64    128   2    open/syncd    /u07     
   lv07              jfs        11    22    2    open/syncd    /SUL_ora 
   paging05          paging     32    32    1    open/syncd    N/A      
   fslv05            jfs        320   640   4    open/syncd    /u08     
   fslv06            jfs        24    48    2    open/syncd    /w01     
   fslv07            jfs        16    32    4    open/syncd    /local/a 
   lv11              jfs2       128   128   1    open/syncd    /mkcd/mk 
   fslv09            jfs        128   256   2    open/syncd    /u02     
 [MORE...51]                                                            
                                                                        
 F1=Help               F2=Refresh              F3=Cancel                
 Esc+8=Image           Esc+0=Exit              Enter=Do                 
 /=Find                n=Find Next

命令状态

命令状态 屏幕显示 SMIT 所执行的命令的输出。屏幕最上面的内容表示了当前状态(RunningOKFailed),并且还显示了是否向 STDOUT 或 STDERR 写入了任何数据。

清单 4. SMIT 命令状态屏幕,显示了列出文件集包含的文件的输出
                           COMMAND STATUS

Command: OK            stdout: yes           stderr: no

Before command completion, additional instructions may appear below.

File                                  Fileset               Type
------------------------------------------------------------------
/usr/bin/smit                         bos.sysmgt.smit       File




F1=Help          F2=Refresh       F3=Cancel        Esc+6=Command
Esc+8=Image      Esc+9=Shell      Esc+0=Exit       /=Find 
n=Find Next

导航

因为 SMIT 功能的层次结构的本质,所以很容易向下逐层展开到 希望执行的任务。如果您发现从菜单中选择了错误的项目,可以按 F3(或 Esc + 3)返回到前一个屏幕。

快捷路径

SMIT 中的每个菜单和对话框屏幕都具有相应的快捷路径,它可以用来直接转到该屏幕。要确定特定屏幕的快捷路径,可以导航至该屏幕,然后按下 F8Esc + 8。弹出的窗口中将列出快捷路径,并将当前屏幕的内容 写入 SMIT 日志文件。

清单 5. SMIT 选择屏幕,要求选择单个逻辑卷
             PRINT SCREEN                 

 Press Enter to save the screen image              
     in the log file.                                
 Press Cancel to return to the application.      

   Current fast path:                           
       "mkuser"                                   

F1=Help          F2=Refresh       F3=Cancel    
Esc+8=Image      Esc+0=Exit       Enter=Do

快捷方法

SMIT 提供了一些键命令,可用来快速地在冗长的、滚动的输出屏幕中进行导航。尽管这些键盘输入在命令状态屏幕中最有用处,但它们可以在所有的屏幕中使用(请参见表 1)。

表 1. 用于导航的键盘命令
键盘输入操作
向下箭头向下滚动一行
向上箭头向上滚动一行
Control + V (或 PageDown)向下滚动一页
Escape + V (或 PageUp)向上滚动一页
Escape + > (或 End)跳至输出或清单的末尾
Escape + < (或 Home)跳至输出或清单的开头

日志记录

每个 SMIT 会话都会在两个文件中记录相关条目:smit.log 和 smit.script。这些文件将会写入到 HOME 环境变量指定的目录,而不是在 /etc/passwd 中指定的该用户的实际 home 目录。

SMIT 不会覆盖现有的日志文件,如果这些文件已经存在,并且可以由当前用户进行写入,它通常会尝试在这些文件后追加信息。如果 SMIT 不能写入这些文件,它会显示一则警告消息,然后继续执行相应的功能而不再进行日志记录。

请注意,尽管任何用户都可以运行 SMIT 可执行文件,但是它完成所需任务时执行的许多 AIX 命令需要 root 或其他受限的权限。如果未授权的用户试图完成其中的任务,那么任务将会失败。因为 SMIT 通常由 root 运行,所以应该对 SMIT 日志文件进行监视和清理,以确保它们不会变得过大并占用 / 文件系统中所有的可用空间。

smit.log

smit.log 文件包含关于使用 SMIT 执行的操作的详细信息。对于每个 SMIT 会话,它将记录 SMIT 启动的日期和时间、访问的每个菜单屏幕的记录(以及该屏幕的快捷路径)、SMIT 执行的所有命令和这些命令的输出。

在确定对系统进行了哪些更改以及这些更改的具体发生时间时,对 smit.log 进行监视非常有用。然而,该日志文件将不会反映任何直接通过运行系统命令所进行的更改。

smit.script

smit.script 文件包含 SMIT 执行任务时实际运行的 AIX 命令。该文件以 Korn Shell 语法书写,所以它可以作为命令序列本身 执行,这样做可以重复原来由 SMIT 执行的所有任务。

smit.script 的常见用法之一是,复制跨系统的大量的任务。如果使用 SMIT 实现对一个系统的所有更改,那么可以将 smit.script 复制到其他的系统,并且加以执行,这样可以实现所有系统的更改,而无需编写任何代码。


使用 SMIT 脚本的一个示例

现在,让我们将 SMIT 应用于一个实际的 AIX 示例。假设您需要为 10 个或 100 个 AIX 系统分别添加一个 4 GB的文件系统。您可以手动地完成这项操作,但是最后可能会感到非常厌倦,并且反复地进行输入增加了出现错误的可能。您可以将合适的命令组织在一起,并使用各种参数和标志,然后在每个系统中运行它们。或者,可以让 SMIT 为您编写这些命令。

在下面的示例中,使用 SMIT 创建一个 4 GB 的增强 JFS (JFS2) 文件系统,该文件系统在系统重启时自动装入到装入点 /fs01,并使用内联 JFS 日志。然后,将 SMIT 编写的脚本复制到其他的系统,并在其中运行该脚本以创建文件系统。

启动 SMIT 的第一步是使用命令:smit -s /tmp/mknewfs.ksh crjfs2std-s 标志告诉 SMIT 将其脚本输出写入到文件 /tmp/mknewfs.ksh,而不是缺省的文件 /smit.script。具体的操作将被记录到 /smit.log。通过指定快捷路径 crjfs2std,您可以直接转到 Add an Enhanced Journaled File System 对话框屏幕。在显示该屏幕(如清单 6 中所示)之前,您需要在其中选择一个卷组以创建新的文件系统。

清单 6. Add an Enhanced Journaled File System SMIT 对话框屏幕
Add an Enhanced Journaled File System

Type or select values in entry fields.
Press Enter AFTER making all desired changes.

                                               [Entry Fields]
  Volume group name                          datavg
  SIZE of file system
          Unit Size                          Gigabytes    +
*         Number of units                   [4]           #
* MOUNT POINT                               [/fs01]
  Mount AUTOMATICALLY at system restart?     yes          +
  PERMISSIONS                                read/write   +
  Mount OPTIONS                             []            +
  Block Size (bytes)                         4096         +
  Inline Log?                                yes          +
  Inline Log size (MBytes)                  []            #
 
F1=Help          F2=Refresh       F3=Cancel      F4=List
F5=Reset         F6=Command       F7=Edit        F8=Image          
F9=Shell         F10=Exit         Enter=Do

在按 Enter 键使得 SMIT 执行清单 6 中的命令之前,清单 7 中的脚本将写入到文件 /tmp/mknewfs.ksh。

清单 7. /tmp/mknewfs.ksh
#
#     [Sep 06 2006, 17:46:28]
#
x() {
LIST=
FLAG=0
for i in "$@"
do
        case "$i" in
        Megabytes)      FLAG=1;;
        Gigabytes)      FLAG=2;;
        512bytes)       ;;
        size=*) case "$FLAG" in
                1)      LIST="$LIST \"$i\"M"
                        FLAG=0;;
                2)      LIST="$LIST \"$i\"G"
                        FLAG=0;;
                0)      LIST="$LIST \"$i\""
                        ;;
                esac
                ;;
        *)      LIST="$LIST \"$i\""
                ;;
        esac
done
eval crfs -v jfs2 $LIST
}
x -g'datavg' 'Gigabytes' -a size='4' -m'/fs01' 
-A''`locale yesstr | awk -F: '{print $1}'`'' 
-p'rw' -a agblksize='4096' '-a logname=INLINE'

剩下来的工作是,将上面的脚本复制到其他的 AIX 系统,并运行它。可以通过许多方法来完成这项任务。最简单(尽管不是很安全)的方法是,根据这些系统进行循环,对该脚本执行 rcp 操作,然后使用 rsh 来执行它(请参见清单 8)。

清单 8. 对脚本执行 rcp 操作并使用 rsh 执行它
For host in host1 host2 ... hostN; do \
rcp /tmp/mknewfs.ksh $host:/tmp/mknewfs.ksh ; \
rsh $host ksh /tmp/mknewfs.ksh ; \
done

这仅仅只是个示例,但它说明了,使用 SMIT 作为 AIX 管理员可以获得许多优点并节省大量的时间。


接下来的步骤

对于任何 AIX 管理员,SMIT 都是一种功能强大的工具。与大多数工具一样,熟练掌握其操作步骤的最好方法是使用它。尽管 SMIT 可以在活动的 系统中执行相应的操作,但是却没有提供撤销 功能,了解这一点非常重要。对于一些操作(但不是所有的操作),SMIT 会发出永久删除信息的警告,并且需要进行确认以便继续执行。

更安全的使用 SMIT 应用程序的方法是,使用 -x 标志调用它。当在命令行中指定了 -x 标志时,SMIT 表面上工作正常,但实际上却没有执行任何命令。相反,它会把在正常操作过程中将要执行的命令写入到 smit.script 文件。

SMIT 菜单和对话框屏幕中的许多选项和输入字段都提供了内置的帮助特性,可以使用箭头键高亮显示或选择该项目来加以访问,然后按 F1(或 Esc + 1)。这时将显示一个弹出 窗口对所选项目进行详细地解释。

参考资料

学习

获得产品和技术

  • IBM 试用软件:使用 IBM 软件开发您的下一个项目,可直接从 developerWorks 下载这些试用软件。

讨论

条评论

developerWorks: 登录

标有星(*)号的字段是必填字段。


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件

 


在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。

所有提交的信息确保安全。

选择您的昵称



当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

标有星(*)号的字段是必填字段。

(昵称长度在 3 至 31 个字符之间)

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

 


所有提交的信息确保安全。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=AIX and UNIX
ArticleID=174412
ArticleTitle=SMIT 入门
publish-date=11162006