本文将介绍SMIT工具以及如何使用它。系统管理界面工具(SystemManagementInterfaceTool,SMIT)是一种交互式的应用程序,它几乎可以用来简化AIX?系统管理中各方面的工作。在学习完本文后,您将会把SMIT作为AIX系统管理员最好的工具。
SMIT是什么?
系统管理界面工具(通常称为SMIT)是AIX?中附带的一种交互式工具。几乎任何系统管理任务都可以通过使用SMIT屏幕来完成,通常采用层次的方式对这些屏幕进行逻辑分组,以便能够方便地进行导航。可以使用与各种功能相关联的快捷路径直接转到相关的屏幕。
SMIT中最重要的特性之一是,您可以准确地查看它在执行相关命令之前或之后执行了哪些命令。SMIT并没有对操作系统使用任何特殊的挂钩。它所执行的所有操作都是通过标准的AIX命令和KornShell函数完成。尤其是当您需要为重复性任务实现自动化时,这种特性非常有价值,您可以使用SMIT创建合适的命令行序列,然后在自己的脚本中使用这些命令。
基本用法
SMIT是基本操作系统中的一部分,/usr/bin/smit命令位于bos.sysmgt.smit文件集。有两种版本的SMIT:全屏幕文本模式版本和图形XWindows?客户端。如果设置了DISPLAY变量,那么AIX将自动运行GUI版本。要使用文本模式版本,甚至在设置了DISPLAY变量的情况下,那么可以运行smitty命令,或运行smit-a。
如果启动SMIT时没有指定快捷路径,那么将显示主菜单。在所有的SMIT屏幕中,都可以使用箭头键在所显示的选项中向上或向下移动。回车键用来选择当前高亮显示的项目。要返回一个级别,可以按F3或Esc+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的主菜单。
对话框
对话框屏幕由特定任务的选择而产生。不同的符号表示每个字段可以接受的信息条目的类型。您在这些字段中输入的数据将用来生成SMIT所执行的命令。
清单2.SMIT对话框屏幕具体来说,即Change/ShowCharacteristicsofaUser屏幕
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所执行的命令的输出。屏幕最上面的内容表示了当前状态(Running、OK或Failed),并且还显示了是否向STDOUT或STDERR写入了任何数据。
清单4.SMIT命令状态屏幕,显示了列出文件集包含的文件的输出
COMMANDSTATUS
Command:OKstdout:yesstderr:no
Beforecommandcompletion,additionalinstructionsmayappearbelow.
FileFilesetType
/usr/bin/smitbos.sysmgt.smitFile
F1=HelpF2=RefreshF3=CancelEsc+6=Command
Esc+8=ImageEsc+9=ShellEsc+0=Exit/=Find
n=FindNext
导航
因为SMIT功能的层次结构的本质,所以很容易向下逐层展开到希望执行的任务。如果您发现从菜单中选择了错误的项目,可以按F3(或Esc+3)返回到前一个屏幕。
快捷路径
SMIT中的每个菜单和对话框屏幕都具有相应的快捷路径,它可以用来直接转到该屏幕。要确定特定屏幕的快捷路径,可以导航至该屏幕,然后按下F8或Esc+8。弹出的窗口中将列出快捷路径,并将当前屏幕的内容写入SMIT日志文件。
清单5.SMIT选择屏幕,要求选择单个逻辑卷PRINTSCREEN
PressEntertosavethescreenimageinthelogfile.PressCanceltoreturntotheapplication.
Currentfastpath:"mkuser"
F1=HelpF2=RefreshF3=Cancel
Esc+8=ImageEsc+0=ExitEnter=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命令。该文件以KornShell语法书写,所以它可以作为命令序列本身执行,这样做可以重复原来由SMIT执行的所有任务。
smit.script的常见用法之一是,复制跨系统的大量的任务。如果使用SMIT实现对一个系统的所有更改,那么可以将smit.script复制到其他的系统,并且加以执行,这样可以实现所有系统的更改,而无需编写任何代码。
使用SMIT脚本的一个示例
现在,让我们将SMIT应用于一个实际的AIX示例。假设您需要为10个或100个AIX系统分别添加一个4GB的文件系统。您可以手动地完成这项操作,但是最后可能会感到非常厌倦,并且反复地进行输入增加了出现错误的可能。您可以将合适的命令组织在一起,并使用各种参数和标志,然后在每个系统中运行它们。或者,可以让SMIT为您编写这些命令。
在下面的示例中,使用SMIT创建一个4GB的增强JFS(JFS2)文件系统,该文件系统在系统重启时自动装入到装入点/fs01,并使用内联JFS日志。然后,将SMIT编写的脚本复制到其他的系统,并在其中运行该脚本以创建文件系统。
启动SMIT的第一步是使用命令:smit-s/tmp/mknewfs.kshcrjfs2std。-s标志告诉SMIT将其脚本输出写入到文件/tmp/mknewfs.ksh,而不是缺省的文件/smit.script。具体的操作将被记录到/smit.log。通过指定快捷路径crjfs2std,您可以直接转到AddanEnhancedJournaledFileSystem对话框屏幕。在显示该屏幕(如清单6中所示)之前,您需要在其中选择一个卷组以创建新的文件系统。
清单6.AddanEnhancedJournaledFileSystemSMIT对话框屏幕
AddanEnhancedJournaledFileSystem
Typeorselectvaluesinentryfields.
PressEnterAFTERmakingalldesiredchanges.[EntryFields]VolumegroupnamedatavgSIZEoffilesystemUnitSizeGigabytes+
*Numberofunits[4]#
*MOUNTPOINT[/fs01]MountAUTOMATICALLYatsystemrestart?yes+PERMISSIONSread/write+MountOPTIONS[]+BlockSize(bytes)4096+InlineLog?yes+InlineLogsize(MBytes)[]#
F1=HelpF2=RefreshF3=CancelF4=List
F5=ResetF6=CommandF7=EditF8=Image
F9=ShellF10=ExitEnter=Do
在按Enter键使得SMIT执行清单6中的命令之前,清单7中的脚本将写入到文件/tmp/mknewfs.ksh。
清单7./tmp/mknewfs.ksh
#
#[Sep062006,17:46:28]
#
x(){
LIST=
FLAG=0
foriin"$@"
docase"$i"inMegabytes)FLAG=1;;Gigabytes)FLAG=2;;512bytes);;size=*)case"$FLAG"in1)LIST="$LIST"$i"M"FLAG=0;;2)LIST="$LIST"$i"G"FLAG=0;;0)LIST="$LIST"$i"";;esac;;*)LIST="$LIST"$i"";;esac
done
evalcrfs-vjfs2$LIST
}
x-g"datavg""Gigabytes"-asize="4"-m"/fs01"
-A""`localeyesstr|awk-F:""`""
-p"rw"-aagblksize="4096""-alogname=INLINE"
剩下来的工作是,将上面的脚本复制到其他的AIX系统,并运行它。可以通过许多方法来完成这项任务。最简单(尽管不是很安全)的方法是,根据这些系统进行循环,对该脚本执行rcp操作,然后使用rsh来执行它(请参见清单8)。
清单8.对脚本执行rcp操作并使用rsh执行它
Forhostinhost1host2...hostN;do
rcp/tmp/mknewfs.ksh$host:/tmp/mknewfs.ksh;
rsh$hostksh/tmp/mknewfs.ksh;
done
这仅仅只是个示例,但它说明了,使用SMIT作为AIX管理员可以获得许多优点并节省大量的时间。
接下来的步骤
对于任何AIX管理员,SMIT都是一种功能强大的工具。与大多数工具一样,熟练掌握其操作步骤的最好方法是使用它。尽管SMIT可以在活动的系统中执行相应的操作,但是却没有提供撤销功能,了解这一点非常重要。对于一些操作(但不是所有的操作),SMIT会发出永久删除信息的警告,并且需要进行确认以便继续执行。
更安全的使用SMIT应用程序的方法是,使用-x标志调用它。当在命令行中指定了-x标志时,SMIT表面上工作正常,但实际上却没有执行任何命令。相反,它会把在正常操作过程中将要执行的命令写入到smit.script文件。
SMIT菜单和对话框屏幕中的许多选项和输入字段都提供了内置的帮助特性,可以使用箭头键高亮显示或选择该项目来加以访问,然后按F1(或Esc+1)。这时将显示一个弹出窗口对所选项目进行详细地解释。