发新话题
打印

【申请加精】来自UC的《Solaris 10红宝书》系列在线课程

本主题由 otto 于 2008-4-15 09:22 加入精华
13.3.6 限额和保留
ZFS支持文件系统级的限额和保留。文件系统的属性提供使用quota来限制文件系统使用的限额,并同时通过保留来保证一定的空间是可以使用的。这些属性都能应用到所有的子数据集中。

如果在tank/home数据集中设置了限额,tank/home和它的子级都不能超过这个限额。类似地,如果tank/home是保留的,tank/home和所有子级都有保留。数据集使用的空间反映使用的属性。

1.设置限额
使用空间的限额可以被zfs set和zfs get命令设置。

 例13-56 在tank/home/bonwick设置10GB的限额。

# zfs set quota=10G tank/home/bonwick

# zfs get quota tank/home/bonwick

NAME PROPERTY VALUE SOURCE

tank/home/bonwick quota 10.0G local

使用zfs list查看结果:

# zfs list

NAME USED AVAIL REFER MOUNTPOINT

tank/home 16.5K 33.5G 8.50K /export/home

tank/home/bonwick 15.0K 10.0G 8.50K /export/home/bonwick

tank/home/bonwick/ws 6.50K 10.0G 8.50K /export/home/bonwick/ws

使用df命令查看结果:

# df -h /export/home/bonwick

Filesystem size used avail capacity Mounted on

tank/home/bonwick 10G 8K 10G 1% /export/home/bonwick

尽管tank/home有33.5GB的空间,但tank/home/bonwick被设定了10GB的限额。

在设定限额的时候,我们不能设定比当前使用空间还少的限额:

# zfs set quota=10G tank/home/bonwick

cannot set quota for ’tank/home/bonwick’: size is less than current used or

reserved space

2.设置保留空间
ZFS的保留空间是为了能从存储池中确保分配到可用的空间。因此,如果没有当前可以使用的空间,就不能设定保留空间。

ZFS保留空间可以通过zfs set和zfs get命令来完成分配。

 例13-57 设定保留空间。

# zfs set reservation=5G tank/home/moore

查看保留属性:

# zfs get reservation tank/home/moore

NAME PROPERTY VALUE SOURCE

tank/home/moore reservation 5.00G local

也可以使用zfs list查看保留空间:

# zfs list

NAME USED AVAIL REFER MOUNTPOINT

tank/home 5.00G 33.5G 8.50K /export/home

tank/home/moore 15.0K 10.0G 8.50K /export/home/moore

从上面可以看出,尽管tank/home和子系统使用的空间可能比5GB小,但tank/home仍然显示使用了5GB,说明这是为tank/home/moore保留的。

子级文件系统的保留空间计入父级文件系统的使用空间。

 例13-58 保留空间不能大于限额。

# zfs set quota=5G pool/filesystem

# zfs set reservation=10G pool/filesysetm/user1

cannot set reservation for ’pool/filesystem/user1’: size is greater than available space

上面的例子说明:保留空间不能大于限额。




 例13-59 保留空间不是累计的。

# zfs set reservation=10G tank/home/moore

# zfs set reservation=5G tank/home/moore

# zfs get reservation tank/home/moore

NAME PROPERTY VALUE SOURCE

tank/home/moore reservation 5.00G local

上面的例子说明:保留空间不是累计的,是被替换的。

13.3.7 文件系统的备份和恢复
通过zfs backup或zfs restore命令,可以备份ZFS文件系统的快照或原始文件系统。

ZFS备份和恢复解决方案提供了以下内容:

 创建ZFS快照或增量的快照。

 通过移动备份后,进行数据恢复。

1.备份ZFS快照
下面的命令使用zfs backup命令备份快照。

 例13-60 备份快照。

# zfs backup tank/dana@111505 > /dev/rmt/0

 例13-61 增量备份。

# zfs backup -i tank/dana@111505 tank/dana@now > /dev/rmt/0

2.恢复ZFS快照
 例13-62 恢复ZFS快照。

备份ZFS快照:

# zfs backup tank/gozer@111105 > /dev/rmt/0

然后,将备份恢复成另外的tank/gozer2@today名字:

# zfs restore tank/gozer2@today < /dev/rmt/0

第三,将原来的文件系统改为tank/gozer.old,再将tank/gozer2@today恢复成原来文件系统的名字:

# zfs rename tank/gozer tank/gozer.old

# zfs rename tank/gozer2 tank/gozer      

TOP

13.4 ZFS文件系统的快照和克隆   
本节介绍如何创建、管理快照和克隆。

13.4.1 ZFS文件系统的快照
快照是文件系统和卷的只读的拷贝。

1.创建和删除ZFS快照
我们使用zfs snapshot命令来创建快照,这个命令只有一个变量就是快照的名字。快照名字如下所示:

filesystem@snapname

volume@snapname

 例13-63 创建名为Friday的快照。

# zfs snapshot tank/home/ahrens@Friday

快照不能被修改属性,也不能使数据集的属性应用到快照上。

 例13-64 不能给快照设置属性。

# zfs set compression=on pool/home/ahrens@tuesday

cannot set compression property for ’pool/home/ahrens@tuesday’: snapshot

properties cannot be modified

请使用zfs destroy命令删除快照。

 例13-65 删除快照。

# zfs destroy tank/home/ahrens@Friday

在快照存在的情况下,数据集不能被删除。

 例13-66 删除存在快照的数据集。

# zfs destroy pool/home/ahrens

cannot destroy ’pool/home/ahrens’: filesystem has children

use ’-r’ to destroy the following datasets:

pool/home/ahrens@tuesday

pool/home/ahrens@wednesday

pool/home/ahrens@Thursday

另外,如果存在快照的克隆,也不能删除数据集。

可以使用zfs rename命令,给快照改名字。

 例13-67 将cindys快照的名字改为today。

# zfs rename tank/home/cindys@111205 pool/home/cindys@today

下面给快照改名字的操作是不被支持的。

 例13-68 给快照改名字的错误操作。

# zfs rename tank/home/cindys@111205 pool/home/cindys@saturday

cannot rename to ’pool/home/cindys@today’: snapshots must be part of same

dataset

上面的例子说明,给快照改名字的时候不能改变快照的数据集。

2.显示和访问ZFS快照
我们可以在文件系统的目录中找到文件系统的快照。比如,文件系统tank/home/ahrens安装在/home/ahrens目录,而tank/home/ahrens@friday的快照就在相应的/home/ahrens/.zfs /snapshot/目录中。可以使用ls命令进行查看:

# ls /home/ahrens/.zfs/snapshot

tuesday wednesday thursday Friday

到目前为止,.zfs/snapshot/目录还只能被本地或NFS的第4版所访问。其他的NFS版本目前还不支持。

快照也可以使用下面的方法进行显示:

# zfs list -t snapshot

NAME USED AVAIL REFER MOUNTPOINT

pool/home/ahrens@tuesday 13.3M - 2.13G -

3.恢复到最初的快照
使用zfs rollback命令能使快照放弃所有的改变,恢复到建立快照的最初状态。如果有些最近的快照的话,使用­-r选项能强制删除这些快照,而恢复到最初的快照。

 例13-69 恢复pool/home/ahrens文件系统的星期二的快照。

# zfs rollback pool/home/ahrens@tuesday

cannot rollback to ’pool/home/ahrens@tuesday’: more recent snapshots exist

use ’-r’ to force deletion of the following snapshots:

pool/home/ahrens@wednesday

pool/home/ahrens@thursday

# zfs rollback -r pool/home/ahrens@tuesday      

TOP

13.4.2 ZFS文件系统的克隆
克隆是一种与文件系统或卷的内容相同,但另外的一个数据集的形态。与快照一样,创建克隆是很快的,而且不需要消耗空间的。

可以创建快照的克隆,这样克隆就依赖快照的存在而存在。你不能在有这个快照的克隆的情况下删除此快照。

1.创建克隆
使用zfs clone命令来创建克隆。克隆是新的文件系统或卷,它将被放入ZFS文件系统的层中。

 例13-70 创建和pool/ws/gate@yesterday快照内容相同的名为pool/home/ahrens/ bug123的克隆。

# zfs clone pool/ws/gate@yesterday pool/home/ahrens/bug123

2.删除克隆
可以使用zfs destroy命令来删除克隆,在生成克隆的快照删除前,必须首先要删除克隆。

 例13-71 删除克隆。

# zfs destroy pool/home/ahrens/bug123      

TOP

Solaris 10系统资源管理


第14章 Solaris 10系统资源的初级管理   
本章将为大家介绍Solaris 10的系统资源管理方面的初级知识。由于系统资源直接关系着服务提供商的服务质量和软件开发商的软件质量,所以它是系统管理人员和软件开发人员的共同关注点。

本章、第15章和第16章,都将介绍关于系统资源管理的知识,请读者务必将这三章联系起来学习,融会贯通。      

TOP

14.1 系统资源管理概述   
在计算机系统中,分配给用户使用的各种硬件和软件设施统称为系统资源。系统资源包括两大类:硬件资源和信息资源。其中,硬件资源分为处理器、存储器、I/O设备等,I/O设备又分为输入型设备、输出型设备和存储型设备;信息资源则分为程序和数据等资源。

操作系统的重要任务之一是有序地管理计算机系统中的硬件、软件资源,跟踪资源使用状况,满足用户对资源的需求,协调各程序对资源的使用冲突,为用户提供简单、有效的资源使用方法,最大限度地实现各类资源的共享,提高资源利用率,从而使得计算机系统的性能有很大提高。

对于从控制程序执行,扩充其功能,屏蔽使用细节,方便用户使用,组织合理工作流程,改善人机界面等方面,我们都可以理解为系统资源管理。

本章将从最基本的系统资源管理开始,逐步向读者介绍系统资源管理的知识。

首先,我们需要收集一些关于系统资源的信息。只有在了解系统资源信息后,才可以使我们对整个系统资源的使用情况有一个宏观的规划,从而实现系统资源的优化配置。

然后介绍对最常见的硬件资源,即硬盘的管理,对系统性能影响比较大的处理器和内存的管理将在第1**薪樯堋?

在Solaris系统中,我们可以用cron和at命令来定时执行命令或程序,以实现资源的定时调用。但本章的系统资源管理不包括用户如何分配资源和控制资源。这部分的内容,请参见第16章。

下面简要介绍在Solaris 10中新出现的两个管理资源工具:

 psrinfo命令

在以前的Solaris版本中,psrinfo命令为我们提供物理CPU方面的信息。在Solaris 10中,它增加了新的识别多线程属性,也可以提供CPU组方面的信息了。新增的-p属性可显示所有物理CPU的信息;而-pv是显示所有物理CPU和由物理CPU组成的CPU组。

 localeadm命令

localeadm命令是完全新增的,它可以让用户在不重新安装操作系统的情况下改变系统的地区属性。      

TOP

14.2 显示和改变系统资源信息   
本节主要介绍一些查看和改变系统的综合资源信息的方法。这些资源信息的内容可能是比较宏观、笼统的,但对我们了解系统资源的总体状况是非常有帮助的。

14.2.1 显示系统资源信息
作为系统管理员,需要经常查看系统资源信息,以确保系统资源的有效管理,保障系统的稳定运行。

“工欲善其事,必先利其器”,我们要首先了解显示系统资源信息的命令工具。表14-1列出了显示一般的系统信息的命令。

表14-1 显示系统信息的命令

命 令
命令说明
帮 助

date
显示日期和时间
date(1)

hostid
显示主机ID号
hostid(1)

isainfo
显示系统内核支持的应用程序的比特位数
isainfo(1)

isalist
显示在x86平台上系统支持应用程序的比特位数
psrinfo(1M)

localeadm
进行系统的时区设置
localeadm(1M)

prtconf
列出系统硬件信息
prtconf(1M)

psrinfo
显示CPU的类型
psrinfo(1M)

showrev
显示主机名、主机ID、内核版本、应用程序架构、硬件提供者信息等
showrev(1M)

uname
显示操作系统的名称、版本、节点名、硬件名和CPU类型
.name(1)


1.如何确认Solaris操作系统是32位兼容的还是64位兼容的
命令介绍:

# isainfo options

isainfo命令在不使用任何参数的情况下,也能显示操作系统的版本。

其中,

 -v 显示概要信息。

 -b 显示本地应用软件的比特位数。

 例14-1 在SPARC平台上,确认Solaris操作系统是32位兼容的还是64位兼容的。

(1)在UltraSPARC硬件平台上,运行以前使用的32位内核版本的Solaris操作系统,命令及输出如下:

$ isainfo -v

32-bit SPARC applications

这个输出意味着操作系统支持32位应用程序。

(2)在UltraSPARC硬件平台上,运行64位内核的Solaris操作系统的命令和输出如下:

$ isainfo -v

64-bit sparcv9 applications

32-bit SPARC applications

这个输出意味着系统能够支持32位和64位的应用程序。

请注意,使用isainfo –b命令可以显示支持本地应用软件的bit位数。

(3)在SPARC平台、 x86平台上运行32位内核的Solaris操作系统的命令和输出如下:

$ isainfo -b

32

(4)在64位UltraSPARC平台上运行64位内核Solaris操作系统的命令和输出如下:

$ isainfo -b

64

需要说明的是:虽然在64位UltraSPARC系统上能运行所有应用程序,但64位应用程序最好还是在64位的系统上运行。

 例14-2 在x86平台上,确认Solaris操作系统是32位兼容的还是64位兼容。

(1)在x86平台上运行64位内核的Solaris操作系统的命令和输出如下:

$ isainfo

amd64 i386

此输出意味着系统能支持64位的应用程序。

(2)在x86平台上运行32位内核的Solaris操作系统的命令和输出如下:

$ isainfo -v

64-bit amd64 applications

fpu tsc cx8 cmov mmx ammx a3dnow a3dnowx fxsr sse sse2

32-bit i386 applications

fpu tsc cx8 cmov mmx ammx a3dnow a3dnowx fxsr sse sse2

此输出意味着系统能支持64位和32位的应用程序。

(3)在x86平台上运行32位操作系统的命令和输出如下:

$ isainfo -b

32

(4)在x86平台上运行64位操作系统的命令和输出如下:

$ isainfo -b

64

(5)也可以使用isalist命令确认x86平台运行的是32位还是64位操作系统:

$ isalist

amd64 pentium_pro+mmx pentium_pro pentium+mmx pentium i486 i386 i86

此输出表明此系统是64位系统。

2.如何显示物理CPU的类型
使用psrinfo -p命令来显示所有物理的CPU的数量。

 例14-3 显示系统中物理CPU的数量。

$ psrinfo -p

1

由输出可见,系统中只有一个物理CPU。

 例14-4 使用psrinfo -pv命令来显示物理CPU和关联的虚拟CPU。

$ psrinfo -pv

The UltraSPARC-IV physical processor has 2 virtual processors (8, 520)

The UltraSPARC-IV physical processor has 2 virtual processors (9, 521)

The UltraSPARC-IV physical processor has 2 virtual processors (10, 522)

The UltraSPARC-IV physical processor has 2 virtual processors (11, 523)

The UltraSPARC-III+ physical processor has 1 virtual processor (16)

The UltraSPARC-III+ physical processor has 1 virtual processor (17)

The UltraSPARC-III+ physical processor has 1 virtual processor (1

The UltraSPARC-III+ physical processor has 1 virtual processor (19)

 例14-5 在x86平台上使用命令psrinfo -pv。

$ psrinfo -pv

The i386 physical processor has 2 virtual processors (0, 2)

The i386 physical processor has 2 virtual processors (1, 3)

3.如何显示虚拟CPU的类型
(1)使用psrinfo -v 命令来显示CPU的类型:

$ psrinfo -v

(2)在x86平台上,使用isalist命令来显示虚拟CPU的类型:

$ isalist

 例14-6 在SPARC平台上,显示系统CPU的类型。

$ psrinfo -v

Status of virtual processor 0 as of: 04/16/2004 10:32:13

on-line since 03/22/2004 19:18:27.

The sparcv9 processor operates at 650 MHz,

and has a sparcv9 floating point processor.

 例14-7 在x86平台上,显示系统CPU的类型。

$ isalist

pentium_pro+mmx pentium_pro pentium+mmx pentium i486 i386 i86

4.如何显示Solaris版本信息
操作系统的版本信息保留在/etc/release文件中。

 例14-8 显示操作系统的版本信息。

$ more /etc/release

Solaris 10 s10_51 SPARC

Copyright 2004 Sun Microsystems, Inc. All Rights Reserved.

Use is subject to license terms.

Assembled 21 January 2004

5.如何显示系统综合信息
使用showrev –a命令可以显示系统的所有综合信息。

 例14-9 显示系统的所有综合信息。

$ showrev -a

Hostname: touchstone

Hostid: 8099dfb9

Release: 5.10

Kernel architecture: sun4u

Application architecture: SPARC

Hardware provider: Sun_Microsystems

Domain: boulder.Central.Sun.COM

Kernel version: SunOS 5.10 s10_46

OpenWindows version:

Solaris X10 Version 6.6.2 20 October 2003

No patches are installed

6.如何显示系统主机ID号、系统内存信息和系统日期时间
 例14-10 显示系统主机ID号、系统内存信息和系统日期时间。

(1)使用hostid命令可以显示系统主机ID号:

$ hostid

80a5d34c

(2)使用下面命令来显示系统内存信息:

# prtconf | grep Memory

Memory size: 128 Megabytes

(3)使用date命令来显示系统日期时间:

$ date

Wed Jan 21 17:32:59 MST 2004

7.如何显示和改变Locale设置
 例14-11 显示和改变系统时区设置。

(1)显示系统时区:

# localeadm -l

Checking for installed pkgs. This could take a while.

Checking for Australasia region (aua)

(1of2 pkgs)

|......|

The following regions are installed on concordance on Wed Dec 17 15:13:00 MST 2003

POSIX (C)

Central Europe (ceu)

[ Austria, Czech Republic, Germany, Hungary, Poland, Slovakia,

Switzerland (German), Switzerland (French) ]

Done.

上面例子中系统时区为澳大利亚,下面将其改为欧洲中部。

(2)改变系统Locale设置:

# localeadm -q ceu

locale/region name is ceu

Checking for Central Europe region (ceu)





The Central Europe region (ceu) is installed on this system

瞧,现在系统的时区已经是欧洲中部了。      

TOP

8.显示系统已经运行的时间
使用命令uptime可以查看系统运行了多久。

 例14-12 显示系统运行了多久。

# uptime

11:27pm up 9 days,7:12,1 user,load average:0.07,0.12,0.14

显示目前时间是11:27pm,而系统已经开机了9天又7:12之多,目前有一个使用者在线上,过去1,5,15分钟系统平均负荷分别为0.07,0.12,0.14。

9.查看系统内存
prtconf命令可以查看关于系统硬件设备的很多信息。读者可以仿照例14-13来查看其他硬件信息。

 例14-13 查看系统内存信息。

# prtconf | grep Memory

Memory size: 512Megabytes      

TOP

14.2.2 改变系统信息
系统中有些提示信息是可以由管理员手工改动的,比如系统时间和系统用户登录时的提示等。下面具体介绍一些改变系统信息的方法。

1.改变系统日期和时间
命令介绍:

# date mmddHHMM[[cc]yy]

其中:

 mm——月,使用2位数字表示。

 dd——日,使用2位数字表示。

 HH——小时。

 MM——分钟。

 cc——秒。

 yy——年,使用2位数字表示。

 例14-14 改变系统时间。

# date

Wed Mar 3 14:04:19 MST 2005

# date 0121173404

Thu Jan 21 17:34:34 MST 2005

2.改变系统登录信息
步骤:

(1)以超级用户或授权角色用户登录系统。

(2)编辑系统登录信息所在的文件/etc/motd.,并保存。

3.改变主机名
步骤:

(1)成为超级用户或授权角色用户。

(2)修改下列文件:

 /etc/nodename

 /etc/hostname.host-name

 /etc/inet/hosts

(3)重新启动主机。

# init 6

4.如何增加和删除时区设置
上面已介绍改变系统的时区设置的方法,但是这是在有时区软件的情况下,如果操作系统中没有安装我们需要的时区的软件,怎么办?例14-15将介绍如何增添系统时区软件,例14-16将介绍如何删除时区软件。

 例14-15 增添系统时区软件,并更新系统时区设置。

使用命令localeadm,并在其-a选项后面放想安装的locale的标志符,-d选项后面接安装程序包的位置。

# localeadm -a ceu -d /net/install/latest/Solaris/Product

locale/region name is ceu

Devices are /net/install/latest/Solaris/Product



One or more locales have been added.

To update the list of locales available at



 例14-16 删除系统时区软件。

使用命令localeadm,-r选项后跟要删除的locale的标志符。

# localeadm -r ceu

locale/region name is ceu

Removing packages for Central Europe (ceu)



One or more locales have been removed.

To update the list of locales available

at the login screen’s "Options->Language" menu      

TOP

14.3 管理磁盘空间   
系统磁盘是存放数据资料和应用程序的地方,它的安全与效率对管理员来说具有特殊的意义。本节将详细介绍磁盘空间的管理。

14.3.1 查看磁盘空间的大小
查看磁盘空间的大小是系统管理员经常需要做的事情。Solaris操作系统提供了许多命令,以反映系统磁盘空间大小,由此可见查看系统空间大小的重要性。表14-2所示为磁盘空间信息的命令汇总。

表14-2 查看磁盘空间信息的命令

命 令
描 述
帮 助

df
报告空闲磁盘块和文件的数量
df(1M)

du
子目录的占用空间大小
du(1)

find -size
查找指定目?**付ù笮〉奈募?
find(1)

ls -lh
显示当前目录下文件及大小
ls(1)


下面仅列举三个例子,读者应该很容易明白如何使用它们查看系统磁盘空间信息了。

 例14-17 显示文件大小和磁盘空间。

$ df

/ (/dev/dsk/c0t0d0s0 ): 101294 blocks 105480 files

/devices (/devices ): 0 blocks 0 files

/system/contract (ctfs ): 0 blocks 2147483578 files

 例14-18 以1024K的形式显示文件大小和磁盘空间。

$ df -h

Filesystem size used avail capacity Mounted on

/dev/dsk/c0t0d0s0 249M 200M 25M 90% /

/devices 0K 0K 0K 0% /devices

 例14-19 以块的形式显示文件大小和磁盘空间。

$ df -t

/ (/dev/dsk/c0t0d0s0 ): 101294 blocks 105480 files

total: 509932 blocks 129024 files

/devices (/devices ): 0 blocks 0 files

total: 0 blocks 113 files

14.3.2 查看文件的大小
在了解磁盘空间大小之后,我们还需要了解文件的大小。只有这样才能合理地放置文件,有效地使用空间。

通常可以使用ls命令查看文件的大小:

ls

ls后加上-l参数,则列出当前目录的详细信息。在Solaris 10中,ls –l列出的文件的系统时间已经精确到微秒。

 例14-20 列出文件的详细信息。

$ ls -l

total 148

drwxrwxr-x 5 adm adm 512 Nov 26 09:39 acct/

-rw------- 1 uucp bin 0 Nov 26 09:25 aculog

drwxr-xr-x 2 adm adm 512 Nov 26 09:25 exacct/

使用find命令可以在目录中检索达到一定标准的文件。

 例14-21 在当前目录下列出大于400块的文件。

$ find . -size +400 -print

./Howto/howto.doc

./Howto/howto.doc.backup

./Howto/howtotest.doc

./Routine/routineBackupconcepts.doc

14.3.3 检查目录的大小
使用du命令来检查目录的大小。

命令介绍:

$ du [-as] [directory ...]

du命令是显示目录及目录下的子目录的总体大小。

 -a参数是显示每个目录的大小和块数。

 -s参数是显示专门目录大小是多少块数。

 -h参数是显示每个目录的大小是多少KB。

 例14-22 显示目录、子目录和文件的大小。

显示目录大小是多少块数:

$ du -s /var/adm /var/spool/

130 /var/adm

40 /var/spool/lp

显示目录的大小是多少KB:

$ du -h /usr/share/audio

796K /usr/share/audio/samples/au

797K /usr/share/audio/samples

798K /usr/share/audio

14.3.4 查找特定文件
在磁盘空间管理中,文件管理是非常重要的。一些旧的不再需要的文件,往往占用了宝贵的资源,找到并删除这些旧文件,是系统管理者必须做的。

1.如何按时间排序列出文件
使用ls –tl命令列出最新的文件,-t参数是要求输出按时间排序,时间最新的在最上边。

 例14-23 按照时间顺序列出目录内文件。

$ ls -tl /var/adm

total 134

-rw------- 1 root root 315 Sep 24 14:00 sulog

-r--r--r-- 1 root other 350700 Sep 22 11:04 lastlog

-rw-r--r-- 1 root bin 4464 Sep 22 11:04 utmpx

-rw-r--r-- 1 adm adm 20088 Sep 22 11:04 wtmpx

2.如何找到并删除旧的或不用的文件
步骤:

(1)成为超级用户或授权角色用户。

(2)找到旧的或不用的文件。

命令介绍:

# find directory -type f[-atime +nnn][-mtime +nnn] -print > filename &

 directory—在此目录下查找。

 -atime +nnn—匹配所有在nnn天内访问过的文件。

 -mtime +nnn—匹配所有在nnn天内修改过的文件。

 filename—查找的结果列放在此文件中。

(3)删除:

# rm 'cat filename'

3.如何找到并删除core文件
core文件是系统软件故障信息记录文件。可用下面的方法来删除这些文件。

步骤:

(1)成为超级用户或授权角色用户。

(2)进入你想要查找core文件的目录。

(3)找到并删除core文件:

# find . -name core -exec rm {} \;      

TOP

14.4 使用Quota管理磁盘空间   
本节介绍如何使用Quota来限定用户使用磁盘空间的大小。

14.4.1 Quota概述
对磁盘空间资源进行必要的管理是系统管理员的工作之一。尤其当系统磁盘空间有限,而用户众多的时候,系统管理员就要想出办法,要么增加磁盘的数量,要么限定用户的使用空间。在不增加新的预算的情况下,限定用户空间就是惟一可行的方法。

Quota可以帮助系统管理员在指定目录限定用户使用磁盘空间的大小。

Quota在限制磁盘空间方面有两种措施:硬限制和软限制。硬限制就是系统严格限制用户可以使用空间的大小,不允许超额。软限制是允许用户超出限额一定的范围。当超出软限额时,Quota开始计时,在计时期间(默认时为一周,在/usr/include/sys/fs/ufs_quota.h文件中设置),用户释放空间到限额以下,计时复位清零。如果到期还没有释放空间,系统将不再允许该用户使用更多的空间。

Quota限制磁盘空间的方法也有两种,即分别对inode和block进行限制。因为系统给用户提供了两种资源:inode和block,分别用于存储文件和数据。只要用户所建立的文件超过他可以使用的inode数额,则即使这些文件都是空的,他再次建立文件的行为也将被限制。

14.4.2 设置Quota
Solaris操作系统支持Quota技术,意即设置Quota不需要另外安装其他第三方的工具就可以完成。

设置Quota步骤:

(1)编辑/etc/vfstab文件,在需要设置Quota的UFS的属性上加上rq标志。

(2)在该文件系统的根目录下建立名为quotas的文件,该文件的所有者应是root,其他用户不可对它进行写操作。

(3)使用edquota命令来在UFS的根目录下创建一个临时文件,这个文件的内容包括用户的使用限额。

(4)为多个用户设置edquota限额(可选)。

(5)使用quotacheck命令对限额的一致性进行检查。

(6)用quotaon命令来启动edquota服务。

 例14-24 在磁盘c0t4d0s0的mount点/work下建立磁盘使用限额。

(1)成为超级用户或授权角色用户。

(2)编辑/etc/vfstab文件,加上:

/dev/dsk/c0t4d0s0 /dev/rdsk/c0t4d0s0 /export/home ufs 3 yes rq

(3)/export/home目录下,建立名为quotas的文件。

# touch quotas

# chmod 600 quotas

(4)使用edquota命令来建立用户的使用限额:

# edquota bob

系统生成:fs /export/home blocks (soft =10, hard =10) inodes (soft =10, hard =10)

其中,fs字段表明使用硬盘限额的文件系统,为/export/home;bob为用户名。修改soft和hard的数额就可以设定限额的大小。0是无限额设定;本次设定限额大小为10MB。

(5)以bob用户设置为模板,为多个用户设置edquota限额,mary和john也为用户名。

# edquota -p bob mary john

(6)使用quotacheck -va命令对限额的一致性进行检查。

# quotacheck -va

*** Checking quotas for /dev/rdsk/ c0t4d0s0 (/export/home)

(7)用quotaon命令来启动edquota服务:

#quotaon /export/home

14.4.3 检查Quota设置
Quota设置后,我们可以用下面的命令来检查设置是否成功。

# repquota -va

/dev/dsk/ c0t4d0s0 (/export/home):

Block limits File limits

User used soft hard timeleft used soft hard timeleft

Bob -- 1 10 10 0 0 10 10 0

Mary -- 3 10 10 0 0 10 10 0

John -- 0 10 1 0 0 10 10 0

磁盘块限制的定义:

 used——当前已经使用的块数。

 soft——soft-block限制数额。

 hard——hard-block限制数额。

 timeleft——剩余的可使用时间。.

文件限制定义:

 used——已经使用的inode数量。

 soft——soft-inode limit限制数额。

 hard——hard-inode限制数额。

 timeleft——剩余的可使用时间。      

TOP

发新话题