一. 引言
---- UNIX系统作为一种强大的多用户分时操作系统,在越来越多的场合受到了应用,同时,对UNIX的系统管理的要求也随之越来越多,但目前的书籍对UNIX系统管理命令介绍的并不是很多。本文主要是针对UNIX系统管理员,以SUN SOLARIS 2.6 系统为例,列举了一些UNIX常用的管理命令的使用及其使用中遇到的问题和解决方法,供大家参考。
二. 常用系统管理命令介绍
---- 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. quota 系列命令
---- UNIX作为一种多用户系统,它允许多个用户共同使用系统的资源,包括系统的内存,CPU和硬盘。在默认情况下,系统并不会限制每个用户可以使用硬盘空间的大小,所以如果用户恶意使用硬盘,或用户由于疏忽,将硬盘空间全部占用,将导致其他用户无法使用硬盘,从而使系统性能下降,甚至有崩溃的危险。
---- 其实,UNIX提供的quota系列命令可以帮助我们解决这个问题,这些命令包括:
quota : 显示用户的硬盘限额和使用情况。
edquota : 为每个用户设定硬盘限额。
quotaon: 启动文件系统硬盘限额服务
quotaoff : 关闭文件系统硬盘限额服务
repquota : 显示当前硬盘限额状态
---- 配置这项服务的方法很简单。但在使用硬盘限额服务之前,我们要明白硬限制和软限制这两个概念。所谓硬限制是指对资源节点和数据块的绝对限制,在任何情况下都不允许用户超过这个限制;而软限制是指用户可以在一定时间范围内(默认时为一周,在/usr/include/sys/fs/ufs_quota.h文件中设置)超过软限制的额度,在硬限制的范围内继续申请资源,同时系统会在用户登录时给出警告信息和仍可继续申请资源剩余时间。如果达到时间期限,用户的硬盘使用仍超过软限制的额度,则系统将不允许用户再申请硬盘资源。
---- 明白了这两个概念,我们就可以配置硬盘限额服务了,首先我们必须在要限制的文件系统的根目录下建立一名字为quotas的文件,该文件的所有者应是root,且其它用户不可以对它进行写操作。方法是:
---- # cd /home (进入文件系统根目录,注意并不是系统根目录,本例为/home目录)
---- # touch quotas (创建一名字为quotas的空文件)
---- # chmod 644 quotas (更改文件属性,使只有root可以对它进行写操作)
---- 然后,我们编辑/etc/vfstab文件,找到要进行硬盘限额服务的文件系统,并将mount option字段的值设为rq,然后并存盘退出。
---- 完成这两步后,我们使用edquota命令为每个用户设置硬盘限额,在root权限下输入以下命令:
#edquota username
这时系统会自动生成一个临时文件,并且有如下内容:
fs /users blocks (soft = 0, hard = 0)
inodes (soft = 0, hard = 0)
---- 其中fs字段表明使用硬盘限额的文件系统,本例为/users,block和inodes表明用户可以使用的硬盘千字节数和I节点数,即用户可使用的硬盘空间和可建立的文件数,soft和hard分别对于前面提及的软限制和硬限制。
---- 编辑这个文件,把软,硬限制设置到合适的数值,然后存盘退出。这时我们可以看到quotas文件的大小已经被改变,说明用户的限额已经储存。重复这条命令,给每一个用户都配置硬盘限额。另外,如果我们分配给用户的硬盘限额都相同,我们可以使用 "-p" 参数而不用为每个用户都编辑一个文件,它的使用方法是:
#edquota -p reference-username username
编辑完文件后,我们就可以用quotaon来启动服务了,
在root权限下输入
#quotaon /users
就可以启动限额服务。如果我们要查看各个用户的当前使用情况,
可以使用repquota 命令,在root权限下输入:
#repquota /users
系统会显示:
---- 从中我们可以很容易看到用户的硬盘和文件的使用情况以及超过软限制后仍可申请资源的时间等等。
---- 当然我们可以用quotaoff取消硬盘限额服务。另外,系统还提供quotacheck 命令对限额的一致性进行检查。
---- 3. 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 命令将看不到该网络接口。
---- 4. format命令
---- format也是一个重要的系统管理命令,但由于它的破坏性极大,使用时一定要小心。format命令主要有两个用途,即格式化硬盘和重新对硬盘分区,下面分别加以说明:
---- 1) 格式化硬盘
---- 和DOS一样,UNIX的硬盘在使用之前也需要格式化,在对它格式化之前,我们要用单用户形式重启动系统
#reboot -s
启动后用root用户登录,然后在命令行下输入:
#format
系统会显示所有的硬盘并让我们选择要格式化的硬盘:
---- 本例中系统有两个SUN2.1G的硬盘,我们选择1并回车,系统会显示如下菜单:
---- 在提示符下输入type来选择硬盘类型,系统会列出它支持的硬盘类型,选择合适的硬盘类型并输入相应的代码(也可以输入0让系统自动检测)。选择完硬盘类型后,就可以配置硬盘分区,有关分区的具体操作请参见"2)重新分区"一节。
---- 配置结束后,输入format命令进行格式化,这将花费一定的时间,具体时间的长短受机器型号和硬盘大小的影响。格式化完成后,就可以输入quit命令退出了。
---- 硬盘格式化后,并不能立即被使用,我们还需要在上面创建文件系统,使用命令newfs来为每一个分区创建文件系统:
#newfs /dev/rdsk/c0t1d0s0
#newfs /dev/rdsk/c0t1d0s1
…
---- 参数的具体数值根据分区的情况来设置。
---- 另外,如果该硬盘包含启动分区(根分区),我们需要手动安装启动模块,安装之前首先要有UNIX系统安装光盘,我们通过光盘启动后,将系统根分区挂接上,并从光盘安装启动模块,具体方法如下:
#reboot cdrom -s (从光盘启动,并进入单用户模式)
#mount /dev/dsk/c0t1d0s0 /mnt
(将系统根分区挂接到mnt目录下)
#cp /ufsboot /mnt
#installboot /lib/fs/ufs/bootblk
/dev/rdsk/c0t1d0s0 (安装启动模块)
#umount /mnt (卸下挂接)
#reboot (重启动)
---- 至此,硬盘的格式化操作已经完成,我们可以使用该硬盘了。
---- 2) 重新分区
----