二、 常用系统管理命令介绍
1. share 和 mount 命令
这是系统管理员常用的两个命令,share命令用于把本机的目录共享出来,以便其它Unix系统可以使用;mount命令则用于把其它UNIX系统共享出来的目录挂接到本机的挂接点上,从而可以使用其它UNIX系统的资源。 例如:
在机器A上输入 MachineA# share -F nfs -o rw /share-dir
在机器B上输入 machineB# mount -F nfs machineA:/share-dir /mount-point
第一条命令把机器A的 share-dir 目录共享出来,并且共享的权限是可读写;
第二条命令把机器A的共享目录挂接到机器B的 mount-point 目录上。
完成这两个命令后,用户在机器B上通过对mount-point的访问就可以操作机器A上的share-dir目录了。
但是有时我们操作时,在机器B上执行了mount命令后,会返回"RPC: Program not registered"这样的错误,这是因为在机器A上缺少mountd和nfsd 这两个守护进程(daemon)。UNIX系统启动时,系统会自动检查/etc/dfs/dfstab文件,如果文件中有要共享的资源,则启动这两个守护进程,反之,则不启动。所以如果我们在/etc/dfs/dfstab中没有内容,则系统不能启动mountd和nfsd这两个守护进程,用share命令共享的目录也不能真正被别的系统共享。
解决这个问题的方法很简单,我们可以把要共享的目录放入/etc/dfs/dfstab中,则下一次系统启动时会自动共享这个目录;另外,我们也可以手动启动这两个守护进程,方法是首先用超级用户(root)登陆,在命令行输入如下命令:
machine_A# /etc/rc3.d/S15nfs.server start
或输入:
machine_A# /usr/lib/nfs/mountd
machine_A# /usr/lib/nfs/nfsd -a 16
就可以启动这两个守护进程了。
守护进程启动后,共享目录才真正被共享出去,这时再在机器B上用mount命令就可以把机器A的目录挂接到机器B上了。
2. ifconfig命令
ifconfig命令用于查看和更改网络接口的地址和参数,如果要显示某台UNIX主机的IP地址,我们可以在命令行下输入:
$ifconfig -a
系统会显示网络接口的名称,接口的状态(up or down),接口的IP地址和掩码等信息。
如果我们要更改网络接口的IP地址,可以在root权限下输入:
#ifconfig hme0 down
#ifconfig hme0 202.1.2.3 netmask 255.255.255.0 up
首先,使用down命令参数把网络接口hme0的服务暂时停止,然后再用ifconfig命令给接口分配新的IP地址和掩码,并启动网络接口服务。本例中把hme0接口的IP地址设为202.1.2.3,掩码为255.255.255.0。我们也可以通过改变文件/etc/hosts中的IP地址的值并重新启动系统来更改机器的IP地址。
在系统启动时,网络接口服务时自动被启动的,我们不需要手动地创建网口服务,但有时我们更改了网卡或增加了网卡后,系统不能自动启动该接口服务,这时我们需要手动创建网口服务,在root权限下输入:
#ifconfig hme0 plumb
即可以为接口le0创建网口服务。相应地,用ifconfig带unplumb参数可以停止服务并关闭网络接口,这时我们再用ifconfig -a 命令将看不到该网络接口。
3. fsck命令
fsck命令也是一个经常使用的命令,它用于对文件系统进行检查,并对损害的文件系统进行修复。
fsck的语法如下:
fsck (-F fstype) (-v) (-m) (-special…)
fsck (-F fstype) (-v) (-y|Y|n|N)
(-o fstype options) (special…)
其中:
-F fstype : 说明被检查的文件系统的类型
-v : 返回完成的命令行,但不运行
-y|Y: 对所有问题均回答Yes
-n|N: 对所有问题均回答No
-m: 对文件系统进行检查,不修复文件系统,
如果文件系统经检查后是可安装的,则显示
ufs fsck : sanity check : /dev/rdsk/c0t0d0s0 okay.
-o: 文件系统类型选项,选项由逗号分隔,
最常用的选项有两个:
P: 整理(preen)模式
F: 强制检查模式,此选项忽略文件系统状态标志。
运行fsck后,该命令会分6个阶段对文件系统进行检查,这六个阶段分别是:
阶段1: 检查块和块的大小
阶段2: 检查路径名
阶段3: 检查连接性
阶段4: 检查参考记数
阶段5: 检查自由块列表
阶段6: 补救自由块列表
fsck在对每个阶段进行检查时,如果发现错误,会提示用户进行修改,常见的一些错误有:
(1). 移去一个没有相关文件的目录入口:这时用户可以回答Yes或Y来删除该目录入口。
(2). 重连接一个已分配但不能访问的文件:fsck找到了一个已分配的I节点,但却不可访问(该节点没与任何目录连接),这时一般对fsck的"RECONNECT?"回答Yes,即把该I节点连接到lost+found目录下,文件名即是I节点号,之后管理员应检查该文件类型,判明该文件用途,再将该文件拷贝到相应目录下。
(3). 连接数调整:在交互方式下,fsck若发现连接数不一致,将询问用户采取何种行动,本例发现一目录的I节点连接数与该目录的真实连接数不一致。这时用户应该回答Yes或Y来改正连接数。
(4). 自由块表不一致:fsck查出未分配块数与超级块中所给出的自由块表不一致。这时用户应该回答Yes或Y来修正超级块。
从上面的出错信息和处理方法可以发现,对于fsck询问的问题大多数情况下都可以用Yes来回答,所以在实际应用时,可以用" -y"选项来执行该命令对硬盘进行检查和修复。
4. route命令
route命令主要用于手动配置静态路由表。例如我们要增加一条通过网关到达令一子网的路由,命令如下:
#route add net remote_net_ip gateway_ip 1
其中add代表要增加路由,net表示路由到达的是一个网络而不是一台主机,1代表远端网络需通过网关才能到达,而不是直接与它相连(直接通过网络接口相连时,该参数用0)。
也可以使用如下命令:
#route add -net remote_net_ip
gateway_ip -netmask netmask
#route add -host host_ip
local_interface_ip -interface
其中第一条命令与上面介绍的命令完成相同的任务,而第二条命令则代表要建立一条通过网络接口到达另一台主机的路由。
当然,我们使用"delete","change"命令参数可以对路由表中的路由信息进行删除和修改。执行完route命令后,我们可以用"netstat -rn"命令查看当前的路由信息。
通过route配置路由表后,该路由信息会一直保存到下次系统重启。系统重启后,则要重新配置路由表。通过修改文件/etc/defaultrouter可以设置一些默认路由,这些路由在系统每次启动时都会被加到路由表中,而不必每次启动都用route命令来配置路由表。
/etc/defaultrouter文件的格式如下:
$cat /etc/defaultrouter
202.77.111.1
该文件中现在只有一条默认路由,IP地址是202.77.111.1,这代表系统将把所有不属于本地的数据包都通过网关202.77.111.1发送出去。
有时UNIX系统安装完成后,/etc目录下并不存在defaultrouter文件,这时我们可以手工创建该文件,并编辑好默认路由,然后重启。系统启动后,就会自动使用配置好的默认路由信息了。
5、 UNIX系统管理常见问题及解决方法
1. 忘记root 密码
root用户又被称为超级用户,它是权限最高的用户,一旦它的密码被忘记,将给系统的维护和管理带来很多困难,下面是忘记root密码时的处理方法:
首先,我们需要从CD-ROM 启动系统,命令是:
#boot cdrom -s
系统启动后,我们要把硬盘根分区挂接到光盘文件系统的/mnt目录上,执行:
#mount /dev/dsk/c0t0d0s0 /mnt (该例假设根文件系统是/c0t0d0s0)
编辑硬盘根分区的shadow文件,将root的密码项位置设为空。
#cd /mnt/etc
#vi shadow
注意,有的系统要编辑/etc/passwd 文件而不是/etc/shadow文件。改完文件后,将挂接的根文件系统卸下。
#umount /mnt
重新启动系统,并设置新的root密码。
7、系统无法启动
系统无法启动的原因大致如下:
1) 错误的引导设备
假如因为指定了错误的引导设备使系统不能引导,我们可以在PROM监控等级下利用"probe-scsi","probe-scsi-all"和"probe-ipi"命令来查看有什么设备被连到系统上,并得到启动设备的devalias名。进入PROM的方法是当系统启动时,同时按下"STOP"键和"a"键, 这时系统出现提示符ok >,即表明系统当前处于PROM监控等级。
用printenv显示当前配置情况,如果发现引导设备不正确,可用setenv来重新设置:
ok >setenv boot-device devalias
用reset命令重新启动系统,或set-defaults 恢复缺省值。
2) 缺少重要的系统文件,或文件无效
这时可以用"-a"选项来引导系统,系统将提供交互式的引导过程,如果有找不到文件时,系统会提示用户给出适当的文件名。
3) 缺少关键的系统文件,或文件无效
例如缺少/etc/passwd文件,这时系统可能会引导,但是没有任何用户可以注册。修复方法是用光盘启动,挂接根文件系统并编辑/etc/passwd文件。
4) 无法挂接远程文件系统
系统启动时,会自动执行/etc/vfstab文件,如果在文件中有无法挂接的远程文件系统,则系统会一直处于等待和重试状态,无法进入登录界面。解决办法是用单用户启动,编辑/etc/vfstab文件,删除错误的挂接内容。
3. 键盘失效
如果出现键盘失效的情况,即用户在键盘上输入信息而屏幕上没有响应,首先要检查硬件的连接,即查看键盘与主机的连接是否完好,连接导线是否有折断或损害情况。
如果硬件连接没有问题,则查看是否不小心使用了锁屏命令。方法是,按下"Ctrl+q"键,如果系统有响应,则说明是因为用户按下了"ctrl+s"键将屏幕暂时锁住的原因。锁住后的屏幕将不显示用户从键盘输入的信息,但输入的信息依然能够执行。
如果系统仍没有响应,我们则要重新启动系统,进入PROM状态,输入printenv命令,并查看input device项的值,如果它的值不是keyboard,用
ok >setenv inputdevice keyboard
来使键盘成为输入设备,然后再次重启系统,这时系统将会响应用户的输入了。
8. cron 或 at 命令不能执行
UNIX系统并不允许任何用户都可使用cron进行作业调度,对用户的限制有两个文件,它们是/etc/cron.d/cron.allow和/etc/cron.d/cron.deny。
如果用户名被添加到/etc/cron.d/cron.allow文件中,则该用户被允许使用cron,而不在该文件中的用户则不允许使用,如果用户被添加到/etc/cron.d/cron.deny中,则该用户不能使用cron,其它用户则可以使用cron。通常我们根据需要配置其中一个文件就可以了。
如果用户被允许使用cron,则可以用命令
$crontab myCronFile
在系统的/var/spool/cron/crontabs目录中安装自己的作业调度控制文件。at 和 cron 相似,要使用at, 需要配置/etc/cron.d/at.allow或/etc/cron.d/at.deny文件。
9. 在Telnet时不能用root登录
在默认情况下,出于安全性考虑,UNIX系统不允许在系统操作台(console) 以外的终端用root登录,所以有时我们通过Telnet用root登录时,会返回:
"not on system console"
这样的错误,这时,我们可以通过修改/etc/default/login文件来允许root通过Telnet登录。具体方法是,编辑login文件,找到下面的一行:
CONSOLE=/dev/console
将这一行注释掉,即在行首加上"#"符,存盘退出,再次使用Telnet时,root就可以登录了。
10. 关于目录的访问权限
我们都知道UNIX系统中的每一个文件都有相应的访问权限,系统根据该权限来控制用户对文件的访问,UNIX系统中的目录也有相应的访问权限,但它的定义与文件有些不同。
读权限:对目录的读权限表示用户可以查看该目录的内容,即可以对该目录使用"ls"这样的命令。
写权限:对目录的写权限表示用户可以在该目录下建立新文件或将其中的文件删除,不论此时用户对该文件是否有写权限。
执行权限:执行权限指用户可以在该目录下搜索文件,也即可以使用该目录下具有相应访问权限的文件。
总结:上述命令均为常用系统管理命令,部分参数均为常用参数。希望unix学习者能认真学
习本节,参照其他UNIX资料。本节不足之处,在所难免,希望大家指正。
标签: