系统管理指南:高级管理

提示虚拟内存不足  时间:2021-01-19  阅读:()

文件号码819–6951–152010年9月版权所有1998,2010,Oracle和/或其附属公司.
保留所有权利.
本软件和相关文档是根据许可证协议提供的,该许可证协议中规定了关于使用和公开本软件和相关文档的各种限制,并受知识产权法的保护.
除非在许可证协议中明确许可或适用法律明确授权,否则不得以任何形式、任何方式使用、拷贝、复制、翻译、广播、修改、授权、传播、分发、展示、执行、发布或显示本软件和相关文档的任何部分.
除非法律要求实现互操作,否则严禁对本软件进行逆向工程设计、反汇编或反编译.

此文档所含信息可能随时被修改,恕不另行通知,我们不保证该信息没有错误.
如果贵方发现任何问题,请书面通知我们.

如果将本软件或相关文档交付给美国政府,或者交付给以美国政府名义获得许可证的任何机构,必须符合以下规定:U.
S.
GOVERNMENTRIGHTSPrograms,software,databases,andrelateddocumentationandtechnicaldatadeliveredtoU.
S.
Governmentcustomersare"commercialcomputersoftware"or"commercialtechnicaldata"pursuanttotheapplicableFederalAcquisitionRegulationandagency-specificsupplementalregulations.
Assuch,theuse,duplication,disclosure,modification,andadaptationshallbesubjecttotherestrictionsandlicensetermssetforthintheapplicableGovernmentcontract,and,totheextentapplicablebythetermsoftheGovernmentcontract,theadditionalrightssetforthinFAR52.
227-19,CommercialComputerSoftwareLicense(December2007).
OracleAmerica,Inc.
,500OracleParkway,RedwoodCity,CA94065.
本软件或硬件是为了在各种信息管理应用领域内的一般使用而开发的.
它不应被应用于任何存在危险或潜在危险的应用领域,也不是为此而开发的,其中包括可能会产生人身伤害的应用领域.
如果在危险应用领域内使用本软件或硬件,贵方应负责采取所有适当的防范措施,包括备份、冗余和其它确保安全使用本软件或硬件的措施.
对于因在危险应用领域内使用本软件或硬件所造成的一切损失或损害,OracleCorporation及其附属公司概不负责.
Oracle和Java是Oracle和/或其附属公司的注册商标.
其他名称可能是各自所有者的商标.
AMD、Opteron、AMD徽标以及AMDOpteron徽标是AdvancedMicroDevices的商标或注册商标.
Intel和IntelXeon是IntelCorporation的商标或注册商标.
所有SPARC商标均是SPARCInternational,Inc的商标或注册商标,并应按照许可证的规定使用.
UNIX是通过X/OpenCompany,Ltd授权的注册商标.
本软件或硬件以及文档可能提供了访问第三方内容、产品和服务的方式或有关这些内容、产品和服务的信息.
对于第三方内容、产品和服务,OracleCorporation及其附属公司明确表示不承担任何种类的担保,亦不对其承担任何责任.
对于因访问或使用第三方内容、产品或服务所造成的任何损失、成本或损害,OracleCorporation及其附属公司概不负责.
100831@24661目录前言151管理终端和调制解调器(概述)21管理终端和调制解调器方面的新增功能21SPARC:相关控制台21SPARC:对如何设置控制台的$TERM值的更改22系统控制台上由SMF管理的ttymon调用22终端、调制解调器、端口和服务22终端描述23调制解调器描述23端口描述23服务描述24端口监视器24终端和调制解调器的管理工具24串行端口工具25服务访问工具概述252设置终端和调制解调器(任务)27设置终端和调制解调器(任务图)27使用串行端口工具设置终端和调制解调器(概述)28设置终端28设置调制解调器29如何设置终端、调制解调器和初始化端口(任务)30如何设置终端30如何设置调制解调器31如何初始化端口32解决终端和调制解调器问题3333使用服务访问工具管理串行端口(任务)35管理串行端口(任务图)36使用服务访问工具36整体SAF管理(sacadm)37服务访问控制器(SAC程序)37SAC初始化进程38端口监视器服务管理(pmadm)38ttymon端口监视器38端口初始化进程39双向服务39TTY监视器和网络侦听器端口监视器39TTY端口监视器(ttymon)40ttymon和控制台端口40特定于ttymon的管理命令(ttyadm)40网络侦听器服务(listen)41特殊listen专用管理命令(nlsadmin)41管理ttymon端口监视器42如何设置ttymon控制台终端类型42如何在ttymon控制台终端上设置波特率速度42如何添加ttymon端口监视器43如何查看ttymon端口监视器状态44如何停止ttymon端口监视器45如何启动ttymon端口监视器45如何禁用ttymon端口监视器45如何启用ttymon端口监视器46如何删除ttymon端口监视器46管理ttymon服务(任务图)46管理ttymon服务47如何添加服务47如何查看TTY端口服务的状态48如何启用端口监视器服务50如何禁用端口监视器服务50服务访问工具管理(参考)50与SAF相关联的文件50/etc/saf/_sactab文件51/etc/saf/pmtab/_pmtab文件51目录系统管理指南:高级管理2010年9月4服务状态53端口监视器状态53端口状态534管理系统资源(概述)55系统资源管理方面的新增功能55用于显示产品名称的新增prtconf选项55识别芯片多线程功能的psrinfo命令选项56新增localeadm命令56管理系统资源(指南)565显示和更改系统信息(任务)59显示系统信息(任务图)59显示系统信息60如何显示系统的物理处理器类型65如何显示系统的逻辑处理器类型66如何显示系统中安装的语言环境66如何确定系统中是否安装了语言环境67更改系统信息(任务图)67更改系统信息68如何手动设置系统的日期和时间68如何设置每日消息69如何更改系统的主机名70如何向系统中添加语言环境71如何从系统中删除语言环境716管理磁盘使用(任务)73管理磁盘使用(任务图)73显示有关文件和磁盘空间的信息74如何显示有关文件和磁盘空间的信息74检查文件大小77如何显示文件大小77如何查找大文件78如何查找超过指定大小限制的文件79目录5检查目录大小80如何显示目录、子目录和文件的大小80如何显示本地UFS文件系统的用户拥有权81查找并删除旧文件或非活动文件82如何列出最新文件82如何查找并删除旧文件或非活动文件83如何清除临时目录84如何查找并删除core文件84如何删除故障转储文件857管理UFS配额(任务)87什么是UFS配额87使用UFS配额87设置UFS配额的软限制和硬限制88磁盘块与文件限制之间的区别88设置UFS配额88设置UFS配额的原则89设置UFS配额(任务图)90如何为UFS配额配置文件系统90如何设置一个用户的UFS配额91如何设置多个用户的UFS配额92如何检查UFS配额一致性92如何启用UFS配额93维护UFS配额(任务图)94检查UFS配额94如何检查超过的UFS配额94如何检查文件系统中的UFS配额95更改和删除UFS配额96如何更改软限制缺省值97如何更改用户的UFS配额98如何禁用用户的UFS配额99如何禁用UFS配额1008调度系统任务(任务)101创建和编辑crontab文件(任务图)101目录系统管理指南:高级管理2010年9月6自动执行系统任务的方法102用于调度重复性作业:crontab102用于调度单个作业:at103调度重复性系统任务(cron)103在crontab文件内104cron守护进程处理调度的方法105crontab文件项的语法105创建和编辑crontab文件106如何创建或编辑crontab文件106如何验证crontab文件是否存在107显示crontab文件108如何显示crontab文件108删除crontab文件109如何删除crontab文件109控制对crontab命令的访问110如何拒绝crontab命令访问110如何将crontab命令访问限制于指定的用户111如何验证受限的crontab命令访问112使用at命令(任务图)113调度单个系统任务(at)113at命令的说明113控制对at命令的访问114如何创建at作业114如何显示at队列115如何验证at作业115如何显示at作业116如何删除at作业116如何拒绝对at命令的访问117如何验证at命令访问已被拒绝1189管理系统记帐(任务)119系统记帐方面的新增功能119OracleSolaris进程记帐和统计信息改进119什么是系统记帐120系统记帐的工作原理120目录7系统记帐组件120系统记帐(任务图)124设置系统记帐124如何设置系统记帐125对用户计费127如何对用户计费127维护记帐信息128修复损坏的文件并更正wtmpx错误128如何修复损坏的wtmpx文件128更正tacct错误128如何修复tacct错误129重新启动runacct脚本129如何重新启动runacct脚本130停止和禁用系统记帐130如何暂时停止系统记帐130如何永久禁用系统记帐13110系统记帐(参考)133runacct脚本133每日记帐报告135每日报告136每日使用情况报告137每日命令摘要138每月命令摘要139上次登录报告139使用acctcom检查pacct文件139系统记帐文件141runacct脚本生成的文件14311管理系统性能(概述)145管理系统性能方面的新增功能145增强的pfiles工具145CPU性能计数器145有关系统性能任务的参考信息146系统性能和系统资源146目录系统管理指南:高级管理2010年9月8进程和系统性能147关于监视系统性能148监视工具14812管理系统进程(任务)151管理系统进程(任务图)151用于管理系统进程的命令152使用ps命令152使用/proc文件系统和命令153使用进程命令管理进程(/proc)154如何列出进程155如何显示有关进程的信息156如何控制进程157终止进程(pkill、kill)158如何终止进程(pkill)158如何终止进程(kill)159调试进程(pargs、preap)159管理进程类信息(任务图)160管理进程类信息161更改进程的调度优先级(priocntl)161如何显示有关进程类的基本信息(priocntl)162如何显示进程的全局优先级162如何指定进程优先级(priocntl)163如何更改分时进程的调度参数(priocntl)163如何更改进程的类(priocntl)164更改分时进程的优先级(nice)165如何更改进程的优先级(nice)165系统进程问题的疑难解答16613监视系统性能(任务)167显示系统性能信息(任务图)167显示虚拟内存统计信息(vmstat)168如何显示虚拟内存统计信息(vmstat)169如何显示系统事件信息(vmstat-s)169如何显示交换统计信息(vmstat-S)170目录9如何显示每台设备的中断次数(vmstat-i)170显示磁盘使用率信息(iostat)171如何显示磁盘使用率信息(iostat)171如何显示扩展磁盘统计信息(iostat-xtc)172显示磁盘空间统计信息(df)173如何显示磁盘空间信息(df-k)173监视系统活动(任务图)174监视系统活动(sar)175如何检查文件访问(sar-a)176如何检查缓冲区活动(sar-b)176如何检查系统调用统计信息(sar-c)178如何检查磁盘活动(sar-d)179如何检查页出和内存(sar-g)180检查内核内存分配181如何检查内核内存分配(sar-k)182如何检查进程间通信(sar-m)183如何检查页入活动(sar-p)184如何检查队列活动(sar-q)185如何检查未使用的内存(sar-r)186如何检查CPU使用率(sar-u)187如何检查系统表状态(sar-v)188如何检查交换活动(sar-w)189如何检查终端活动(sar-y)190如何检查总体系统性能(sar-A)191自动收集系统活动数据(sar)191引导时运行sadc命令191使用sa1脚本定期运行sadc命令192使用sa2Shell脚本生成报告192设置自动数据收集(sar)192如何设置自动数据收集19414软件问题疑难解答(概述)195疑难解答方面的新增内容195CommonAgentContainer问题195x86:SMF引导归档文件服务可能在系统重新引导期间失败196目录系统管理指南:高级管理2010年9月10动态跟踪功能196kmdb取代kadb作为标准的Solaris内核调试程序196有关软件疑难解答任务的参考信息197系统崩溃疑难解答197系统崩溃时应执行的操作197收集疑难解答数据198系统崩溃疑难解答核对表19915管理系统消息201查看系统消息201如何查看系统消息202系统日志轮转203自定义系统消息日志204如何自定义系统消息日志205启用远程控制台消息传送206在运行级转换期间使用辅助控制台消息传递206在交互式登录会话期间使用consadm命令207如何启用辅助(远程)控制台208如何显示辅助控制台的列表208如何在系统重新引导期间启用辅助(远程)控制台208如何禁用辅助(远程)控制台20916管理核心转储文件(任务)211管理核心转储文件(任务图)211管理核心转储文件概述212配置核心转储文件路径212扩展的核心转储文件名212设置核心转储文件名称模式213启用setuid程序以生成核心转储文件214如何显示当前的核心转储配置214如何设置核心转储文件名称模式214如何启用每进程核心转储文件路径215如何启用全局核心转储文件路径215核心转储文件问题疑难解答216检查核心转储文件216目录1117管理系统故障转储信息(任务)217管理系统故障转储信息中的新增内容217快速故障转储工具217管理系统故障转储信息(任务图)218系统崩溃(概述)218交换区域和转储设备的OracleSolarisZFS支持219x86:GRUB引导环境中的系统崩溃219系统故障转储文件219保存故障转储219dumpadm命令220dumpadm命令的工作原理221转储设备和卷管理器221管理系统故障转储信息221如何显示当前的故障转储配置221如何修改故障转储配置222如何检查故障转储223如何从完整的故障转储目录中恢复(可选)224如何禁用或启用故障转储的保存22518各种软件问题的疑难解答(任务)227重新引导失败时应执行的操作227忘记超级用户口令时应执行的操作228x86:SMF引导归档文件服务在系统重新引导期间失败时应执行的操作231系统挂起时应执行的操作232文件系统已满时应执行的操作233由于创建了大文件或目录导致文件系统已满233由于系统内存不足导致TMPFS文件系统变满233复制或恢复后文件ACL丢失时应执行的操作233备份问题疑难解答234备份文件系统后根(/)文件系统变满234确保备份和恢复命令相匹配234检查以确保当前目录正确234交互命令234OracleSolarisOS中CommonAgentContainer问题的疑难解答235端口号冲突235目录系统管理指南:高级管理2010年9月12如何检查端口号235超级用户口令的安全性被破坏236如何为OracleSolarisOS生成安全密钥23619文件访问问题疑难解答(任务)237解决搜索路径的问题(Commandnotfound)237如何诊断和更正搜索路径问题238解决文件访问问题239更改文件和组的拥有权239识别网络访问问题24020解决UFS文件系统不一致问题(任务)241新的fsck错误消息241fsck错误消息242一般fsck错误消息243初始化阶段的fsck消息245阶段1:检查块和大小消息247OracleSolaris10:阶段1B:重新扫描更多DUPS消息251阶段1B:重新扫描更多DUPS消息252阶段2:检查路径名消息252阶段3:检查连通性消息258阶段4:检查引用计数消息260阶段5:检查柱面组消息263Solaris10:阶段5:检查柱面组消息264fsck摘要消息265Solaris10:清除阶段消息26521软件包问题疑难解答(任务)267软件包符号链接问题疑难解答267特定软件包安装错误268一般软件包安装问题268索引269目录1314前言《SystemAdministrationGuide:AdvancedAdministration》是介绍OracleSolaris系统管理信息重要内容的一套文档中的组成部分.
该指南包含基于SPARC和基于x86的系统的信息.
本书假设您已经安装了OracleSolaris操作系统(OS).
同时假设您已经设置了任何计划使用的网络软件.
对于OracleSolaris发行版,系统管理员感兴趣的新增功能已在相应各章的名为"What'sNewin.
.
.
"的各节中加以介绍.
注–此OracleSolaris发行版支持使用SPARC和x86系列处理器体系结构的系统.
支持的系统可以在SolarisOS:HardwareCompatibilityLists(http://www.
sun.
com/bigadmin/hcl)中找到.
本文档列举了在不同类型的平台上进行实现时的所有差别.
在本文档中,这些与x86相关的术语表示以下含义:"x86"泛指64位和32位的x86兼容产品系列.
"x64"专指64位x86兼容CPU.
"32位x86"指出了有关基于x86的系统的特定32位信息.
若想了解本发行版支持哪些系统,请参见SolarisOS:HardwareCompatibilityLists.
目标读者本书适用于负责管理一个或多个运行OracleSolaris10发行版的系统的所有用户.
要使用本书,您应当具备1到2年的UNIX系统管理经验.
参加UNIX系统管理培训课程可能会对您有所帮助.
15系统管理指南系列书籍的结构下面是系统管理指南系列书籍中各本书包含的主题列表.
书名主题《系统管理指南:基本管理》用户帐户和组、服务器和客户机支持、关闭和启动系统、管理服务以及管理软件(软件包和修补程序)《系统管理指南:高级管理》终端和调制解调器、系统资源(磁盘配额、记帐和crontab)、系统进程以及OracleSolaris软件问题疑难解答《系统管理指南:设备和文件系统》可移除介质、磁盘和设备、文件系统以及备份和还原数据《系统管理指南:IP服务》TCP/IP网络管理、IPv4和IPv6地址管理、DHCP(动态主机配置协议)、Ipsec(Internet协议安全)、IKE(Internet密钥交换)、SolarisIP过滤器、移动IP、IP网络多路径(IPnetworkmultipathing,IPMP)以及IPQoS《系统管理指南:名称和目录服务(DNS、NIS和LDAP)》DNS、NIS和LDAP命名和目录服务,包括从NIS转换到LDAP以及从NIS+转换到LDAP《SystemAdministrationGuide:NamingandDirectoryServices(NIS+)》NIS+命名和目录服务《系统管理指南:网络服务》Web高速缓存服务器、与时间相关的服务、网络文件系统(NFS和Autofs)、邮件、SLP(服务定位协议)和PPP(点对点协议)《系统管理指南:打印》打印主题和任务,使用服务、工具、协议和技术来设置及管理打印服务和打印机《系统管理指南:安全性服务》审计、设备管理、文件安全、BART(基本审计和报告工具)、Kerberos服务、PAM(可插拔验证模块)、Solaris加密框架、权限、RBAC(基于角色的存取控制)、SASL(简单身份认证和安全层)和Solaris安全Shell《系统管理指南:OracleSolarisContainers-资源管理和OracleSolarisZones》资源管理主题项目和任务、扩展记帐、资源控制、公平份额调度器(fairsharescheduler,FSS)、使用资源上限设置守护进程(rcapd)的物理内存控制,以及资源池;使用SolarisZones软件分区技术和lx标记区域的虚拟功能《OracleSolarisZFS管理指南》ZFS(Zettabyte文件系统)存储池以及文件系统的创建和管理、快照、克隆、备份、使用访问控制列表(AccessControlList,ACL)保护ZFS文件、在安装区域的OracleSolaris系统中使用ZFS、仿真卷以及疑难解答和数据恢复《OracleSolarisTrustedExtensionsAdministrator'sProcedures》特定于OracleSolaris的TrustedExtensions(高可靠扩展版)功能的系统管理前言系统管理指南:高级管理2010年9月16书名主题《OracleSolarisTrustedExtensionsConfigurationGuide》从Solaris105/08发行版开始,介绍如何规划、启用及初始配置OracleSolaris的TrustedExtensions(高可靠扩展版)功能相关的第三方Web站点引用注–Oracle对本文档中提到的第三方Web站点的可用性不承担任何责任.
对于此类站点或资源中的(或通过它们获得的)任何内容、广告、产品或其他资料,Oracle并不表示认可,也不承担任何责任.
对于因使用或依靠此类站点或资源中的(或通过它们获得的)任何内容、产品或服务而造成的或连带产生的实际或名义损坏或损失,Oracle概不负责,也不承担任何责任.
文档、支持和培训有关其他资源,请参见以下Web站点:文档(http://docs.
sun.
com)支持(http://www.
oracle.
com/us/support/systems/index.
html)Training(http://education.
oracle.
com)–单击左侧导航栏中的Sun链接.
Oracle欢迎您提出意见Oracle欢迎您针对其文档质量和实用性提出意见和建议.
如果您发现任何错误,或有其他任何改进建议,请转至http://docs.
sun.
com,然后单击Feedback(反馈).
请提供文档的标题和文件号码,以及章节和页码(如果有).
如果您需要回复,请告知.

OracleTechnologyNetwork(http://www.
oracle.
com/technetwork/index.
html)(Oracle技术网络)提供了与Oracle软件相关的各种资源:可在DiscussionForums(http://forums.
oracle.
com)(讨论论坛)中讨论技术问题和解决方案.
从Oracle示例(http://www.
oracle.
com/technology/obe/start/index.
html)获取实际操作的逐步教程.
下载样例代码(http://www.
oracle.
com/technology/sample_code/index.
html).
前言17印刷约定下表介绍了本书中的印刷约定.
表P–1印刷约定字体或符号含义示例AaBbCc123命令、文件和目录的名称;计算机屏幕输出编辑.
login文件.
使用ls-a列出所有文件.
machine_name%youhavemail.
AaBbCc123用户键入的内容,与计算机屏幕输出的显示不同machine_name%suPassword:aabbcc123要使用实名或值替换的命令行占位符删除文件的命令为rmfilename.
AaBbCc123保留未译的新词或术语以及要强调的词这些称为Class选项.
注意:有些强调的项目在联机时以粗体显示.
新词术语强调新词或术语以及要强调的词高速缓存是存储在本地的副本.
请勿保存文件.
《书名》书名阅读《用户指南》的第6章.
命令中的shell提示符示例下表显示了OracleSolarisOS中包含的缺省UNIXshell系统提示符和超级用户提示符.
请注意,在命令示例中显示的缺省系统提示符可能会有所不同,具体取决于OracleSolaris发行版.
表P–2shell提示符shell提示符Bashshell、Kornshell和Bourneshell$Bashshell、Kornshell和Bourneshell超级用户#Cshellmachine_name%Cshell超级用户machine_name#前言系统管理指南:高级管理2010年9月18一般约定请注意本书中使用的以下约定.
执行步骤或使用示例时,请确保完全按照括号中所示键入双引号(")、左单引号(')和右单引号(').
在某些键盘上,回车键被标记为Enter.
已假设根路径包括/sbin、/usr/sbin、/usr/bin和/etc目录,因此,对于本书中的步骤,在显示这些目录中的命令时不带绝对路径名.
对于那些使用其他不太常见目录中命令的步骤,在示例中会显示其绝对路径.
前言1920管理终端和调制解调器(概述)本章提供管理终端和调制解调器的概述信息.
以下是本章中概述信息的列表:第21页中的"管理终端和调制解调器方面的新增功能"第22页中的"终端、调制解调器、端口和服务"第24页中的"终端和调制解调器的管理工具"第25页中的"串行端口工具"第25页中的"服务访问工具概述"有关如何使用串行端口工具设置终端和调制解调器的逐步说明,请参见第2章,设置终端和调制解调器(任务).
有关如何使用服务访问工具(ServiceAccessFacility,SAF)设置终端和调制解调器的逐步说明,请参见第3章,使用服务访问工具管理串行端口(任务).
管理终端和调制解调器方面的新增功能本节描述OracleSolaris发行版中管理终端和调制解调器方面的新增或已更改的功能.
有关新增功能的完整列表以及OracleSolaris发行版的说明,请参见《OracleSolaris109/10新增功能》.
SPARC:相关控制台Solaris108/07:相关控制台子系统功能可实现部分内核控制台子系统,以便呈现控制台输出.
相关控制台使用OracleSolaris内核机制而不是可编程只读存储器(ProgrammableRead-OnlyMemory,PROM)接口来呈现控制台输出.
这降低了控制台转译对OpenBootPROM(OBP)的依赖性.
相关控制台使用内核驻留帧缓冲区驱动程序生成控制台输出.
生成的控制台输出比使用OBP转译的效率更高.
相关控制台还避免了SPARC控制台输出过程中使CPU处于空闲状态,并且也改善了用户体验.
1第1章21SPARC:对如何设置控制台的$TERM值的更改Solaris10807:$TERM值现在是动态派生成的,具体取决于控制台所使用的终端仿真器.
在基于x86的系统上,由于始终使用内核的终端仿真器,因此$TERM值为sun-color.
在基于SPARC的系统上,$TERM值如下:sun-color如果系统使用内核的终端仿真器,则$TERM使用此值.
sun如果系统使用PROM的终端仿真器,则$TERM使用此值.
此更改不会影响为串行端口设置终端类型的方式.
如以下示例所示,您仍然可以使用svccfg命令修改$TERM值:#svccfgsvc:>selectsystem/console-loginsvc:/system/console-login>setpropttymon/terminal_type="xterm"svc:/system/console-login>exit系统控制台上由SMF管理的ttymon调用OracleSolaris10:系统控制台上的ttymon调用由SMF管理.
通过将属性添加到svc:/system/console-login:default服务,可以使用svccfg命令指定ttymon命令参数.
请注意,这些属性特定于ttymon,不是通用的SMF属性.
注–您无法再在/etc/inittab文件中定义ttymon调用.
有关如何使用SMF指定ttymon命令参数的逐步说明,请参见第42页中的"如何设置ttymon控制台终端类型".
有关SMF的完整概述,请参见《系统管理指南:基本管理》中的第18章"管理服务(概述)".
有关与SMF关联的逐步过程的信息,请参见《系统管理指南:基本管理》中的第19章"管理服务(任务)".
终端、调制解调器、端口和服务终端和调制解调器提供对系统和网络资源的本地和远程访问.
设置终端和调制解调器访问是系统管理员的重要职责.
本节解释OracleSolaris操作系统中调制解调器和终端管理所涉及的一些概念.
终端、调制解调器、端口和服务系统管理指南:高级管理2010年9月22终端描述系统的位映射图形显示器与字母数字终端并不相同.
字母数字终端连接到串行端口,并仅显示文本.
您不必执行任何特殊步骤以管理图形显示器.
调制解调器描述可以采用以下三种基本配置来设置调制解调器:拨出拨入双向连接到家庭计算机的调制解调器可以设置为提供拨出服务.
通过拨出服务,您可以从自己的家里访问其他计算机.
但是,任何人都无法从外部访问您的计算机.

拨入服务正好相反.
通过拨入服务,用户可以从远程站点访问系统.
但是,它不允许对外进行呼叫.
顾名思义,双向访问既提供拨入功能又提供拨出功能.
端口描述端口是设备与操作系统进行通信的通道.
从硬件的角度来看,端口是终端或调制解调器电缆可以用物理方式连入的"插口".
然而,严格来讲,端口并不是物理容器,而是具有硬件(管脚和连接器)和软件(设备驱动程序)组件的实体.
单个物理容器通常提供多个端口,允许连接两个或多个设备.
常见的端口类型包括:串行端口、并行端口、小型计算机系统接口(SmallComputerSystemsInterface,SCSI)端口和以太网端口.
串行端口使用标准的通信协议,通过一条线路逐位传输一个字节的信息.

按照RS-232-C或RS-423标准设计的设备包括大多数调制解调器、字母数字终端、绘图仪和一些打印机.
可以使用标准电缆,将这些设备互换连接到具有类似设计的计算机的串行端口.
当必须将许多串行端口设备连接到单台计算机时,您可能需要为系统添加适配器板.
适配器板及其驱动程序软件可提供额外串行端口,以连接更多设备.
终端、调制解调器、端口和服务第1章管理终端和调制解调器(概述)23服务描述调制解调器和终端使用串行端口软件来访问计算资源.
必须设置串行端口软件,以便为连接到端口的设备提供特定的"服务".
例如,您可以设置串行端口来为调制解调器提供双向服务.
端口监视器获得对服务的访问的主要机制是通过端口监视器.
端口监视器是持续监视对打印机或文件的登录和访问请求的程序.
当端口监视器检测到请求时,它将设置在操作系统和请求服务的设备之间建立通信所需的任何参数.
然后,端口监视器将控制转移到提供所需服务的其他进程.

下表介绍了OracleSolaris发行版中包括的两种类型的端口监视器.
表1–1端口监视器类型手册页端口监视器说明listen(1M)listen控制对网络服务的访问,例如在Solaris2.
6以前的发行版中处理远程打印请求.
缺省的OracleSolarisOS不再使用此端口监视器类型.
ttymon(1M)ttymon提供对调制解调器和字母数字终端所需的登录服务的访问.
串行端口工具自动设置ttymon端口监视器,以处理来自这些设备的登录请求.
您可能熟悉较早的端口监视器getty.
新增的ttymon端口监视器功能更加强大.
一个ttymon端口监视器可以取代多个getty实例.
在其他方面,这两个程序具有相同的功能.
有关更多信息,请参见getty(1M)手册页.
终端和调制解调器的管理工具下表列出了用于管理终端和调制解调器的工具.
表1–2用于管理终端和调制解调器的工具终端和调制解调器的管理方式工具更多信息最全面服务访问工具(ServiceAccessFacility,SAF)命令第25页中的"服务访问工具概述"终端和调制解调器的管理工具系统管理指南:高级管理2010年9月24表1–2用于管理终端和调制解调器的工具(续)终端和调制解调器的管理方式工具更多信息最快设置SolarisManagementConsole的串行端口工具第2章,设置终端和调制解调器(任务)和SolarisManagementConsole联机帮助串行端口工具串行端口工具使用相应的信息调用pmadm命令,将串行端口软件设置为使用终端和调制解调器.
该工具还提供以下内容:用于终端和调制解调器常用配置的模板多个端口的设置、修改或删除每个端口的快速可视状态服务访问工具概述SAF是用于管理终端、调制解调器和其他网络设备的工具.
特别是,借助SAF可以设置以下各项:ttymon和listen端口监视器(使用sacadm命令)ttymon端口监视器服务(使用pmadm和ttyadm命令)listen端口监视器服务(使用pmadm和nlsadmin命令)tty设备疑难解答打印服务的传入网络请求疑难解答服务访问控制器疑难解答(使用sacadm命令)SAF是一个开放系统解决方案,可控制通过tty设备和局域网(local-areanetwork,LAN)对系统和网络资源的访问.
SAF不是一个程序,而是一个后台进程和管理命令的分层结构.
终端和调制解调器的管理工具第1章管理终端和调制解调器(概述)2526设置终端和调制解调器(任务)本章提供了使用SolarisManagementConsole的串行端口工具设置终端和调制解调器的逐步说明.
有关终端和调制解调器的概述信息,请参见第1章,管理终端和调制解调器(概述).
有关管理系统资源的概述信息,请参见第4章,管理系统资源(概述).
有关使用SolarisManagementConsole的串行端口工具设置终端和调制解调器的关联过程的信息,请参见第27页中的"设置终端和调制解调器(任务图)".
设置终端和调制解调器(任务图)任务说明参考设置终端.
通过使用SolarisManagementConsole的串行端口工具设置终端.
通过从"操作"菜单中选择相应的选项来配置终端.
第30页中的"如何设置终端"设置调制解调器.
通过使用SolarisManagementConsole的串行端口工具设置调制解调器.
通过从"操作"菜单中选择相应的选项来配置调制解调器.
第31页中的"如何设置调制解调器"初始化端口.
要初始化端口,请使用SolarisManagementConsole的串行端口工具.
从"操作"菜单中选择相应的选项.
第32页中的"如何初始化端口"2第2章27使用串行端口工具设置终端和调制解调器(概述)您可以使用SolarisManagementConsole的串行端口工具设置串行端口.
从"串行端口"窗口中选择一个串行端口,然后从"操作"菜单中选择"配置"选项以配置以下各项:终端调制解调器–拨入调制解调器–拨出调制解调器–拨入/拨出仅初始化-无连接通过"配置"选项可以访问用于配置这些服务的模板.
您可以查看每个串行端口的两个级别的详细信息:"基本"和"高级".
在通过选择串行端口再从"操作"菜单中选择"属性"选项配置串行端口后,您可以访问每个串行端口的"高级"级别的详细信息.
在配置串行端口后,可以使用SAF命令禁用或启用该端口.
有关使用SAF命令的信息,请参见第3章,使用服务访问工具管理串行端口(任务).
有关使用串行端口命令行接口的信息,请参见smserialport(1M)手册页.
设置终端下表介绍了使用串行端口工具设置终端时的各菜单项(及其缺省值).
表2–1终端缺省值详细信息项缺省值基本端口说明终端服务状态已启用波特率9600终端类型vi925登录提示ttynlogin:高级载体检测软件选项:在载体上连接不可用选项:双向可用选项:仅初始化不可用超时(秒)从不使用串行端口工具设置终端和调制解调器(概述)系统管理指南:高级管理2010年9月28表2–1终端缺省值(续)详细信息项缺省值端口监视器zsmon服务程序/usr/bin/login设置调制解调器下表介绍了使用串行端口工具设置调制解调器时可用的三个调制解调器模板.

表2–2调制解调器模板调制解调器配置说明仅拨入用户可以拨入调制解调器但无法拨出.
仅拨出用户可以从调制解调器拨出但无法拨入.
拨入和拨出(双向)用户可以拨入调制解调器或从中拨出.
下表介绍了每个模板的缺省值.
表2–3调制解调器模板的缺省值详细信息项调制解调器-仅拨入调制解调器-仅拨出调制解调器-拨入和拨出基本端口名说明调制解调器-仅拨入调制解调器-仅拨出调制解调器-拨入和拨出服务状态已启用已启用已启用波特率960096009600登录提示ttynlogin:ttynlogin:ttynlogin:高级载体检测软件软件软件选项:在载体上连接不可用不可用不可用选项:双向不可用不可用可用选项:仅初始化不可用可用不可用超时(秒)从不从不从不端口监视器zsmonzsmonzsmon服务程序/usr/bin/login/usr/bin/login/usr/bin/login下表介绍了"仅初始化"模板的缺省值.
使用串行端口工具设置终端和调制解调器(概述)第2章设置终端和调制解调器(任务)29表2–4"仅初始化-无连接"的缺省值详细信息项缺省值基本端口名—说明仅初始化-无连接服务状态已启用波特率9600登录提示ttynlogin:高级载体检测软件选项:在载体上连接不可用选项:双向可用选项:仅初始化可用超时(秒)从不端口监视器zsmon服务程序/usr/bin/login如何设置终端、调制解调器和初始化端口(任务)如何设置终端启动SolarisManagementConsole(如果尚未运行).
%/usr/sadm/bin/smc&有关启动SolarisManagementConsole的信息,请参见《系统管理指南:基本管理》中的"启动SolarisManagementConsole".
单击"导航"窗格中的"本计算机"图标.
单击"设备和硬件"—>"串行端口".
将显示"串行端口"菜单.
选择将与终端一起使用的端口.
从"操作"菜单中选择"配置"—>"终端".
将在基本详细信息模式下显示"配置串行端口"窗口.
12345如何设置终端、调制解调器和初始化端口(任务)系统管理指南:高级管理2010年9月30有关"终端"菜单项的说明,请参见表2–1.
单击"确定".
要配置高级项,请选择配置为终端的端口.
从"操作"菜单中选择"属性".
更改模板项的值(如果需要).
单击"确定"配置端口.
验证是否已添加了终端服务.
$pmadm-l-sttyn如何设置调制解调器启动SolarisManagementConsole(如果尚未运行).
%/usr/sadm/bin/smc&有关启动SolarisManagementConsole的信息,请参见《系统管理指南:基本管理》中的"启动SolarisManagementConsole".
单击"导航"窗格中的"本计算机"图标.
单击"设备和硬件"—>"串行端口".
将显示"串行端口"菜单.
选择将与调制解调器一起使用的端口.
从"操作"菜单中选择以下"配置"选项之一.
a.
"配置"—>"调制解调器(拨入)"b.
"配置"—>"调制解调器(拨出)"c.
"配置"—>"调制解调器(拨入/拨出)"将在基本详细信息模式下显示"配置串行端口"窗口.
有关"调制解调器"菜单项的说明,请参见表2–3.
单击"确定".
67891011123456如何设置终端、调制解调器和初始化端口(任务)第2章设置终端和调制解调器(任务)31要配置高级项,请选择配置为调制解调器的端口.
从"操作"菜单中选择"属性".
更改模板项的值(如果需要).
单击"确定"配置端口.
验证是否已配置了调制解调器服务.
$pmadm-l-sttyn如何初始化端口启动SolarisManagementConsole(如果尚未运行).
%/usr/sadm/bin/smc&有关启动SolarisManagementConsole的信息,请参见《系统管理指南:基本管理》中的"启动SolarisManagementConsole".
单击"导航"窗格中的"本计算机"图标.
单击"设备和硬件"—>"串行端口".
将显示"串行端口"菜单.
选择要初始化的端口.
选择"配置"—>"仅初始化-无连接".
将在基本详细信息模式下显示"串行端口"窗口.
有关"仅初始化"菜单项的说明,请参见表2–4.
单击"确定".
要配置高级项,请选择配置为仅初始化的端口.
然后,从"操作"菜单中选择"属性".

更改模板项的值(如果需要).
单击"确定"配置端口.
验证是否已初始化调制解调器服务.
$pmadm-l-sttyn789101112345678910如何设置终端、调制解调器和初始化端口(任务)系统管理指南:高级管理2010年9月32解决终端和调制解调器问题如果在您添加终端或调制解调器并设置适当的服务后,用户无法通过串行端口线路登录,请考虑以下可能的失败原因:与用户进行核对.
终端和调制解调器使用中的故障通常由无法登录或拨入的用户报告.
因此,请通过检查桌面上是否存在问题来开始排除故障.
登录失败的一些常见原因包括:登录ID或口令不正确终端正在等待X-ON流控制键(Ctrl-Q)串行电缆连接不牢固或者已拔下终端配置不正确终端已关闭或者由于其他原因未通电检查终端.
通过检查终端或调制解调器的配置继续排除故障.
确定用于与终端或调制解调器进行通信的正确ttylabel.
验证终端或调制解调器设置是否与ttylabel设置匹配.
检查终端服务器.
如果终端没有问题,请继续在终端或调制解调器服务器上搜索问题的根源.
使用pmadm命令验证是否已将一个端口监视器配置为向终端或调制解调器提供服务,以及该端口监视器是否具有与之关联的正确ttylabel.
例如:$pmadm-l-tttymon检查/etc/ttydefs文件,并根据终端配置仔细检查标签定义.
使用sacadm命令检查端口监视器的状态.
使用pmadm检查与终端所用的端口关联的服务.
检查串行连接.
如果服务访问控制器正在启动TTY端口监视器且以下条件为真:pmadm命令报告已启用终端端口的服务.
终端的配置与端口监视器的配置匹配.
然后,通过检查串行连接继续搜索问题.
串行连接由串行端口、电缆和终端组成.
通过将一个部件与已知可靠的其他两个部件一起使用,对其中的每个部件进行测试.
测试以下所有部件:串行端口调制解调器电缆连接器解决终端和调制解调器问题第2章设置终端和调制解调器(任务)33如果串行端口用作控制台,请不要使用串行端口工具修改串行端口设置.
从OracleSolaris10开始,控制台上的ttymon调用由SMF进行管理.
有关如何更改控制台终端类型的逐步说明,请参见第42页中的"如何设置ttymon控制台终端类型".
有关ttymon和SMF的更多信息,请参见第21页中的"管理终端和调制解调器方面的新增功能".
解决终端和调制解调器问题系统管理指南:高级管理2010年9月34使用服务访问工具管理串行端口(任务)本章描述如何使用服务访问工具(ServiceAccessFacility,SAF)管理串行端口服务.
此外,本章还包括有关如何使用服务管理工具(ServiceManagementFacility,SMF)执行控制台管理的信息.
注–SAF和SMF是OracleSolarisOS中的两种不同工具.
从OracleSolaris10开始,系统控制台上的ttymon调用由SMF进行管理.
SAF工具仍用于管理终端、调制解调器和其他网络设备.
以下是本章中概述信息的列表.
第36页中的"使用服务访问工具"第37页中的"整体SAF管理(sacadm)"第38页中的"端口监视器服务管理(pmadm)"第39页中的"TTY监视器和网络侦听器端口监视器"有关与管理串行端口关联的逐步过程的信息,请参见以下内容:第36页中的"管理串行端口(任务图)"第46页中的"管理ttymon服务(任务图)"有关SAF的参考信息,请参见第50页中的"服务访问工具管理(参考)".
3第3章35管理串行端口(任务图)任务说明参考执行控制台管理.
您可能需要执行以下控制台管理任务:设置ttymon控制台终端类型.
从OracleSolaris10开始,您必须使用svccfg命令指定ttymon控制台终端类型.
设置ttymon控制台终端波特率速度.
第42页中的"如何设置ttymon控制台终端类型"第42页中的"如何在ttymon控制台终端上设置波特率速度"添加ttymon端口监视器.
使用sacadm命令添加ttymon端口监视器.
第43页中的"如何添加ttymon端口监视器"查看ttymon端口监视器状态.
使用sacadm命令查看ttymon端口监视器状态.
第44页中的"如何查看ttymon端口监视器状态"停止ttymon端口监视器.
使用sacadm命令停止ttymon端口监视器.
第45页中的"如何停止ttymon端口监视器"启动ttymon端口监视器.
使用sacadm命令启动ttymon端口监视器.
第45页中的"如何启动ttymon端口监视器"禁用ttymon端口监视器.
使用sacadm命令禁用ttymon端口监视器.
第45页中的"如何禁用ttymon端口监视器"启用ttymon端口监视器.
使用sacadm命令启用ttymon端口监视器.
第46页中的"如何启用ttymon端口监视器"删除ttymon端口监视器.
使用sacadm命令删除ttymon端口监视器.
第46页中的"如何删除ttymon端口监视器"使用服务访问工具您可以使用SolarisManagementConsole的串行端口工具或SAF命令设置终端和调制解调器.
SAF是一种用于管理终端、调制解调器和其他网络设备的工具.
顶层SAF程序是服务访问控制器(ServiceAccessController,SAC).
SAC通过sacadm命令控制您管理的端口监视器.
每个端口监视器可以管理一个或多个端口.
可以通过pmadm命令管理与端口关联的服务.
尽管通过SAC提供的服务可能随网络的不同而不同,但是SAC及其管理命令sacadm和pmadm与网络无关.
管理串行端口(任务图)系统管理指南:高级管理2010年9月36下表介绍了SAF控制分层结构.
sacadm命令用于管理SAC(它控制ttymon和listen端口监视器).
ttymon和listen的服务又是由pmadm命令控制的.
一个ttymon实例可以为多个端口提供服务.
一个listen实例可以在一个网络接口上提供多个服务.
表3–1SAF控制分层结构功能程序说明整体管理sacadm用于添加和删除端口监视器的命令服务访问控制器sacSAF的主程序端口监视器ttymonlisten监视串行端口登录请求监视网络服务请求端口监视器服务管理员pmadm用于控制端口监视器服务的命令服务登录、远程过程调用SAF提供对其访问的服务控制台管理控制台登录控制台服务由SMF服务svc:/system/console-login:default进行管理.
此服务调用ttymon端口监视器.
不要使用pmadm或sacadm命令管理控制台.
有关更多信息,请参见第40页中的"ttymon和控制台端口"、第42页中的"如何设置ttymon控制台终端类型"和第42页中的"如何在ttymon控制台终端上设置波特率速度".
整体SAF管理(sacadm)sacadm命令是SAF的顶层.
sacadm命令主要用于添加和删除端口监视器,如ttymon和listen.
sacadm的其他功能包括列出端口监视器的当前状态和管理端口监视器配置脚本.
服务访问控制器(SAC程序)服务访问控制器(ServiceAccessController,SAC)程序可监视所有端口监视器.
在进入多用户模式时,系统自动启动SAC.
SAC程序在被调用时首先查找并解释每个系统的配置脚本.
您可以使用配置脚本定制SAC程序环境.
缺省情况下,此脚本为空.
对SAC环境进行的修改由SAC的所有"子进程"继承.
此继承的环境可能会被子进程修改.
整体SAF管理(sacadm)第3章使用服务访问工具管理串行端口(任务)37SAC程序在解释了每系统配置脚本后,将读取其管理文件并启动指定的端口监视器.
对于每个端口监视器,SAC程序运行它自己的副本,从而派生一个子进程.
然后,每个子进程解释它的每端口监视器配置脚本(如果存在这样的脚本).

对在每端口监视器配置脚本中指定的环境进行的任何修改都会影响端口监视器,并将由其所有子进程继承.
最后,子进程通过使用在SAC程序管理文件中找到的命令运行端口监视器程序.
SAC初始化进程以下步骤概括说明了首次启动SAC时发生的情况:1.
SAC程序由SMF服务svc:/system/sac:default启动.
2.
SAC程序读取每系统配置脚本/etc/saf/_sysconfig.
3.
SAC程序读取SAC管理文件/etc/saf/_sactab.
4.
SAC程序为它启动的每个端口监视器派生一个子进程.
5.
每个端口监视器读取每端口监视器配置脚本/etc/saf/pmtag/_config.
端口监视器服务管理(pmadm)通过pmadm命令可以管理端口监视器的服务.
特别是,使用pmadm命令可以添加或删除服务以及启用或禁用服务.
您还可以安装或替换每服务配置脚本,或列显有关服务的信息.
服务的每个实例必须由端口监视器和端口唯一标识.
使用pmadm命令管理服务时,可以用pmtag参数指定特定的端口监视器,用svctag参数指定特定的端口.
对于每种端口监视器类型,SAF需要一个专用命令来设置端口监视器特定的配置数据的格式.
此数据由pmadm命令使用.
对于ttymon和listen类型的端口监视器,这些专用命令分别是ttyadm和nlsadmin.
ttymon端口监视器只要您尝试通过使用直接连接的调制解调器或字母数字终端进行登录,ttymon便会开始执行.
首先,SMF启动SAC进程.
然后SAC自动启动在其管理文件/etc/saf/_sactab中指定的端口监视器.
启动ttymon端口监视器后,该端口监视器对服务请求的串行端口线路进行监视.
当有人尝试通过使用字母数字终端或调制解调器进行登录时,串行端口驱动程序会将该活动传递给操作系统.
ttymon端口监视器记录串行端口活动,并尝试建立通信链路.
ttymon端口监视器确定与设备进行通信所需的数据传输率、线路规程和握手协议.
端口监视器服务管理(pmadm)系统管理指南:高级管理2010年9月38确定用于与调制解调器或终端通信的适当参数后,ttymon端口监视器将这些参数传递给登录程序并将控制权转移给它.
端口初始化进程当SAC调用ttymon端口监视器的实例时,ttymon开始监视其端口.
对于每个端口,ttymon端口监视器首先初始化线路规程(如果指定)、速度和终端设置.
用于初始化的值是从/etc/ttydefs文件中的相应项提取的.
然后ttymon端口监视器写入提示符,并等待用户输入.
如果用户通过按Break键指示速度不合适,则ttymon端口监视器将尝试下一个速度,并再次写入提示符.
如果为端口启用了autobaud,则ttymon端口监视器将尝试自动确定端口上的波特率.
用户必须按回车键,ttymon端口监视器才能识别波特率并列显提示符.
在收到有效输入时,ttymon端口监视器会执行以下任务:解释端口的每服务配置文件创建/etc/utmpx项(如果需要)建立服务环境调用与端口关联的服务服务终止后,ttymon端口监视器将清除/etc/utmpx项(如果该项存在),并将端口恢复到其初始状态.
双向服务如果将端口配置为用于双向服务,则ttymon端口监视器会执行以下操作:允许用户连接到服务.
如果端口是空闲的,则允许uucico、cu或ct命令使用该端口进行拨出.
在列显提示符之前等待读取字符.
如果设置了"在载体上连接"标志,则在请求连接时,调用端口的关联服务而不发送提示消息.
TTY监视器和网络侦听器端口监视器虽然SAF提供了用于管理任何将来或第三方端口监视器的通用方法,但是在OracleSolaris发行版中仅实现了两个端口监视器:ttymon和listen.
TTY监视器和网络侦听器端口监视器第3章使用服务访问工具管理串行端口(任务)39TTY端口监视器(ttymon)ttymon端口监视器基于STREAMS,可执行以下操作:监视端口设置终端模式、波特率和线路规程调用登录进程ttymon端口监视器为用户提供的服务与getty端口监视器在SunOS4.
1软件的早期版本中提供的服务相同.
ttymon端口监视器在SAC程序下运行,并且是使用sacadm命令配置的.
ttymon的每个实例可以监视多个端口.
这些端口在端口监视器的管理文件中指定.
管理文件是通过使用pmadm和ttyadm命令配置的.
ttymon和控制台端口控制台服务既不由服务访问控制器(ServiceAccessController,SAC)管理,也不由任何显式的ttymon管理文件管理.
ttymon调用由SMF管理.
因此,无法再通过向/etc/inittab文件中添加项来调用ttymon.
类型为application、名称为ttymon的属性组已添加到SMF服务svc:/system/console-login:default中.
此属性组内的属性由方法脚本/lib/svc/method/console-login使用.
此脚本将属性值用作ttymon调用的参数.
通常,如果这些值为空,或者如果没有为任一属性定义值,则不会将值用于ttymon.
但是,如果ttymon设备值为空或者未设置,则/dev/console将用作缺省值以便ttymon可以运行.
以下属性在SMF服务svc:/system/console-login:default下可用:ttymon/nohangup指定nohangup属性.
如果设置为true,则在设置缺省或指定的速度之前,不要通过将线路速度设置为零来强制线路挂起.
ttymon/prompt指定控制台端口的提示字符串.
ttymon/terminal_type指定控制台的缺省终端类型.
ttymon/device指定控制台设备.
ttymon/label指定/etc/ttydefs线路中的TTY标签.
特定于ttymon的管理命令(ttyadm)ttymon管理文件由sacadm和pmadm命令以及ttyadm命令更新.
ttyadm命令设置特定于ttymon的信息的格式并将其写入标准输出,从而提供一种向sacadm和pmadm命令呈现已设置格式的、特定于ttymon的数据的方法.
TTY监视器和网络侦听器端口监视器系统管理指南:高级管理2010年9月40因此,ttyadm命令不会直接管理ttymon.
ttyadm命令是对通用管理命令sacadm和pmadm的补充.
有关更多信息,请参见ttyadm(1M)手册页.
网络侦听器服务(listen)listen端口监视器在SAC下运行,可执行以下操作:监视网络中的服务请求在请求到达时接受请求作为对那些服务请求的响应,调用服务器listen端口监视器是通过使用sacadm命令配置的.
listen的每个实例可以提供多个服务.
这些服务在端口监视器的管理文件中指定.
此管理文件是通过使用pmadm和nlsadmin命令配置的.
网络侦听器进程可以用于符合传输层接口(TransportLayerInterface,TLI)规范的任何面向连接的传输提供者.
在OracleSolarisOS中,listen端口监视器可以提供inetd服务未提供的其他网络服务.
特殊listen专用管理命令(nlsadmin)listen端口监视器的管理文件由sacadm和pmadm命令以及nlsadmin命令更新.
nlsadmin命令设置特定于listen的信息的格式并将其写入标准输出,从而提供一种向sacadm和pmadm命令呈现已设置格式的、特定于listen的数据的方法.
因此,nlsadmin命令不会直接管理listen.
该命令是对通用管理命令sacadm和pmadm的补充.
单独配置的每个网络可以具有至少一个与之关联的网络侦听器进程实例.
nlsadmin命令控制listen端口监视器的操作状态.
nlsadmin命令可以为给定的网络建立listen端口监视器,配置该端口监视器的特定属性以及对监视器执行start和kill操作.
nlsadmin命令还可以对计算机上的listen端口监视器进行报告.
有关更多信息,请参见nlsadmin(1M)手册页.
TTY监视器和网络侦听器端口监视器第3章使用服务访问工具管理串行端口(任务)41管理ttymon端口监视器ttymon的控制台管理现在由SMF管理.
可使用svccfg命令设置ttymon系统控制台属性.
仍可使用SAF命令sacadm添加、列出、中止、启动、启用、禁用和删除ttymon端口监视器.
如何设置ttymon控制台终端类型此过程说明如何使用svccfg命令更改控制台终端类型.
成为超级用户或同等角色.
角色包含授权和具有一定权限的命令.
有关角色的更多信息,请参见《系统管理指南:安全性服务》中的"配置RBAC(任务列表)".
运行svccfg命令以设置要更改的服务实例的属性.
#svccfg-sconsole-loginsetpropttymon/terminal_type="xterm"其中,"xterm"是可能要使用的终端类型.
(可选)重新启动服务实例.
#svcadmrestartsvc:/system/console-login:default注意–如果您选择立即重新启动服务实例,则将从控制台注销.
如果您不立即重新启动服务实例,则下次在控制台上显示登录提示时将应用属性更改.
如何在ttymon控制台终端上设置波特率速度此过程说明如何在ttymon控制台终端上设置波特率速度.
基于x86的系统上支持的控制台速度取决于特定的平台.
在基于SPARC的系统上支持以下控制台速度:9600bps19200bps38400bps成为超级用户或同等角色.
角色包含授权和具有一定权限的命令.
有关角色的更多信息,请参见《系统管理指南:安全性服务》中的"配置RBAC(任务列表)".
1231管理ttymon端口监视器系统管理指南:高级管理2010年9月42使用eeprom命令设置适合您的系统类型的波特率速度.
#eepromttya-mode=baud-rate,8,n,1,-例如,要将基于x86的系统控制台上的波特率更改为38400,请键入:#eepromttya-mode=38400,8,n,1,-按如下所示在/etc/ttydefs文件中更改控制台线路:consolebaud-ratehupclopostonlcr:baud-rate::console进一步对您的系统类型进行以下更改.
请注意,这些更改与平台相关.
在基于SPARC的系统上:在/kernel/drv/options.
conf文件中更改波特率速度.
使用以下命令将波特率更改为9600:#9600:bd:ttymodes="2502:1805:bd:8a3b:3:1c:7f:15:4:0:0:0:11:13:1a:19:12:f:17:16";使用以下命令将波特率速度更改为19200.
#19200:be:ttymodes="2502:1805:be:8a3b:3:1c:7f:15:4:0:0:0:11:13:1a:19:12:f:17:16";使用以下命令将波特率速度更改为38400:#38400:bf:ttymodes="2502:1805:bf:8a3b:3:1c:7f:15:4:0:0:0:11:13:1a:19:12:f:17:16";在基于x86的系统上:如果启用了BIOS串行重定向,请更改控制台速度.
用来更改控制台速度的方法与平台有关.
如何添加ttymon端口监视器成为超级用户或同等角色.
角色包含授权和具有一定权限的命令.
有关角色的更多信息,请参见《系统管理指南:安全性服务》中的"配置RBAC(任务列表)".
添加ttymon端口监视器.
#sacadm-a-pmbmon-tttymon-c/usr/lib/saf/ttymon-v'ttyadm-V'-y"TTYPortsa&b"-a指定添加端口监视器的选项.
-p将pmtagmbmon指定为端口监视器标记.
-t将端口监视器type指定为ttymon.
-c定义用于启动端口监视器的command字符串.
23412管理ttymon端口监视器第3章使用服务访问工具管理串行端口(任务)43-v指定端口监视器的version号.
-y定义描述此端口监视器实例的注释.
如何查看ttymon端口监视器状态成为超级用户或同等角色.
角色包含授权和具有一定权限的命令.
有关角色的更多信息,请参见《系统管理指南:安全性服务》中的"配置RBAC(任务列表)".
查看ttymon端口监视器的状态.
#sacadm-l-pmbmon-l指定list端口监视器的状态标志.
-p将pmtagmbmon指定为端口监视器标记.
查看ttymon端口监视器状态此示例说明如何查看名为mbmon的端口监视器.
#sacadm-l-pmbmonPMTAGPMTYPEFLGSRCNTSTATUSCOMMANDmbmonttymon-0STARTING/usr/lib/saf/ttymon#TTYPortsa&bPMTAG标识端口监视器名称mbmon.
PMTYPE标识端口监视器类型ttymon.
FLGS指示是否设置了以下标志:d不启用新的端口监视器.
x不启动新的端口监视器.
破折号(-)未设置任何标志.
RCNT指示返回计数值.
返回计数为0指示如果端口监视器出现故障则不重新启动.
STATUS指示端口监视器的当前状态.
COMMAND标识用于启动端口监视器的命令.
#TTYPortsa&b标识用于描述端口监视器的任何注释.
12示例3–1管理ttymon端口监视器系统管理指南:高级管理2010年9月44如何停止ttymon端口监视器成为超级用户或同等角色.
角色包含授权和具有一定权限的命令.
有关角色的更多信息,请参见《系统管理指南:安全性服务》中的"配置RBAC(任务列表)".
停止ttymon端口监视器.
#sacadm-k-pmbmon-k指定kill端口监视器的状态标志.
-p将pmtagmbmon指定为端口监视器标记.
如何启动ttymon端口监视器成为超级用户或同等角色.
角色包含授权和具有一定权限的命令.
有关角色的更多信息,请参见《系统管理指南:安全性服务》中的"配置RBAC(任务列表)".
启动已中止的ttymon端口监视器.
#sacadm-s-pmbmon-s指定start端口监视器的状态标志.
-p将pmtagmbmon指定为端口监视器标记.
如何禁用ttymon端口监视器禁用端口监视器可防止新服务启动,且不影响现有的服务.
成为超级用户或同等角色.
角色包含授权和具有一定权限的命令.
有关角色的更多信息,请参见《系统管理指南:安全性服务》中的"配置RBAC(任务列表)".
禁用ttymon端口监视器.
#sacadm-d-pmbmon-d指定disable端口监视器的状态标志.
-p将pmtagmbmon指定为端口监视器标记.
121212管理ttymon端口监视器第3章使用服务访问工具管理串行端口(任务)45如何启用ttymon端口监视器通过启用ttymon端口监视器,可以使其为新请求提供服务.
成为超级用户或同等角色.
角色包含授权和具有一定权限的命令.
有关角色的更多信息,请参见《系统管理指南:安全性服务》中的"配置RBAC(任务列表)".
启用ttymon端口监视器.
#sacadm-e-pmbmon-e指定enable端口监视器的状态标志.
-p将pmtagmbmon指定为端口监视器标记.
如何删除ttymon端口监视器删除端口监视器将删除与之关联的所有配置文件.
注–端口监视器配置文件不能通过使用sacadm命令进行更新或更改.
要重新配置端口监视器,请先将其删除,然后添加一个新端口监视器.
成为超级用户或同等角色.
角色包含授权和具有一定权限的命令.
有关角色的更多信息,请参见《系统管理指南:安全性服务》中的"配置RBAC(任务列表)".
删除ttymon端口监视器.
#sacadm-r-pmbmon-r指定remove端口监视器的状态标志.
-p将pmtagmbmon指定为端口监视器标记.
管理ttymon服务(任务图)任务说明参考添加ttymon服务.
使用pmadm命令添加服务.
第47页中的"如何添加服务"查看TTY端口服务的状态.
使用pmadm命令查看TTY端口的状态.
第48页中的"如何查看TTY端口服务的状态"1212管理ttymon服务(任务图)系统管理指南:高级管理2010年9月46任务说明参考启用端口监视器服务.
使用带有-e选项的pmadm命令启用端口监视器.
第50页中的"如何启用端口监视器服务"禁用端口监视器服务.
使用带有-d选项的pmadm命令禁用端口监视器.
第50页中的"如何禁用端口监视器服务"管理ttymon服务使用pmadm命令可以添加服务、列出与端口监视器关联的一个或多个端口的服务以及启用或禁用服务.
如何添加服务成为超级用户或同等角色.
角色包含授权和具有一定权限的命令.
有关角色的更多信息,请参见《系统管理指南:安全性服务》中的"配置RBAC(任务列表)".
将标准终端服务添加到mbmon端口监视器.
#pmadm-a-pmbmon-sa-iroot-v'ttyadm-V'-m"'ttyadm-i'Terminaldisabled'-lcontty-mldterm,ttcompat-Sy-d/dev/term/a-s/usr/bin/login'"注–在此示例中,输入内容自动换到下一行.
请勿使用回车键或换行.
-a指定add端口监视器状态标志.
-p将pmtagmbmon指定为端口监视器标记.
-s将svctaga指定为端口监视器service标记.
-i指定在服务运行时要指定给svctag的identity.
-v指定端口监视器的version号.
-m指定由ttyadm设置其格式的特定于ttymon的配置数据.
前面的pmadm命令包含嵌入的ttyadm命令.
此嵌入命令中的选项如下所示:-b指定bidirectional端口标志.
-i指定inactive(禁用)响应消息.
-l指定要使用/etc/ttydefs文件中的哪个TTYlabel.
-m指定在调用此服务之前要推送的STREAMSmodules.
12管理ttymon服务第3章使用服务访问工具管理串行端口(任务)47-d指定要用于TTY端口的device的全路径名.
-s指定收到连接请求时要调用的service的全路径名.
如果需要参数,请将命令及其参数用引号(")括起来.
如何查看TTY端口服务的状态使用此过程中所示的pmadm命令可以列出某个TTY端口的状态,或与端口监视器关联的所有端口的状态.
成为超级用户或同等角色.
角色包含授权和具有一定权限的命令.
有关角色的更多信息,请参见《系统管理指南:安全性服务》中的"配置RBAC(任务列表)".
列出端口监视器的一项服务.
#pmadm-l-pmbmon-sa-l列出有关系统的服务信息.
-p将pmtagmbmon指定为端口监视器标记.
-s将svctaga指定为端口监视器service标记.
查看TTY端口监视器服务的状态此示例列出了端口监视器的所有服务.
#pmadm-l-pmbmonPMTAGPMTYPESVCTAGFLAGSIDmbmonttymona-root/dev/term/a--/usr/bin/login-conttyldterm,ttcompatlogin:Terminaldisabledtvi925y#PMTAG标识通过使用pmadm-p命令设置的端口监视器名称mbmon.
PMTYPE标识端口监视器类型ttymon.
SVCTAG指示通过使用pmadm-s命令设置的服务标记值.
FLAGS标识是否通过使用pmadm-f命令设置了以下标志.
x-不启用服务.
u-为服务创建utmpx项.
短划线(-)-未设置任何标志.
ID指示启动服务时为其指定的标识.
该值是通过使用pmadm-i命令设置的.
信息12示例3–2管理ttymon服务系统管理指南:高级管理2010年9月48/dev/term/a指示通过使用ttyadm-d命令设置的TTY端口路径名.
-指示是否通过使用ttyadm-c-b-h-I-r命令设置了以下标志.
c-为端口设置"在载体上连接"标志.
b-将端口设置为双向,从而允许传入和传出通信.
h-禁止在收到外来调用之后立即自动挂起.
I-初始化端口.
r-强制ttymon在列显login:消息之前一直等待,直到它收到来自端口的字符.
短划线(-)-未设置任何标志.
-指示通过使用ttyadm-rcount选项设置的值.
此选项确定在收到来自端口的数据之后ttymon何时显示提示符.
如果count为0,则ttymon将一直等待,直到它收到某个字符.
如果count大于0,则ttymon将一直等待,直到收到count个换行符.
在此示例中未设置值.
/usr/bin/login标识在收到连接时要调用的服务的全路径名.
该值是通过使用ttyadm-s命令设置的.
-标识ttyadm-t命令的超时值.
此选项指定:如果端口成功打开,且在timeout秒内未收到输入数据,则ttymon应该关闭该端口.
在此示例中没有超时值.
contty标识/etc/ttydefs文件中的TTY标签.
该值是通过使用ttyadm-l命令设置的.
ldterm,ttcompat标识要推送的STREAMS模块.
这些模块是通过使用ttyadmin-m命令设置的.
login:Terminaldisabled标识在禁用端口时要显示的无效消息.
此消息是通过使用ttyadm-i命令设置的.
tvi925标识终端类型(如果使用ttyadm-T命令进行了设置).
在此示例中,终端类型为tvi925.
y标识通过使用ttyadm-S命令设置的软件载体值.
n关闭软件载体.
y打开软件载体.
在此示例中打开了软件载体.
#标识使用pmadm-y命令指定的任何注释.
在此示例中没有注释.
管理ttymon服务第3章使用服务访问工具管理串行端口(任务)49如何启用端口监视器服务成为超级用户或同等角色.
角色包含授权和具有一定权限的命令.
有关角色的更多信息,请参见《系统管理指南:安全性服务》中的"配置RBAC(任务列表)".
启用已禁用的端口监视器服务.
#pmadm-e-pmbmon-sa-e指定enable标志.
-p将pmtagmbmon指定为端口监视器标记.
-s将svctaga指定为端口监视器service标记.
如何禁用端口监视器服务成为超级用户或同等角色.
角色包含授权和具有一定权限的命令.
有关角色的更多信息,请参见《系统管理指南:安全性服务》中的"配置RBAC(任务列表)".
禁用端口监视器服务.
#pmadm-d-pmbmon-sa-d指定disable标志.
-p将pmtagmbmon指定为端口监视器标记.
-s将svctaga指定为端口监视器service标记.
服务访问工具管理(参考)本节包括服务访问工具管理的参考信息.
与SAF相关联的文件SAF使用可通过sacadm和pmadm命令修改的配置文件.
您无需手动编辑配置文件.
文件名说明/etc/saf/_sysconfig每系统配置脚本1212服务访问工具管理(参考)系统管理指南:高级管理2010年9月50文件名说明/etc/saf/_sactabSAC的管理文件,该文件包含SAC控制的端口监视器的配置数据.
/etc/saf/pmtag端口监视器pmtag的起始目录/etc/saf/pmtag/_config端口监视器pmtag的每端口监视器配置脚本(如果存在)/etc/saf/pmtag/_pmtab端口监视器pmtag的管理文件,该文件包含pmtag所提供服务的特定于端口监视器的配置数据/etc/saf/pmtag/svctag服务svctag的每服务配置脚本/var/saf/logSAC的日志文件/var/saf/pmtagpmtag创建的文件(例如日志文件)的目录/etc/saf/_sactab文件/etc/saf/_sactab文件中的信息如下所示:#VERSION=1zsmon:ttymon::0:/usr/lib/saf/ttymon##VERSION=1指示服务访问工具的版本号.
zsmon端口监视器的名称.
ttymon端口监视器的类型.
::指示是否设置了以下两个标志:d不启用端口监视器.
x不启动端口监视器.
在此示例中未设置标志.
0指示返回代码值.
返回计数为0指示如果端口监视器出现故障则不重新启动.
/usr/lib/saf/ttymon指示端口监视器路径名.
/etc/saf/pmtab/_pmtab文件/etc/saf/pmtab/_pmtab文件(如/etc/saf/zsmon/_pmtab)与如下所示内容类似:服务访问工具管理(参考)第3章使用服务访问工具管理串行端口(任务)51#VERSION=1ttya:u:root:reserved:reserved:reserved:/dev/term/a:I::/usr/bin/login::9600:ldterm,ttcompat:ttyalogin\:::tvi925:y:##VERSION=1指示服务访问工具的版本号.
ttya指示服务标记.
x,u标识是否设置了以下标志:x不启用服务.
u为服务创建utmpx项.
root指示为服务标记指定的标识.
reserved保留此字段供将来使用.
reserved保留此字段供将来使用.
reserved保留此字段供将来使用.
/dev/term/a指示TTY端口路径名.
/usr/bin/login标识在收到连接时要调用的服务的全路径名.
:c,b,h,I,r:指示是否设置了以下标志:c为端口设置"在载体上连接"标志.
b将端口设置为双向,从而允许传入和传出通信.
h禁止在收到外来调用之后立即自动挂起.
I初始化端口.
r强制ttymon在ttymon列显login:消息之前一直等待,直到它收到来自端口的字符.
9600标识在/etc/ttydefs文件中定义的TTY标签.
ldterm,ttcompat标识要推送的STREAMS模块.
ttyalogin\:标识要显示的提示符.
:y/n:指示响应或不响应.
message标识任何无效(禁用)的响应消息.
tvi925标识终端类型.
y指示是否设置了软件载体(y/n).
服务访问工具管理(参考)系统管理指南:高级管理2010年9月52服务状态sacadm命令可控制服务的状态.
以下列表介绍了服务的可能状态.
Enabled缺省状态.
在添加端口监视器时,服务将运行.
Disabled缺省状态.
在删除端口监视器时,服务将停止.
要确定任何特定服务的状态,请使用以下命令:#pmadm-l-pportmon-name-ssvctag端口监视器状态sacadm命令可控制ttymon和listen端口监视器的状态.
下表介绍了可能的端口监视器状态.
状态说明Started缺省状态-在添加端口监视器时,它将自动启动.
Enabled缺省状态-在添加端口监视器时,它将自动准备接受服务请求.
Stopped缺省状态-在删除端口监视器时,它将自动停止.
Disabled缺省状态-在删除端口监视器时,它将自动继续使用现有服务并拒绝添加新服务.
Starting中间状态-端口监视器处于启动过程中.
Stopping中间状态-端口监视器已手动终止,但是它尚未完成其关闭过程.
端口监视器正在停止.
Notrunning非活动状态-端口监视器已中止.
以前监视的所有端口都是无法访问的.
外部用户无法断定端口处于disabled还是notrunning状态.
Failed非活动状态-端口监视器无法启动和保持运行.
要确定任何特定端口监视器的状态,请使用以下命令:#sacadm-l-pportmon-name端口状态根据控制端口的端口监视器的状态,可以启用或禁用端口.
服务访问工具管理(参考)第3章使用服务访问工具管理串行端口(任务)53状态说明串行(ttymon)端口状态Enabledttymon端口监视器向端口发送提示消息,并为其提供登录服务.
Disabled如果ttymon已中止或禁用,则为所有端口的缺省状态.
如果指定此状态,则ttymon在收到连接请求时将发出disabled消息.
服务访问工具管理(参考)系统管理指南:高级管理2010年9月54管理系统资源(概述)本章简要介绍了OracleSolarisOS中可用的系统资源管理功能,并提供了用于管理系统资源的指南.
使用这些功能,可以显示常规系统信息、监视磁盘空间、设置磁盘配额并使用记帐程序.
此外,还可以调度cron和at命令以自动运行常规命令.
本节中不包括可用来灵活分配、监视和控制系统资源的资源管理的有关信息.

有关与管理系统资源(不通过资源管理)相关的过程的信息,请参见第56页中的"管理系统资源(指南)".
有关通过资源管理来管理系统资源的信息,请参见《系统管理指南:OracleSolarisContainers-资源管理和OracleSolarisZones》中的第1章"Solaris10资源管理介绍".
系统资源管理方面的新增功能本节介绍此OracleSolaris发行版中用于管理系统资源的新增功能或已更改的功能.
有关新增功能的完整列表以及OracleSolaris发行版的说明,请参见《OracleSolaris109/10新增功能》.
用于显示产品名称的新增prtconf选项Solaris101/06:prtconf命令中添加了一个新的-b选项,用于显示系统的产品名称.
此选项与uname-i命令类似.
不过,prtconf-b命令专门用于确定产品的市场营销名称.
使用prtconf命令的-b选项显示的固件设备树根属性如下所示:namecompatible4第4章55banner-namemodel要显示特定于平台的其他可用输出,请使用prtconf-vb命令.
有关更多信息,请参见prtconf(1M)手册页和第64页中的"如何显示系统的产品名称".
识别芯片多线程功能的psrinfo命令选项OracleSolaris10:psrinfo命令已经过修改,不仅可以提供有关虚拟处理器的信息,还可以提供有关物理处理器的信息.
添加此增强功能是为了识别芯片多线程(CMT)功能.
新增的-p选项可报告系统中物理处理器的总数.
使用psrinfo-pv命令可列出系统中所有的物理处理器,以及与每个物理处理器关联的虚拟处理器.
psrinfo命令的缺省输出仍然可显示系统的虚拟处理器信息.
有关更多信息,请参见psrinfo(1M)手册页.
有关与此功能关联的过程的信息,请参见第65页中的"如何显示系统的物理处理器类型".
新增localeadm命令OracleSolaris10:通过新增的localeadm命令可以更改系统中的语言环境,而无需重新安装OS或手动添加和删除软件包.
使用此命令还可以查询系统,从而确定已安装的语言环境.
要运行localeadm命令,必须具有超级用户权限或通过基于角色的访问控制(role-basedaccesscontrol,RBAC)承担等效角色.
有关更多信息,请参见localeadm(1M)手册页.
有关本指南中该命令的更多信息,请参见第5章,显示和更改系统信息(任务).
有关新增功能的完整列表以及OracleSolaris发行版的说明,请参见《OracleSolaris109/10新增功能》.
管理系统资源(指南)任务说明参考显示并更改系统信息使用各种命令显示并更改系统信息,如常规系统信息、语言环境、日期和时间以及系统的主机名.
第5章,显示和更改系统信息(任务)管理磁盘使用确定磁盘空间的使用情况并采取措施删除旧文件和未使用的文件.
第6章,管理磁盘使用(任务)管理系统资源(指南)系统管理指南:高级管理2010年9月56任务说明参考管理配额使用UFS文件系统配额管理用户使用的磁盘空间量.
第7章,管理UFS配额(任务)调度系统事件使用cron和at作业帮助调度系统例程,其中可以包括清除旧文件和未使用的文件.
第8章,调度系统任务(任务)管理系统记帐使用系统记帐来确定用户和应用程序使用系统资源的情况.
第9章,管理系统记帐(任务)管理系统资源(通过Solaris资源管理)使用资源管理器控制应用程序使用可用系统资源的方式,跟踪资源使用情况并对其进行收费.
《系统管理指南:OracleSolarisContainers-资源管理和OracleSolarisZones》中的第1章"Solaris10资源管理介绍"管理系统资源(指南)第4章管理系统资源(概述)5758显示和更改系统信息(任务)本章介绍显示和更改最常用的系统信息所需执行的任务.
有关与显示和更改系统信息相关的过程的信息,请参见以下各节:第59页中的"显示系统信息(任务图)"第67页中的"更改系统信息(任务图)"有关管理系统资源的概述信息,请参见第4章,管理系统资源(概述).
显示系统信息(任务图)任务说明参考确定系统启用了32位还是64位功能.
使用isainfo命令可确定系统启用了32位还是64位功能.
在基于x86的系统中,可以使用isalist命令来显示此信息.
第61页中的"如何确定系统启用了32位还是64位功能"显示OracleSolaris发行版信息.
显示/etc/release文件的内容,以确定OracleSolaris发行版的版本.
第63页中的"如何显示OracleSolaris发行版信息"显示常规系统信息.
使用showrev命令显示常规系统信息.
第63页中的"如何显示常规系统信息"显示系统的主机ID号.
使用hostid命令显示系统的主机ID.
第64页中的"如何显示系统的主机ID号"显示系统的产品名称.
从Solaris101/06发行版开始,可以使用prtconf-b命令显示系统的产品名称.
第64页中的"如何显示系统的产品名称"5第5章59任务说明参考显示系统的已安装内存.
使用prtconf命令显示有关系统的已安装内存的信息.
第65页中的"如何显示系统的已安装内存"显示系统的日期和时间.
使用date命令显示系统的日期和时间.
第65页中的"如何显示日期和时间"显示系统的物理处理器类型.
使用psrinfo-p命令列出系统中物理处理器的总数.
使用psrinfo-pv命令列出系统中的所有物理处理器以及与每个物理处理器关联的虚拟处理器.
第65页中的"如何显示系统的物理处理器类型"显示系统的逻辑处理器类型.
使用psrinfo-v命令显示系统的逻辑处理器类型.
第66页中的"如何显示系统的逻辑处理器类型"显示系统中安装的语言环境.
使用localeadm命令显示系统中安装的语言环境.
第66页中的"如何显示系统中安装的语言环境"确定系统中是否安装了语言环境.
使用localeadm命令的-q选项和语言环境来确定系统中是否安装了语言环境.
第67页中的"如何确定系统中是否安装了语言环境"显示系统信息下表介绍了可用于显示常规系统信息的命令.
表5–1用于显示系统信息的命令命令显示的系统信息手册页date日期和时间date(1)hostid主机ID号hostid(1)isainfo正在运行的系统中本机应用程序所支持的位数,该位数可以作为标记传递给脚本isainfo(1)isalist用于基于x86的系统的处理器类型psrinfo(1M)localeadm系统中安装的语言环境localeadm(1M)prtconf系统配置信息,已安装的内存和产品名称prtconf(1M)psrinfo处理器类型psrinfo(1M)showrev主机名、主机ID、发行版、内核体系结构、应用程序体系结构、硬件提供者、域和内核版本showrev(1M)显示系统信息(任务图)系统管理指南:高级管理2010年9月60表5–1用于显示系统信息的命令(续)命令显示的系统信息手册页uname操作系统名称、发行版、版本、节点名称、硬件名称和处理器类型uname(1)如何确定系统启用了32位还是64位功能使用isainfo命令可确定系统启用了32位还是64位功能.
#isainfooptions当运行未指定任何选项的isainfo命令时,将显示当前OS版本所支持应用程序的本机指令集的一个或多个名称.
-v列显有关其他选项的详细信息.
-b列显本机指令集的地址空间中的位数.
-n列显当前版本的OS支持的可移植应用程序所使用的本机指令集的名称.
-k列显OS内核组件(例如设备驱动程序和STREAMS模块)所使用的一个或多个指令集的名称.
注–在基于x86的系统中,也可以使用isalist命令来显示此信息.
有关更多信息,请参见isalist(1)手册页.
SPARC:确定系统启用了32位还是64位功能在运行以前的OracleSolarisOS发行版(使用32位内核)的UltraSPARC系统中,isainfo命令的输出如下所示:$isainfo-v32-bitsparcapplications此输出表明,该系统只能支持32位应用程序.
在当前的OracleSolarisOS发行版中,只有基于SPARC的系统才提供64位内核.
在运行64位内核的UltraSPARC系统中,isainfo命令的输出如下所示:$isainfo-v64-bitsparcv9applications32-bitsparcapplications此输出表明,该系统既可以支持32位应用程序,又可以支持64位应用程序.
使用isainfo-b命令可以显示正在运行的系统中的本机应用程序所支持的位数.
示例5–1显示系统信息(任务图)第5章显示和更改系统信息(任务)61在运行32位OracleSolarisOS的基于SPARC的系统、基于x86的系统或UltraSPARC系统中,isainfo命令的输出如下所示:$isainfo-b32在运行64位OracleSolarisOS的64位UltraSPARC系统中,isainfo命令的输出如下所示:$isainfo-b64该命令只返回64.
即使64位UltraSPARC系统可以运行两种类型的应用程序,64位应用程序也是最适合在64位系统中运行的应用程序.
x86:确定系统启用了32位还是64位功能在运行64位内核的基于x86的系统中,isainfo命令输出如下所示:$isainfoamd64i386此输出表明,该系统可以支持64位应用程序.
使用isainfo-v命令可以确定基于x86的系统是否能够运行32位内核.
$isainfo-v64-bitamd64applicationsfputsccx8cmovmmxammxa3dnowa3dnowxfxsrssesse232-biti386applicationsfputsccx8cmovmmxammxa3dnowa3dnowxfxsrssesse2此输出表明,该系统既可以支持64位应用程序,又可以支持32位应用程序.
使用isainfo-b命令可以显示正在运行的系统中的本机应用程序所支持的位数.
在运行32位OracleSolarisOS的基于x86的系统中,isainfo命令的输出如下所示:$isainfo-b32在运行64位OracleSolarisOS的基于x86的系统中,isainfo命令的输出如下所示:$isainfo-b64您也可以使用isalist命令,来确定基于x86的系统是以32位模式还是以64位模式运行.
示例5–2显示系统信息(任务图)系统管理指南:高级管理2010年9月62$isalistamd64pentium_pro+mmxpentium_propentium+mmxpentiumi486i386i86在上面的示例中,amd64表示系统启用了64位功能.
如何显示OracleSolaris发行版信息显示/etc/release文件的内容,以确定发行版的版本.
$cat/etc/releaseSolaris10s10_51SPARCCopyright2004SunMicrosystems,Inc.
AllRightsReserved.
Useissubjecttolicenseterms.
Assembled21January2004如何显示常规系统信息要显示常规系统信息,请使用showrev命令.
$showrevoptions-a列显所有可用的系统修订版信息.
-c(command)列显有关命令的修订版信息.
-p只列显有关修补程序的修订版信息.
-R(root_path)定义要用作root_path的目录的全路径名.
-s(hostname)对指定的主机名执行此操作.
-w只列显OpenWindows修订版信息.
也可以使用uname命令来显示系统信息.
以下示例显示uname命令输出.
-a选项显示操作系统名称和系统节点名称、操作系统发行版、操作系统版本、硬件名称和处理器类型.
$unameSunOS$uname-aSunOSstarbug5.
10Genericsun4usparcSUNW,Ultra-5_10$显示常规系统信息以下示例显示showrev命令的输出.
-a选项显示所有可用的系统信息.
$showrev-aHostname:stonetouchHostid:8099dfb9Release:5.
10Kernelarchitecture:sun4u示例5–3显示系统信息(任务图)第5章显示和更改系统信息(任务)63Applicationarchitecture:sparcHardwareprovider:Sun_MicrosystemsDomain:boulder.
Central.
Sun.
COMKernelversion:SunOS5.
10s10_46OpenWindowsversion:SolarisX11Version6.
6.
220October2003Nopatchesareinstalled如何显示系统的主机ID号要以十六进制格式显示主机ID号,请使用hostid命令.
显示系统的主机ID号以下示例显示hostid命令的样例输出.
$hostid80a5d34c如何显示系统的产品名称Solaris101/06:在prtconf命令中使用-b选项可以显示系统的产品名称.
有关此功能的更多信息,请参见prtconf(1M)手册页.
要显示系统的产品名称,请将prtconf命令与-b选项结合使用,如下所示:%prtconf-b显示系统的产品名称此示例显示prtconf-b命令的样例输出.
$prtconf-bname:SUNW,Ultra-5_10model:SUNW,375-0066banner-name:SunUltra5/10UPA/PCI(UltraSPARC-IIi333MHz)此示例显示prtconf-vb命令的样例输出.
$prtconf-vbname:SUNW,Ultra-5_10model:SUNW,375-0066banner-name:SunUltra5/10UPA/PCI(UltraSPARC-IIi333MHz)idprom:01800800.
20a6c363.
00000000.
a6c363a9.
00000000.
00000000.
405555aa.
aa555500openprommodel:SUNW,3.
15openpromversion:'OBP3.
15.
21998/11/1010:35'示例5–4示例5–5显示系统信息(任务图)系统管理指南:高级管理2010年9月64如何显示系统的已安装内存要显示系统中已安装的内存量,请使用prtconf命令.
显示系统的已安装内存以下示例显示prtconf命令的样例输出.
grepMemory命令选择prtconf命令的输出,以便只显示内存信息.
$prtconf|grepMemoryMemorysize:128Megabytes如何显示日期和时间要根据系统时钟显示当前的日期和时间,请使用date命令.
显示日期和时间以下示例显示date命令的样例输出.
$dateWedJan2117:32:59MST2004$如何显示系统的物理处理器类型使用psrinfo-p命令可以显示系统中物理处理器的总数.
$psrinfo-p1使用psrinfo-pv命令可以显示有关系统中的每个物理处理器的信息以及与每个物理处理器关联的虚拟处理器.
$psrinfo-pvTheUltraSPARC-IVphysicalprocessorhas2virtualprocessors(8,520)TheUltraSPARC-IVphysicalprocessorhas2virtualprocessors(9,521)TheUltraSPARC-IVphysicalprocessorhas2virtualprocessors(10,522)TheUltraSPARC-IVphysicalprocessorhas2virtualprocessors(11,523)TheUltraSPARC-III+physicalprocessorhas1virtualprocessor(16)TheUltraSPARC-III+physicalprocessorhas1virtualprocessor(17)TheUltraSPARC-III+physicalprocessorhas1virtualprocessor(18)TheUltraSPARC-III+physicalprocessorhas1virtualprocessor(19)示例5–6示例5–7显示系统信息(任务图)第5章显示和更改系统信息(任务)65在基于x86的系统中使用psrinfo-pv命令时,将显示以下输出:$psrinfo-pvThei386physicalprocessorhas2virtualprocessors(0,2)Thei386physicalprocessorhas2virtualprocessors(1,3)如何显示系统的逻辑处理器类型使用psrinfo-v命令可以显示有关系统的处理器类型的信息.
$psrinfo-v在基于x86的系统中,使用isalist命令可以显示虚拟处理器类型.
$isalistSPARC:显示系统的处理器类型此示例说明如何显示有关基于SPARC的系统的处理器类型的信息.
$psrinfo-vStatusofvirtualprocessor0asof:04/16/200410:32:13on-linesince03/22/200419:18:27.
Thesparcv9processoroperatesat650MHz,andhasasparcv9floatingpointprocessor.
x86:显示系统的处理器类型此示例说明如何显示有关基于x86的系统的处理器类型的信息.
$isalistpentium_pro+mmxpentium_propentium+mmxpentiumi486i386i86如何显示系统中安装的语言环境成为超级用户或同等角色.
角色包含授权和具有一定权限的命令.
有关角色的更多信息,请参见《系统管理指南:安全性服务》中的"配置RBAC(任务列表)".
使用localeadm命令显示系统中当前安装的语言环境.
-l选项显示系统中安装的语言环境.
例如:#localeadm-lCheckingforinstalledpkgs.
Thiscouldtakeawhile.
CheckingforAustralasiaregion(aua)示例5–8示例5–912显示系统信息(任务图)系统管理指南:高级管理2010年9月66(1of2pkgs)|.
.
.
.
.
.
|.
.
.
ThefollowingregionsareinstalledonconcordanceonWedDec1715:13:00MST2003POSIX(C)CentralEurope(ceu)[Austria,CzechRepublic,Germany,Hungary,Poland,Slovakia,Switzerland(German),Switzerland(French)]Done.
如何确定系统中是否安装了语言环境成为超级用户或同等角色.
角色包含授权和具有一定权限的命令.
有关角色的更多信息,请参见《系统管理指南:安全性服务》中的"配置RBAC(任务列表)".
使用localeadm命令确定系统中是否安装了语言环境.
-q选项和语言环境会查询系统,以确定该系统中是否安装了语言环境.
例如,要确定系统中是否安装了中欧(CentralEuropean,ceu)地区语言环境,可以运行以下命令:#localeadm-qceulocale/regionnameisceuCheckingforCentralEuroperegion(ceu).
.
.
TheCentralEuroperegion(ceu)isinstalledonthissystem更改系统信息(任务图)任务说明参考手动设置系统的日期和时间.
使用datemmddHHMM[[cc]yy]命令行语法手动设置系统的日期和时间.
第68页中的"如何手动设置系统的日期和时间"设置每日消息.
通过编辑/etc/motd文件在系统中设置每日消息.
第69页中的"如何设置每日消息"12更改系统信息(任务图)第5章显示和更改系统信息(任务)67任务说明参考更改系统的主机名.
通过编辑以下文件来更改系统的主机名:/etc/nodename/etc/hostname.
*host-name/etc/inet/hosts注–如果运行的是Solaris3/05、1/06、6/06或11/06发行版,则还需要更新/etc/inet/ipnodes文件.
从Solaris108/07发行版开始,OS中不再有两个单独的hosts文件.
/etc/inet/hosts文件是同时包含IPv4项和IPv6项的单个hosts文件.
第70页中的"如何更改系统的主机名"向系统中添加语言环境.
使用localeadm命令可以向系统中添加语言环境.
如何向系统中添加语言环境从系统中删除语言环境.
使用localeadm命令的-r选项和语言环境从系统中删除语言环境.
如何从系统中删除语言环境更改系统信息本节介绍可用来更改常规系统信息的命令.
如何手动设置系统的日期和时间成为超级用户或同等角色.
角色包含授权和具有一定权限的命令.
有关角色的更多信息,请参见《系统管理指南:安全性服务》中的"配置RBAC(任务列表)".
输入新的日期和时间.
#datemmddHHMM[[cc]yy]mm月份,使用两位数.
dd月份中的某日,使用两位数.
HH小时,使用两位数和24小时制.
MM分钟,使用两位数.
12更改系统信息系统管理指南:高级管理2010年9月68cc世纪,使用两位数.
yy年份,使用两位数.
有关更多信息,请参见date(1)手册页.
使用不带选项的date命令验证是否正确重置了系统日期.
手动设置系统的日期和时间以下示例说明如何使用date命令手动设置系统的日期和时间.
#dateWedMar314:04:19MST2004#date0121173404ThuJan2117:34:34MST2004如何设置每日消息编辑每日消息文件/etc/motd,以包括在系统的所有用户登录时都会显示的声明或询问.
请尽量少使用此功能,并定期编辑此文件,以删除过时的消息.
成为超级用户或同等角色.
角色包含授权和具有一定权限的命令.
有关角色的更多信息,请参见《系统管理指南:安全性服务》中的"配置RBAC(任务列表)".
编辑/etc/motd文件并添加您选择的消息.
编辑文本以包括要在用户登录期间显示的消息.
包括空格、制表符和回车.

通过显示/etc/motd文件的内容来验证更改.
$cat/etc/motdWelcometotheUNIXUniverse.
Haveaniceday.
设置每日消息安装OracleSolaris软件时提供的缺省每日消息中包含版本信息.
$cat/etc/motdSunMicrosystemsInc.
SunOS5.
10GenericMay2004以下示例显示一个已编辑的/etc/motd文件,该文件可向登录的每个用户提供有关系统可用性的信息.
$cat/etc/motdThesystemwillbedownfrom7:00a.
mto2:00p.
m.
on3示例5–10123示例5–11更改系统信息第5章显示和更改系统信息(任务)69Saturday,July7,forupgradesandmaintenance.
Donottrytoaccessthesystemduringthosehours.
Thankyou.
如何更改系统的主机名系统的主机名在多个不同位置指定.
请记得更新名称服务器数据库,以反映新的主机名.
使用以下过程更改或重命名系统的主机名.
也可以使用sys-unconfig命令来重新配置系统,包括主机名.
有关更多信息,请参见sys-unconfig(1M)手册页.
成为超级用户或同等角色.
角色包含授权和具有一定权限的命令.
有关角色的更多信息,请参见《系统管理指南:安全性服务》中的"配置RBAC(任务列表)".
在以下文件中更改系统的主机名:/etc/nodename/etc/hostname.
*interface/etc/inet/hosts/etc/inet/ipnodes(仅适用于某些发行版)注–从Solaris108/07发行版开始,不再有两个独立的hosts文件.
/etc/inet/hosts文件是同时包含IPv4项和IPv6项的单个hosts文件.
无需在始终要求同步的两个hosts文件中维护IPv4项.
为了向后兼容,/etc/inet/ipnodes文件被替换为与/etc/inet/hosts文件同名的符号链接.
有关更多信息,请参见hosts(4)手册页.
(可选的)如果您使用了名称服务,则在hosts文件中更改系统的主机名.
重命名/var/crash目录中的主机名目录.
#cd/var/crash#mvold-host-namenew-host-name重新引导系统,以激活新的主机名.
#init612345更改系统信息系统管理指南:高级管理2010年9月70如何向系统中添加语言环境成为超级用户或同等角色.
角色包含授权和具有一定权限的命令.
有关角色的更多信息,请参见《系统管理指南:安全性服务》中的"配置RBAC(任务列表)".
使用localeadm命令添加要在系统中安装的语言环境的软件包.
-a选项后跟语言环境(标识您要添加的语言环境).
-d选项后跟设备(标识含有您要添加的语言环境软件包的设备).
例如,要向系统中添加中欧(CentralEuropean,ceu)地区语言环境,可运行以下命令:#localeadm-aceu-d/net/install/latest/Solaris/Productlocale/regionnameisceuDevicesare/net/install/latest/Solaris/Product.
.
.
Oneormorelocaleshavebeenadded.
Toupdatethelistoflocalesavailableat.
.
.
如何从系统中删除语言环境成为超级用户或同等角色.
角色包含授权和具有一定权限的命令.
有关角色的更多信息,请参见《系统管理指南:安全性服务》中的"配置RBAC(任务列表)".
使用localeadm命令删除系统中已安装的语言环境软件包.
-r选项后跟语言环境(标识您要从系统中删除的语言环境).
例如,要从系统中删除中欧(CentralEuropean,ceu)地区语言环境,可运行以下命令:#localeadm-rceulocale/regionnameisceuRemovingpackagesforCentralEurope(ceu).
.
.
Oneormorelocaleshavebeenremoved.
Toupdatethelistoflocalesavailableattheloginscreen's"Options->Language"menu,.
.
.
1212更改系统信息第5章显示和更改系统信息(任务)7172管理磁盘使用(任务)本章介绍如何通过查找未使用的文件和大型目录来优化磁盘空间.
有关与管理磁盘使用关联的过程信息,请参见第73页中的"管理磁盘使用(任务图)".
管理磁盘使用(任务图)任务说明参考显示有关文件和磁盘空间的信息.
使用df命令显示有关磁盘空间使用情况的信息.
第74页中的"如何显示有关文件和磁盘空间的信息"显示文件的大小.
使用带有-lh选项的ls命令显示有关文件大小的信息.
第77页中的"如何显示文件大小"查找大文件.
使用ls-s命令可按大小对文件进行降序排序.
第78页中的"如何查找大文件"查找超过指定大小限制的文件.
使用带有-size选项和指定的大小限制值的find命令来查找并显示超过指定大小的文件的名称.
第79页中的"如何查找超过指定大小限制的文件"显示目录、子目录和文件的大小.
使用du命令显示一个或多个目录、子目录和文件的大小.
第80页中的"如何显示目录、子目录和文件的大小"显示本地UFS文件系统的拥有权.
使用quot-a命令显示文件的拥有权.
第81页中的"如何显示本地UFS文件系统的用户拥有权"列出最新的文件.
使用ls-t命令先显示最新创建或更改的文件.
第82页中的"如何列出最新文件"6第6章73任务说明参考查找并删除旧文件或非活动文件.
使用带有-atime和-mtime选项的find命令查找在指定天数内未访问的文件.
可以使用rm'catfilename'命令来删除这些文件.
第83页中的"如何查找并删除旧文件或非活动文件"清除临时目录.
查找临时目录,然后使用rm-r*命令删除整个目录.
第84页中的"如何清除临时目录"查找并删除核心转储文件.
使用find.
-namecore-execrm{}\;命令查找并删除核心转储文件.
第84页中的"如何查找并删除core文件"删除故障转储文件.
使用rm*命令删除/var/crash/目录中的故障转储文件.
第85页中的"如何删除故障转储文件"显示有关文件和磁盘空间的信息此表概括说明了可用于显示有关文件大小和磁盘空间信息的命令.
命令说明手册页df报告空闲磁盘块和文件的数量df(1M)du概述分配给每个子目录的磁盘空间du(1)find-size根据-size选项指定的大小递归搜索目录find(1)ls-lh以1024幂的形式列出文件大小ls(1)如何显示有关文件和磁盘空间的信息使用df命令可显示有关磁盘空间使用情况的信息.
$df[directory][-h][-t]df没有任何选项时,该命令将列出所有已安装文件系统及其设备名称、使用的512字节块的数量以及文件数量.
directory指定要检查其文件系统的目录.
-h以1024幂的形式显示磁盘空间.
-t显示块总数以及用于所有已安装文件系统的块数.
显示有关文件和磁盘空间的信息系统管理指南:高级管理2010年9月74显示有关文件大小和磁盘空间的信息在以下示例中,所列的所有文件系统都是本地挂载的,但/usr/dist除外.
$df/(/dev/dsk/c0t0d0s0):101294blocks105480files/devices(/devices):0blocks0files/system/contract(ctfs):0blocks2147483578files/proc(proc):0blocks1871files/etc/mnttab(mnttab):0blocks0files/etc/svc/volatile(swap):992704blocks16964files/system/object(objfs):0blocks2147483530files/usr(/dev/dsk/c0t0d0s6):503774blocks299189files/dev/fd(fd):0blocks0files/var/run(swap):992704blocks16964files/tmp(swap):992704blocks16964files/opt(/dev/dsk/c0t0d0s5):23914blocks6947files/export/home(/dev/dsk/c0t0d0s7):16810blocks7160files以1024字节为单位显示具有UFS根文件系统的系统的文件大小信息在以下示例中,以1024字节为单位显示具有UFS根文件系统的系统的文件系统信息.
$df-hFilesystemsizeusedavailcapacityMountedon/dev/dsk/c0t0d0s0249M200M25M90%//devices0K0K0K0%/devicesctfs0K0K0K0%/system/contractproc0K0K0K0%/procmnttab0K0K0K0%/etc/mnttabswap485M376K485M1%/etc/svc/volatileobjfs0K0K0K0%/system/object/dev/dsk/c0t0d0s63.
2G2.
9G214M94%/usrfd0K0K0K0%/dev/fdswap485M40K485M1%/var/runswap485M40K485M1%/tmp/dev/dsk/c0t0d0s513M1.
7M10M15%/opt/dev/dsk/c0t0d0s79.
2M1.
0M7.
3M13%/export/home尽管/proc和/tmp是本地文件系统,但却不是UFS文件系统.
/proc是PROCFS文件系统,/var/run和/tmp是TMPFS文件系统,/etc/mnttab是MNTFS文件系统.
以1024字节为单位显示具有ZFS根文件系统的系统的文件大小信息在以下示例中,以1024字节为单位显示具有OracleSolarisZFS根文件系统的系统的文件系统信息.
FilesystemsizeusedavailcapacityMountedonrpool/ROOT/s1008be67G4.
6G58G8%//devices0K0K0K0%/devicesctfs0K0K0K0%/system/contractproc0K0K0K0%/proc示例6–1示例6–2示例6–3显示有关文件和磁盘空间的信息第6章管理磁盘使用(任务)75mnttab0K0K0K0%/etc/mnttabswap1.
9G1.
5M1.
9G1%/etc/svc/volatileobjfs0K0K0K0%/system/objectsharefs0K0K0K0%/etc/dfs/sharetab/platform/sun4u-us3/lib/libc_psr/libc_psr_hwcap1.
so.
163G4.
6G58G8%/platform/sun4u-us3/lib/libc_psr.
so.
1/platform/sun4u-us3/lib/sparcv9/libc_psr/libc_psr_hwcap1.
so.
163G4.
6G58G8%/platform/sun4u-us3/lib/sparcv9/libc_psr.
so.
1fd0K0K0K0%/dev/fdrpool/ROOT/s1008be/var67G73M58G1%/varswap1.
9G32K1.
9G1%/tmpswap1.
9G40K1.
9G1%/var/runrpool/export67G20K58G1%/exportrpool/export/home67G18K58G1%/export/home显示文件系统分配的总块数和总文件数以下示例显示所有已挂载文件系统、设备名称、使用的512字节块的总数以及文件数量的列表.
每个两行项的第二行都显示文件系统分配的总块数和总文件数.

$df-t/(/dev/dsk/c0t0d0s0):101294blocks105480filestotal:509932blocks129024files/devices(/devices):0blocks0filestotal:0blocks113files/system/contract(ctfs):0blocks2147483578filestotal:0blocks69files/proc(proc):0blocks1871filestotal:0blocks1916files/etc/mnttab(mnttab):0blocks0filestotal:0blocks1files/etc/svc/volatile(swap):992608blocks16964filestotal:993360blocks17025files/system/object(objfs):0blocks2147483530filestotal:0blocks117files/usr(/dev/dsk/c0t0d0s6):503774blocks299189filestotal:6650604blocks420480files/dev/fd(fd):0blocks0filestotal:0blocks31files/var/run(swap):992608blocks16964filestotal:992688blocks17025files/tmp(swap):992608blocks16964filestotal:992688blocks17025files/opt(/dev/dsk/c0t0d0s5):23914blocks6947filestotal:27404blocks7168files/export/home(/dev/dsk/c0t0d0s7):16810blocks7160filestotal:18900blocks7168files示例6–4显示有关文件和磁盘空间的信息系统管理指南:高级管理2010年9月76检查文件大小使用ls命令可以检查文件的大小并对文件排序.
使用find命令可以查找超过大小限制的文件.
有关更多信息,请参见ls(1)和find(1)手册页.
注–如果/var目录中的空间不足,请不要象征性地将/var目录链接至文件系统中具有更多磁盘空间的目录.
这种做法即使作为一种临时措施,也会导致某些守护进程和实用程序出现问题.
如何显示文件大小转到要检查的文件所在的目录.
显示文件的大小.
$ls[-lh][-s]-l以长格式显示文件和目录的列表,以字节为单位显示大小.
(请参见下面的示例.
)-h文件或目录大小大于1024字节时,请以KB、MB、GB或TB来表示文件大小和目录大小.
此选项还可以修改-o、-n、-@和-g选项显示的输出,以使用新格式显示文件或目录大小.
有关更多信息,请参见ls(1)手册页.
-s显示文件和目录(以块为单位)的列表.
显示文件大小以下示例表明,lastlog和messages文件比/var/adm目录中的其他文件大.
$cd/var/adm$ls-lhtotal148drwxrwxr-x5admadm512Nov2609:39acct/-rw-------1uucpbin0Nov2609:25aculogdrwxr-xr-x2admadm512Nov2609:25exacct/-r--r--r--1rootother342KNov2613:56lastlogdrwxr-xr-x2admadm512Nov2609:25log/-rw-r--r--1rootroot20KNov2613:55messagesdrwxr-xr-x2admadm512Nov2609:25passwd/drwxrwxr-x2admsys512Nov2609:39sa/drwxr-xr-x2rootsys512Nov2609:49sm.
bin/-rw-rw-rw-1rootbin0Nov2609:25spellhistdrwxr-xr-x2rootsys512Nov2609:25streams/-rw-r--r--1rootbin3.
3KNov2613:56utmpx-rw-r--r--1rootroot0Nov2610:17vold.
log-rw-r--r--1admadm19KNov2613:56wtmpx12示例6–5检查文件大小第6章管理磁盘使用(任务)77以下示例显示lpsched.
1文件使用了两个块.
$cd/var/lp/logs$ls-stotal20lpsched2lpsched.
1如何查找大文件转到要搜索的目录.
以块为单位按从大到小的顺序显示文件大小.
如果文件的字符或列不同,请使用以下命令按块大小从大到小的顺序对文件列表进行排序.
$ls-l|sort+4rn|more请注意,此命令按照第四个字段中的字符(从左侧开始)对列表中的文件排序.

如果文件的字符或列相同,请使用以下命令按块大小从大到小的顺序对文件列表进行排序.
$ls-s|sort-nr|more请注意,此命令从最左侧的字符开始对列表中的文件排序.
查找大文件(按第五个字段的字符排序)$cd/var/adm$ls-l|sort+4rn|more-r--r--r--1rootroot4568368Oct1708:36lastlog-rw-r--r--1admadm697040Oct1712:30pacct.
9-rw-r--r--1admadm280520Oct1713:05pacct.
2-rw-r--r--1admadm277360Oct1712:55pacct.
4-rw-r--r--1admadm264080Oct1712:45pacct.
6-rw-r--r--1admadm255840Oct1712:40pacct.
7-rw-r--r--1admadm254120Oct1713:10pacct.
1-rw-r--r--1admadm250360Oct1712:25pacct.
10-rw-r--r--1admadm248880Oct1713:00pacct.
3-rw-r--r--1admadm247200Oct1712:35pacct.
8-rw-r--r--1admadm246720Oct1713:15pacct.
0-rw-r--r--1admadm245920Oct1712:50pacct.
5-rw-r--r--1rootroot190229Oct503:02messages.
1-rw-r--r--1admadm156800Oct1713:17pacct-rw-r--r--1admadm129084Oct1708:36wtmpx查找大文件(按最左侧的字符排序)在以下示例中,lastlog和messages文件是/var/adm目录中最大的文件.
12示例6–6示例6–7检查文件大小系统管理指南:高级管理2010年9月78$cd/var/adm$ls-s|sort-nr|more48lastlog30messages24wtmpx18pacct8utmpx2vold.
log2sulog2sm.
bin/2sa/2passwd/2pacct12log/2acct/0spellhist0aculogtotal144如何查找超过指定大小限制的文件要查找并显示超过指定大小的文件的名称,请使用find命令.
$finddirectory-size+nnndirectory标识要搜索的目录.
-size+nnn512字节块的数量.
将列出超过此大小的文件.
查找超过指定大小限制的文件以下示例显示如何在当前工作目录中查找大于400块的文件.
-print选项显示find命令的输出.
$find.
-size+400-print.
/Howto/howto.
doc.
/Howto/howto.
doc.
backup.
/Howto/howtotest.
doc.
/Routine/routineBackupconcepts.
doc.
/Routine/routineIntro.
doc.
/Routine/routineTroublefsck.
doc.
/.
record.
/Mail/pagination.
/Config/configPrintadmin.
doc.
/Config/configPrintsetup.
doc.
/Config/configMailappx.
doc.
/Config/configMailconcepts.
doc.
/snapshot.
rs示例6–8检查文件大小第6章管理磁盘使用(任务)79检查目录大小可以使用du命令及选项显示目录的大小.
此外,还可以使用quot命令来查找本地UFS文件系统中的用户帐户所使用的磁盘空间量.
有关这些命令的更多信息,请参见du(1)和quot(1M)手册页.
如何显示目录、子目录和文件的大小使用du命令显示一个或多个目录、子目录和文件的大小.
以512字节块为单位显示大小.
$du[-as][directory.
.
.
]du显示您指定的每个目录的大小,其中包括目录下的每个子目录.
-a显示每个文件和子目录的大小,以及指定目录中包含的总块数.
-s显示指定目录中包含的总块数.
-h以1024字节块为单位显示每个目录的大小.
-H以1000字节块为单位显示每个目录的大小.
[directory.
.
.
]标识要检查的一个或多个目录.
命令行语法中的多个目录以空格分隔.
显示目录、子目录和文件的大小以下示例显示两个目录的大小.
$du-s/var/adm/var/spool/lp130/var/adm40/var/spool/lp以下示例显示两个目录的大小,其中包括每个目录下的所有子目录和文件的大小.
还显示每个目录中包含的总块数.
$du/var/adm/var/spool/lp2/var/adm/exacct2/var/adm/log2/var/adm/streams2/var/adm/acct/fiscal2/var/adm/acct/nite2/var/adm/acct/sum8/var/adm/acct2/var/adm/sa2/var/adm/sm.
bin258/var/adm4/var/spool/lp/admins2/var/spool/lp/requests/printing.
.
.
.
示例6–9检查目录大小系统管理指南:高级管理2010年9月804/var/spool/lp/requests4/var/spool/lp/system2/var/spool/lp/fifos24/var/spool/lp以下示例以1024字节块为单位显示目录大小.
$du-h/usr/share/audio796K/usr/share/audio/samples/au797K/usr/share/audio/samples798K/usr/share/audio如何显示本地UFS文件系统的用户拥有权成为超级用户或同等角色.
角色包含授权和具有一定权限的命令.
有关角色的更多信息,请参见《系统管理指南:安全性服务》中的"配置RBAC(任务列表)".
显示用户、目录或文件系统以及使用的1024字节块数.
#quot[-a][filesystem.
.
.
]-a列出每个已挂载UFS文件系统的所有用户以及所用的1024字节块数.
filesystem标识UFS文件系统.
将显示该文件系统的用户以及所用块数.
注–quot命令仅适用于本地UFS文件系统.
显示本地UFS文件系统的用户拥有权在以下示例中,将显示根(/)文件系统的用户.
在后续的示例中,将显示所有已安装UFS文件系统的用户.
#quot//dev/rdsk/c0t0d0s0:43340root3142rimmer47uucp35lp30adm4bin4daemon#quot-a/dev/rdsk/c0t0d0s0(/):43340root3150rimmer47uucp12示例6–10检查目录大小第6章管理磁盘使用(任务)8135lp30adm4bin4daemon/dev/rdsk/c0t0d0s6(/usr):460651root206632bin791uucp46lp4daemon1adm/dev/rdsk/c0t0d0s7(/export/home):9root查找并删除旧文件或非活动文件清理负载较大的文件系统的工作包括查找并删除最近未使用的文件.
使用ls或find命令可以查找未使用的文件.
有关更多信息,请参见ls(1)和find(1)手册页.
节省磁盘空间的其他方法包括清空临时目录(例如/var/tmp或/var/spool中的目录)以及删除core文件和故障转储文件.
有关故障转储文件的更多信息,请参阅第17章,管理系统故障转储信息(任务).
如何列出最新文件使用ls-t命令列出文件,首先会显示最近创建或更改的文件.
$ls-t[directory]-t先按最近的时间标记对文件排序.
directory标识要搜索的目录.
列出最新文件以下示例显示如何使用ls-tl命令在/var/adm目录中查找最近创建或更改的文件.
sulog文件是最近创建或编辑的文件.
$ls-tl/var/admtotal134-rw-------1rootroot315Sep2414:00sulog-r--r--r--1rootother350700Sep2211:04lastlog-rw-r--r--1rootbin4464Sep2211:04utmpx-rw-r--r--1admadm20088Sep2211:04wtmpx-rw-r--r--1rootother0Sep1903:10messages-rw-r--r--1rootother0Sep1203:10messages.
0-rw-r--r--1rootroot11510Sep1016:13messages.
1-rw-r--r--1rootroot0Sep1016:12vold.
log示例6–11查找并删除旧文件或非活动文件系统管理指南:高级管理2010年9月82drwxr-xr-x2rootsys512Sep1015:33sm.
bindrwxrwxr-x5admadm512Sep1015:19acctdrwxrwxr-x2admsys512Sep1015:19sa-rw-------1uucpbin0Sep1015:17aculog-rw-rw-rw-1rootbin0Sep1015:17spellhistdrwxr-xr-x2admadm512Sep1015:17logdrwxr-xr-x2admadm512Sep1015:17passwd如何查找并删除旧文件或非活动文件成为超级用户或同等角色.
角色包含授权和具有一定权限的命令.
有关角色的更多信息,请参见《系统管理指南:安全性服务》中的"配置RBAC(任务列表)".
查找在指定的天数内未被访问的文件并在一个文件中列出这些文件.
#finddirectory-typef[-atime+nnn][-mtime+nnn]-print>filename&directory标识要搜索的目录.
还会搜索此目录下面的子目录.
-atime+nnn查找在您指定的天数内(nnn)未被访问的文件.
-mtime+nnn查找在您指定的天数内(nnn)未被修改的文件.
filename标识包含非活动文件列表的文件.
删除在前面的步骤中列出的非活动文件.
#rm'catfilename'其中filename标识在前面的步骤中创建的文件.
此文件包含非活动文件的列表.
查找并删除旧文件或非活动文件以下示例显示/var/adm目录及子目录中在过去60天内未被访问的文件.
/var/tmp/deadfiles文件包含非活动文件的列表.
rm命令将删除这些非活动文件.
#find/var/adm-typef-atime+60-print>/var/tmp/deadfiles&#more/var/tmp/deadfiles/var/adm/aculog/var/adm/spellhist/var/adm/wtmpx/var/adm/sa/sa13/var/adm/sa/sa27/var/adm/sa/sa11/var/adm/sa/sa23/var/adm/sulog/var/adm/vold.
log/var/adm/messages.
1/var/adm/messages.
2123示例6–12查找并删除旧文件或非活动文件第6章管理磁盘使用(任务)83/var/adm/messages.
3#rm'cat/var/tmp/deadfiles'#如何清除临时目录成为超级用户或同等角色.
角色包含授权和具有一定权限的命令.
有关角色的更多信息,请参见《系统管理指南:安全性服务》中的"配置RBAC(任务列表)".
转到要清除的目录.
#cddirectory注意–完成步骤3之前,请确保您处于正确的目录中.
步骤3将删除当前目录中的所有文件.
删除当前目录中的文件和子目录.
#rm-r*更改到包含不必要、临时或旧子目录和文件的其他目录.
通过重复步骤3删除这些子目录和文件.
清除临时目录以下示例显示如何清除mywork目录以及如何验证是否已删除所有文件和子目录.
#cdmywork#lsfilea.
000fileb.
000filec.
001#rm-r*#ls#如何查找并删除core文件成为超级用户或同等角色.
角色包含授权和具有一定权限的命令.
有关角色的更多信息,请参见《系统管理指南:安全性服务》中的"配置RBAC(任务列表)".
12345示例6–131查找并删除旧文件或非活动文件系统管理指南:高级管理2010年9月84转到要搜索core文件的目录.
查找并删除此目录及其子目录中的所有core文件.
#find.
-namecore-execrm{}\;查找并删除core文件以下示例显示如何使用find命令查找并删除jones用户帐户的core文件.
#cd/home/jones#find.
-namecore-execrm{}\;如何删除故障转储文件故障转储文件可能会很大.
如果允许系统存储这些文件,除非必要,否则不要使其保留太长时间.
成为超级用户或同等角色.
角色包含授权和具有一定权限的命令.
有关角色的更多信息,请参见《系统管理指南:安全性服务》中的"配置RBAC(任务列表)".
转到存储故障转储文件的目录.
#cd/var/crash/system其中system标识创建了故障转储文件的系统.
注意–完成步骤3之前,请确保您处于正确的目录中.
步骤3将删除当前目录中的所有文件.
删除故障转储文件.
#rm*验证是否已删除故障转储文件.
#ls删除故障转储文件以下示例显示如何从系统venus中删除故障转储文件,以及如何验证是否已删除故障转储文件.
#cd/var/crash/venus#rm*#ls23示例6–141234示例6–15查找并删除旧文件或非活动文件第6章管理磁盘使用(任务)8586管理UFS配额(任务)本章介绍如何设置和管理磁盘空间和inode的UFS配额.
有关与管理UFS配额相关的信息,请参见以下内容:第90页中的"设置UFS配额(任务图)"第94页中的"维护UFS配额(任务图)"有关管理OracleSolarisZFS配额的信息,请参见《OracleSolarisZFS管理指南》中的"设置ZFS配额和预留空间".
什么是UFS配额利用UFS配额,系统管理员可以控制文件系统的大小.
配额会限制磁盘空间量和inode数量,这些数量与各个用户可以获取的文件数量大致对应.
因此,配额在用户起始目录驻留的文件系统中特别有用.
通常,建立配额对public和/tmp文件系统不会有明显的益处.
使用UFS配额设置配额后,即可更改配额,以调整用户可以占用的磁盘空间量或inode数量.
此外,随着系统需要的变化,还可以添加或删除配额.
有关更改配额或配额可以超出的时间、禁用各配额或从文件系统中删除配额的说明,请参见第96页中的"更改和删除UFS配额".
此外,还可以监视配额状态.
使用UFS配额命令,管理员可以显示有关文件系统中配额的信息,或搜索已超过配额的用户.
有关介绍如何使用这些命令的过程,请参见第94页中的"检查UFS配额".
7第7章87设置UFS配额的软限制和硬限制既可以设置软限制,也可以设置硬限制.
系统不允许用户超过其硬限制.
但是系统管理员可能会设置软限制,用户可以临时性地超过该软限制.
软限制必须低于硬限制.

一旦用户超过软限制,配额计时器便开始计时.
在配额计时器计时期间,用户可以使用高于软限制的配额,但不能超过硬限制.
一旦用户低于软限制,计时器就将复位.
但当计时器过期时,如果用户的使用配额一直在软限制以上,则会将软限制强制作为硬限制.
缺省情况下,软限制计时器设置为七天.
repquota和quota命令中的timeleft字段显示了计时器的值.
例如,假定某用户的软限制为10,000块,硬限制为12,000块.
如果该用户的块使用量超过10,000块并且七天计时器已过期,则在用户的使用量降到软限制以下之前,该用户不能在该文件系统中分配更多磁盘块.
磁盘块与文件限制之间的区别文件系统可为用户提供两种资源:用于数据的块和用于文件的inode.
每个文件占用一个inode.
文件数据存储在数据块中.
数据块通常由1KB的块组成.
假定不存在任何目录,则用户可以通过创建所有空文件而不使用任何块来超过其inode配额.
用户也可以使用一个inode超过其块配额,方法是创建一个足够大的文件来占用用户配额中的所有数据块.
设置UFS配额设置配额包括以下常规步骤:1.
通过向/etc/vfstab文件项中添加一个配额选项,来确保每次重新引导系统时都会执行配额.
此外,在文件系统的顶层目录中创建一个quotas文件.
2.
为一次使用创建配额后,将其作为样例进行复制即可设置其他用户配额.

3.
在启用配额之前,请先检查建议的配额与当前磁盘使用量之间的一致性,以确保没有冲突.
4.
为一个或多个文件系统启用配额.
有关这些过程的特定信息,请参见第90页中的"设置UFS配额(任务图)".
下表介绍了用于设置磁盘配额的命令.
设置UFS配额系统管理指南:高级管理2010年9月88表7–1用于设置UFS配额的命令命令任务手册页edquota针对每个用户设置inode数量和磁盘空间量的硬限制和软限制.
edquota(1M)quotacheck检查每个已挂载的UFS文件系统,将文件系统的当前磁盘使用量与文件系统磁盘配额文件中存储的信息进行比较.
然后,解决不一致问题.
quotacheck(1M)quotaon为指定的文件系统激活配额.
quotaon(1M)quota显示用户在已挂载文件系统中的UFS磁盘配额,以验证是否已正确设置配额.
quota(1M)设置UFS配额的原则设置UFS配额之前,需要确定要分配给每个用户的磁盘空间量和inode数量.
如果要确保始终不超过文件系统总空间量,可根据用户数来划分文件系统空间.
例如,如果三个用户共享100MB的磁盘分片并且所需的磁盘空间相同,则可为每个用户分配33MB.
在并非所有用户都希望施加限制的环境中,您可能需要单独设置各用户的配额,以使配额总数大于文件系统的总大小.
例如,如果三个用户共享100MB的磁盘分片,则可为每个用户分配40MB.
使用edquota命令为一个用户建立配额后,可以将此配额用作样例,为同一文件系统中的其他用户设置相同配额.
在启用配额之前,请执行以下操作:首先,为配额配置UFS文件系统.
为每个用户建立配额,并运行quotacheck命令检查当前磁盘使用量与配额文件之间的一致性.
定期运行quotacheck命令,前提是不会经常重新引导系统.
只有使用quotaon命令启用配额,才会执行使用edquota命令设置的配额.
如果已正确配置了配额文件,则每次重新引导系统和挂载文件系统时,将自动启用配额.

设置UFS配额第7章管理UFS配额(任务)89设置UFS配额(任务图)任务说明参考1.
为配额配置文件系统.
编辑/etc/vfstab文件,以便在每次挂载文件系统时激活配额.
此外,还应创建一个quotas文件.
第90页中的"如何为UFS配额配置文件系统"2.
设置一个用户的UFS配额.
使用edquota命令为单个用户帐户创建磁盘配额和inode配额.
第91页中的"如何设置一个用户的UFS配额"3.
(可选)设置多个用户的UFS配额.
使用edquota命令将样例配额应用于其他用户帐户.
第92页中的"如何设置多个用户的UFS配额"4.
检查一致性.
使用quotacheck命令将配额与当前磁盘使用量进行比较,以确保一个或多个文件系统中的一致性.
第92页中的"如何检查UFS配额一致性"5.
启用UFS配额.
使用quotaon命令在一个或多个文件系统中启动UFS配额.
第93页中的"如何启用UFS配额"如何为UFS配额配置文件系统成为超级用户或同等角色.
角色包含授权和具有一定权限的命令.
有关角色的更多信息,请参见《系统管理指南:安全性服务》中的"配置RBAC(任务列表)".
对于要获取配额的每个UFS文件系统,编辑/etc/vfstab文件并向mountoptions字段中添加rq.
将目录转到将获取配额的文件系统的根目录.
创建一个名为quotas的文件.
#touchquotas更改读取/写入权限,以便仅供超级用户访问.
#chmod600quotas为UFS配额配置文件系统以下/etc/vfstab示例显示,系统pluto中的/export/home目录在本地系统中作为NFS文件系统挂载.
通过mountoptions列下的rq项可以判断已启用了配额.
12345示例7–1设置UFS配额(任务图)系统管理指南:高级管理2010年9月90#devicedevicemountFSfsckmountmount#tomounttofsckpointtypepassatbootoptions#pluto:/export/home-/export/homenfs-yesrq/etc/vfstab文件中的以下示例行说明本地/work目录在挂载时已启用配额,mountoptions列下的rq项指明了这一点.
#devicedevicemountFSfsckmountmount#tomounttofsckpointtypepassatbootoptions#/dev/dsk/c0t4d0s0/dev/rdsk/c0t4d0s0/workufs3yesrq第91页中的"如何设置一个用户的UFS配额"第92页中的"如何设置多个用户的UFS配额"第92页中的"如何检查UFS配额一致性"第93页中的"如何启用UFS配额"如何设置一个用户的UFS配额成为超级用户或同等角色.
角色包含授权和具有一定权限的命令.
有关角色的更多信息,请参见《系统管理指南:安全性服务》中的"配置RBAC(任务列表)".
使用配额编辑器创建一个临时文件,对于在文件系统的根目录中包含quotas文件的每个已挂载的UFS文件系统,该临时文件都包含一行配额信息.
#edquotausername其中,username是要为其设置配额的用户.
将1KB磁盘块的数量(软限制和硬限制)更改为针对每个文件系统指定的配额.
将inode的数量(软限制和硬限制)从缺省值0更改为针对每个文件系统指定的配额.
验证用户的UFS配额.
#quota-vusername-v在存在配额的所有已挂载文件系统中显示用户的配额信息.
username指定要查看配额限制的用户名.
设置一个用户的UFS配额以下示例显示了edquota在某个系统中打开的临时文件的内容,在该系统中,/files是根目录中包含quotas文件的唯一已挂载文件系统.
fs/filesblocks(soft=0,hard=0)inodes(soft=0,hard=0)另请参见12345示例7–2设置UFS配额(任务图)第7章管理UFS配额(任务)91以下示例显示了设置配额后临时文件中的同一行.
fs/filesblocks(soft=50,hard=60)inodes(soft=90,hard=100)如何设置多个用户的UFS配额成为超级用户或同等角色.
角色包含授权和具有一定权限的命令.
有关角色的更多信息,请参见《系统管理指南:安全性服务》中的"配置RBAC(任务列表)".
使用配额编辑器将已为样例用户建立的配额应用到您指定的其他用户.

#edquota-pprototype-userusername.
.
.
prototype-user已为其设置了配额的帐户的用户名.
username.
.
.
指定其他帐户的一个或多个用户名.
通过以空格分隔每个用户名来指定多个用户名.
设置多个用户的样例UFS配额以下示例说明如何将为用户bob建立的配额应用到用户mary和john.
#edquota-pbobmaryjohn如何检查UFS配额一致性重新引导系统时会自动运行quotacheck命令.
通常不需要在具有配额的空文件系统中运行quotacheck命令.
但是,如果要在包含现有文件的文件系统中设置配额,则需要运行quotacheck命令,以使配额数据库与文件系统中已存在的文件或inode同步.
此外应谨记,在大型文件系统中运行quotacheck命令会非常耗时.
注–为确保磁盘数据的准确性,在手动运行quotacheck命令时,检查的文件系统应处于停顿状态.
成为超级用户或同等角色.
角色包含授权和具有一定权限的命令.
有关角色的更多信息,请参见《系统管理指南:安全性服务》中的"配置RBAC(任务列表)".
对UFS文件系统运行一致性检查.
#quotacheck[-va]filesystem12示例7–312设置UFS配额(任务图)系统管理指南:高级管理2010年9月92-v(可选)确定每个用户在特定文件系统中的磁盘配额.
-a检查/etc/vfstab文件中包含rq项的所有文件系统.
filesystem指定要检查的文件系统.
有关更多信息,请参见quotacheck(1M)手册页.
检查UFS配额一致性以下示例说明如何检查/dev/rdsk/c0t0d0s7磁盘分片中/export/home文件系统的配额.
/export/home文件系统是/etc/vfstab文件中具有rq项的唯一文件系统.
#quotacheck-va***Checkingquotasfor/dev/rdsk/c0t0d0s7(/export/home)如何启用UFS配额成为超级用户或同等角色.
角色包含授权和具有一定权限的命令.
有关角色的更多信息,请参见《系统管理指南:安全性服务》中的"配置RBAC(任务列表)".
启用文件系统配额.
#quotaon[-v]-afilesystem.
.
.
-v启用配额后为每个文件系统显示一条消息.
-a为在/etc/vfstab文件中包含rq项的所有文件系统启用配额.
filesystem.
.
.
为指定的一个或多个文件系统启用配额.
指定多个文件系统时,需要用空格来分隔每个文件系统的名称.
启用UFS配额以下示例说明如何为/dev/dsk/c0t4d0s7和/dev/dsk/c0t3d0s7磁盘分片上的文件系统启用配额.
#quotaon-v/dev/dsk/c0t4d0s7/dev/dsk/c0t3d0s7/dev/dsk/c0t4d0s7:quotasturnedon/dev/dsk/c0t3d0s7:quotasturnedon示例7–412示例7–5设置UFS配额(任务图)第7章管理UFS配额(任务)93维护UFS配额(任务图)任务说明参考检查超过的UFS配额.
使用quota命令显示已激活UFS配额的文件系统中各用户的UFS配额和磁盘使用情况.
第94页中的"如何检查超过的UFS配额"检查文件系统中的UFS配额.
使用repquota命令显示一个或多个文件系统中所有用户的UFS配额和磁盘使用情况.
第95页中的"如何检查文件系统中的UFS配额"更改软限制缺省值.
使用edquota命令更改用户可以超过其磁盘空间配额或inode配额的时间长度.
第97页中的"如何更改软限制缺省值"更改用户的UFS配额.
使用配额编辑器edquota更改单个用户的配额.
第98页中的"如何更改用户的UFS配额"禁用用户的UFS配额.
使用配额编辑器edquota为单个用户禁用配额.
第99页中的"如何禁用用户的UFS配额"禁用UFS配额.
使用quotaoff命令禁用UFS配额.
第100页中的"如何禁用UFS配额"检查UFS配额设置并启用UFS磁盘配额和inode配额后,即可检查是否有用户超过了其配额.
此外,还可以检查整个文件系统的配额信息.

下表介绍了用于检查配额的命令.
表7–2用于检查UFS配额的命令命令任务quota(1M)显示用户配额和当前磁盘使用情况,以及有关超过其配额的用户的信息repquota(1M)显示指定文件系统所拥有的配额、文件和空间量如何检查超过的UFS配额您可以使用quota命令显示已激活配额的文件系统中各用户的UFS配额和磁盘使用情况.
维护UFS配额(任务图)系统管理指南:高级管理2010年9月94成为超级用户或同等角色.
角色包含授权和具有一定权限的命令.
有关角色的更多信息,请参见《系统管理指南:安全性服务》中的"配置RBAC(任务列表)".
显示启用配额的已挂载文件系统的用户配额.
#quota[-v]username-v显示在具有配额的所有已挂载文件系统中的一个或多个用户的配额.
username用户帐户的登录名或UID.
检查超过的UFS配额以下示例显示由UID301标识的用户帐户有一个1KB的配额,但尚未使用任何磁盘空间.
#quota-v301Diskquotasforbob(uid301):Filesystemusagequotalimittimeleftfilesquotalimittimeleft/export/home012023Filesystem文件系统的挂载点.
usage当前的块使用情况.
quota软块限制.
limit硬块限制.
timeleft配额计时器中剩余的时间,以天为单位.
files当前的inode使用情况.
quota软inode限制.
limit硬inode限制.
timeleft配额计时器中剩余的时间,以天为单位.
如何检查文件系统中的UFS配额使用repquota命令显示一个或多个文件系统中所有用户的UFS配额和磁盘使用情况.
成为超级用户或同等角色.
角色包含授权和具有一定权限的命令.
有关角色的更多信息,请参见《系统管理指南:安全性服务》中的"配置RBAC(任务列表)".
12示例7–61检查UFS配额第7章管理UFS配额(任务)95显示一个或多个文件系统的所有UFS配额(即使未使用也显示).
#repquota[-v]-afilesystem-v报告所有用户的UFS配额,包括那些不占用资源的用户.
-a报告所有文件系统.
filesystem报告指定的文件系统.
检查文件系统中的UFS配额以下示例显示在仅对一个文件系统(/export/home)启用配额的系统中repquota命令的输出.
#repquota-va/dev/dsk/c0t3d0s7(/export/home):BlocklimitsFilelimitsUserusedsofthardtimeleftusedsofthardtimeleft#301--012.
0days023#341--5750607.
0days290100Blocklimits定义used当前的块使用情况.
soft软块限制.
hard硬块限制.
timeleft配额计时器中剩余的时间,以天为单位.
Filelimits是文件限制的定义.
used当前的inode使用情况.
soft软inode限制.
hard硬inode限制.
timeleft配额计时器中剩余的时间,以天为单位.
更改和删除UFS配额您可以更改配额,以调整用户可以占用的磁盘空间量或inode数量.
还可以根据需要,为各用户或从整个文件系统中删除配额.
下表介绍了用于更改配额或删除配额的命令.
2示例7–7更改和删除UFS配额系统管理指南:高级管理2010年9月96表7–3用于更改和删除UFS配额的命令命令手册页说明edquotaedquota(1M)更改每个用户的inode数量或磁盘空间量的硬限制和软限制.
此外,还要更改具有配额的每个文件系统的软限制.
quotaoffquotaon(1M)禁用指定文件系统的配额.
如何更改软限制缺省值缺省情况下,用户可以超过其UFS配额软时间限制一周.
因此,在重复违反磁盘空间配额或inode配额软时间限制一周后,系统将禁止用户使用更多的inode或磁盘块.
使用edquota命令可以更改用户可超过其磁盘空间配额或inode配额的时间长度.
成为超级用户或同等角色.
角色包含授权和具有一定权限的命令.
有关角色的更多信息,请参见《系统管理指南:安全性服务》中的"配置RBAC(任务列表)".
使用配额编辑器创建包含软时间限制的临时文件.
#edquota-t其中,-t选项指定为每个文件系统编辑软时间限制.
将时间限制从0(缺省值)更改为指定的时间限制.
因此,可使用数字和关键字month、week、day、hour、min或sec.
注–此过程不会影响当前的配额违反者.
更改软限制缺省值以下示例显示了edquota命令在某一系统(其中/export/home是唯一具有配额的已挂载文件系统)中打开的临时文件的内容.
缺省值0表示使用的缺省时间限制为一周.
fs/export/homeblockstimelimit=0(default),filestimelimit=0(default)以下示例显示了在将超过块配额的时间限制更改为2周之后的同一临时文件.
而且,超过文件数的时间限制已更改为16天.
fs/export/homeblockstimelimit=2weeks,filestimelimit=16days123示例7–8更改和删除UFS配额第7章管理UFS配额(任务)97如何更改用户的UFS配额成为超级用户或同等角色.
角色包含授权和具有一定权限的命令.
有关角色的更多信息,请参见《系统管理指南:安全性服务》中的"配置RBAC(任务列表)".
使用配额编辑器打开临时文件,对于在文件系统的根目录中具有quotas文件的每个已挂载文件系统,该文件都包含一行配额信息.
#edquotausername其中,username指定要更改其配额的用户名.
注意–可以将多个用户指定为edquota命令的参数.
但不显示此信息所属的用户.
为避免混乱,请仅指定一个用户名.
指定1KB磁盘块的数量(软限制和硬限制)和inode数量(软限制和硬限制).
验证是否已正确更改了用户的UFS配额.
#quota-vusername-v显示已启用配额的所有已挂载文件系统中的用户UFS配额信息.
username指定要检查其配额的用户名.
更改用户的UFS配额以下示例显示了由edquota命令打开的临时文件的内容.
在打开此临时文件的系统中,/files是在文件系统的根目录中包含quotas文件的唯一已挂载文件系统.
fs/filesblocks(soft=0,hard=0)inodes(soft=0,hard=0)以下输出显示了更改配额后的同一临时文件.
fs/filesblocks(soft=0,hard=500)inodes(soft=0,hard=100)验证是否已更改了硬UFS配额以下示例解释如何验证用户smith的硬配额已更改为500个1KB块和100个inode.
#quota-vsmithDiskquotasforsmith(uid12):Filesystemusagequotalimittimeleftfilesquotalimittimeleft/files10500101001234示例7–9示例7–10更改和删除UFS配额系统管理指南:高级管理2010年9月98如何禁用用户的UFS配额成为超级用户或同等角色.
角色包含授权和具有一定权限的命令.
有关角色的更多信息,请参见《系统管理指南:安全性服务》中的"配置RBAC(任务列表)".
使用配额编辑器创建一个临时文件,对于在顶层目录中包含quotas文件的每个已挂载文件系统,该临时文件都包含一行配额信息.
#edquotausername其中,username指定要禁用其配额的用户名.
注意–可以将多个用户指定为edquota命令的参数.
但不显示此信息所属的用户.
为避免混乱,请仅指定一个用户名.
将1KB磁盘块的数量(软限制和硬限制)更改为0.
将inode的数量(软限制和硬限制)更改为0.
注–确保将上述值更改为零.
请勿从文本文件中删除该行.
验证是否已禁用用户的UFS配额.
#quota-vusername-v显示已启用配额的所有已挂载文件系统中的用户UFS配额信息.
username指定要检查其UFS配额的用户名(UID).
禁用用户的UFS配额以下示例显示了由edquota命令在某一系统中打开的临时文件的内容,在该系统中,/files是在文件系统的根目录中包含配额文件的唯一已挂载文件系统.
fs/filesblocks(soft=50,hard=60)inodes(soft=90,hard=100)以下示例显示了禁用UFS配额后的同一临时文件.
fs/filesblocks(soft=0,hard=0)inodes(soft=0,hard=0)12345示例7–11更改和删除UFS配额第7章管理UFS配额(任务)99如何禁用UFS配额成为超级用户或同等角色.
角色包含授权和具有一定权限的命令.
有关角色的更多信息,请参见《系统管理指南:安全性服务》中的"配置RBAC(任务列表)".
禁用文件系统配额.
#quotaoff[-v]-afilesystem.
.
.
-v显示禁用UFS配额时每个文件系统中的消息.
-a禁用所有文件系统的UFS配额.
filesystem禁用指定的一个或多个文件系统的UFS配额.
指定多个文件系统时,需要用空格来分隔每个文件系统的名称.
禁用配额以下示例说明如何为/export/home文件系统禁用配额.
#quotaoff-v/export/home/export/home:quotasturnedoff12示例7–12更改和删除UFS配额系统管理指南:高级管理2010年9月100调度系统任务(任务)本章介绍如何使用crontab和at命令来调度例程或单个(一次)系统任务.
本章还说明如何使用以下文件来控制对上述命令的访问:cron.
denycron.
allowat.
deny有关与调度系统任务关联的过程信息,请参见以下内容:第101页中的"创建和编辑crontab文件(任务图)"第113页中的"使用at命令(任务图)"创建和编辑crontab文件(任务图)任务说明参考创建或编辑crontab文件.
使用crontab-e命令来创建或编辑crontab文件.
第106页中的"如何创建或编辑crontab文件"验证crontab文件是否存在.
使用ls-l命令验证/var/spool/cron/crontabs文件的内容.
第107页中的"如何验证crontab文件是否存在"显示crontab文件.
使用ls-l命令显示crontab文件.
第108页中的"如何显示crontab文件"删除crontab文件.
crontab文件设置时使用了受限权限.
使用crontab-r命令而不是rm命令删除crontab文件.
第109页中的"如何删除crontab文件"8第8章101任务说明参考拒绝crontab访问.
要拒绝用户对crontab命令的访问,请通过编辑/etc/cron.
d/cron.
deny文件将用户名添加到该文件中.
第110页中的"如何拒绝crontab命令访问"将crontab访问限制于指定的用户.
要允许用户访问crontab命令,请将用户名添加到/etc/cron.
d/cron.
allow文件中.
第111页中的"如何将crontab命令访问限制于指定的用户"自动执行系统任务的方法可以设置多个要自动执行的系统任务.
其中有些任务应该以固定间隔进行.
其他任务只需运行一次,可能是在晚间或周末等非高峰时间.
本节包含有关crontab和at这两个命令的概述信息,使用这两个命令可以调度要自动执行的例程任务.
crontab命令用于调度重复性任务.
at命令则用于调度只执行一次的任务.
下表概括说明了crontab和at命令,以及可用来控制对这些命令的访问的文件.
表8–1命令摘要:调度系统任务命令调度内容文件位置控制访问的文件crontab固定间隔的多个系统任务/var/spool/cron/crontabs/etc/cron.
d/cron.
allow和/etc/cron.
d/cron.
denyat单个系统任务/var/spool/cron/atjobs/etc/cron.
d/at.
deny也可以使用SolarisManagementConsole的调度作业工具来调度例程任务.
有关使用和启动SolarisManagementConsole的信息,请参见《系统管理指南:基本管理》中的第2章"使用SolarisManagementConsole(任务)".
用于调度重复性作业:crontab可以使用crontab命令来调度例程系统管理任务,使其每日、每周或每月执行一次.
每日crontab系统管理任务可能包括以下内容:从临时目录中删除几天前的文件执行记帐摘要命令使用df和ps命令捕获系统快照执行每日安全监视运行系统备份自动执行系统任务的方法系统管理指南:高级管理2010年9月102每周crontab系统管理任务可能包括以下内容:重新生成catman数据库以供man-k命令使用运行fsck-n命令以列出任何磁盘问题每月crontab系统管理任务可能包括以下内容:列出在特定月份中未使用的文件生成每月记帐报告此外,用户还可以调度crontab命令以执行其他例程系统任务,例如发送提醒和删除备份文件.
有关调度crontab作业的逐步说明,请参见第106页中的"如何创建或编辑crontab文件".
用于调度单个作业:at通过at命令可以调度要在以后执行的作业.
该作业可由单个命令或脚本组成.
与crontab类似,使用at命令可以调度例程任务的自动执行.
但与crontab文件不同的是,at文件只执行一次任务.
然后,便从目录中删除这些文件.
因此,在运行将输出定向到独立文件中以供以后检查的单个命令或脚本时,at命令很有用.
提交at作业包括键入命令并按照at命令语法指定选项来调度执行作业的时间.
有关提交at作业的更多信息,请参见第113页中的"at命令的说明".
at命令在/var/spool/cron/atjobs目录中存储您运行的命令或脚本以及当前环境变量的副本.
at作业文件名是一个长数字,用于指定该文件在at队列中的位置,后跟.
a扩展名,例如793962000.
a.
cron守护进程在启动时检查at作业并侦听是否提交了新作业.
cron守护进程执行at作业后,将从atjobs目录中删除at作业的文件.
有关更多信息,请参见at(1)手册页.
有关调度at作业的逐步说明,请参见第114页中的"如何创建at作业".
调度重复性系统任务(cron)以下各节介绍如何创建、编辑、显示和删除crontab文件,以及如何控制对这些文件的访问.
调度重复性系统任务(cron)第8章调度系统任务(任务)103在crontab文件内cron守护进程会根据在每个crontab文件中找到的命令来调度系统任务.
crontab文件由命令组成,每个命令占据一行,这些命令将以固定间隔执行.
每行开头包含日期和时间信息,以告知cron守护进程何时执行命令.
例如,在SunOS软件安装期间将提供名为root的crontab文件.
该文件的内容包括以下命令行:103***/usr/sbin/logadm(1)153**0/usr/lib/fs/nfs/nfsfind(2)12x/usr/sbin/rtc]&&/usr/sbin/rtc-c>/dev/null2>&1(3)303x/usr/lib/gss/gsscred_clean]&&/usr/lib/gss/gsscred_clean(4)下面介绍了上述每个命令行的输出:第一行在每天凌晨3:10运行logadm命令.
第二行在每个星期日凌晨3:15执行nfsfind脚本.
第三行在每天凌晨2:10运行用于检查夏时制时间(并根据需要进行更正)的脚本.
如果没有RTC时区,也没有/etc/rtc_config文件,则此项不执行任何操作.
仅适用于x86–/usr/sbin/rtc脚本只能在基于x86的系统上运行.
第四行在每天凌晨3:30检查(并删除)通用安全服务表/etc/gss/gsscred_db中的重复项.
有关crontab文件中各行语法的更多信息,请参见第105页中的"crontab文件项的语法".
crontab文件存储在/var/spool/cron/crontabs目录中.
在SunOS软件安装期间,会提供包括root在内的若干个crontab文件.
请参见下表.
表8–2缺省crontab文件crontab文件功能adm记帐lp打印根一般系统功能和文件系统清除sys性能数据收集uucp一般uucp清除调度重复性系统任务(cron)系统管理指南:高级管理2010年9月104除了缺省的crontab文件之外,用户还可以创建crontab文件,以调度自己的系统任务.
其他crontab文件按用来创建它们的用户帐户名称(如bob、mary、smith或jones)命名.
要访问属于root或其他用户的crontab文件,需要具有超级用户权限.
后续各节介绍了说明如何创建、编辑、显示和删除crontab文件的过程.
cron守护进程处理调度的方法cron守护进程可管理crontab命令的自动调度.
cron守护进程将检查/var/spool/cron/crontab目录中是否存在crontab文件.
cron守护进程在启动时执行以下任务:检查新的crontab文件.
阅读文件中列出的执行时间.
在适当时间提交执行命令.
侦听来自crontab命令的有关更新的crontab文件的通知.
cron守护进程以几乎相同的方式来控制at文件的调度.
这些文件存储在/var/spool/cron/atjobs目录中.
cron守护进程还侦听来自crontab命令的有关已提交的at作业的通知.
crontab文件项的语法crontab文件由命令组成,每个命令占据一行,这些命令将按每个命令行的前五个字段指定的时间自动执行.
下表中介绍了这五个字段,它们以空格分隔.
表8–3crontab时间字段的可接受值时间字段值分钟0-59小时0-23月中某日1-31月份1-12星期中某日0-6(0=星期日)在crontab时间字段中使用特殊字符时请遵循以下规则:使用空格分隔每个字段.
使用逗号分隔多个值.
调度重复性系统任务(cron)第8章调度系统任务(任务)105使用连字符指定某一范围的值.
使用星号作为通配符来包括所有可能值.
在一行开头使用注释标记(#)来表示注释或空白行.
例如,以下crontab命令项将于每月第一天和第十五天下午4点在用户的控制台窗口中显示提醒.
0161,15**echoTimesheetsDue>/dev/consolecrontab文件中的每个命令必须只占据一行,即使这一行非常长也是如此.
crontab文件不识别额外的回车.
有关crontab项和命令选项的更多详细信息,请参阅crontab(1)手册页.
创建和编辑crontab文件创建crontab文件的最简单方法是使用crontab-e命令.
此命令会调用已为系统环境设置的文本编辑器.
系统环境的缺省编辑器在EDITOR环境变量中定义.
如果尚未设置此变量,crontab命令将使用缺省编辑器ed.
最好选择您熟悉的编辑器.
以下示例说明如何确定是否已定义编辑器,以及如何将vi设置为缺省值.
$which$EDITOR$$EDITOR=vi$exportEDITOR创建crontab文件时,该文件会自动放入/var/spool/cron/crontabs目录,并以您的用户名命名.
如果具有超级用户权限,则可为其他用户或root创建或编辑crontab文件.
如何创建或编辑crontab文件如果要创建或编辑属于root或其他用户的crontab文件,您必须成为超级用户或同等角色.
角色包含授权和具有一定权限的命令.
有关角色的更多信息,请参见《系统管理指南:安全性服务》中的"配置RBAC(任务列表)".
无需成为超级用户,便可编辑自己的crontab文件.
创建新的crontab文件,或编辑现有文件.
$crontab-e[username]其中,username指定您要为其创建或编辑crontab文件的用户帐户的名称.
无需具有超级用户权限便可创建自己的crontab文件,但如果要为root或其他用户创建或编辑crontab文件,则必须具有超级用户权限.
开始之前1创建和编辑crontab文件系统管理指南:高级管理2010年9月106注意–如果意外键入了不带选项的crontab命令,请按下编辑器的中断字符.
使用此字符将退出而不会保存更改.
如果保存了更改并退出文件,现有的crontab文件将被空文件覆写.
向crontab文件中添加命令行.
按照第105页中的"crontab文件项的语法"中所述的语法操作.
将crontab文件放入/var/spool/cron/crontabs目录.
验证crontab文件更改.
#crontab-l[username]创建crontab文件以下示例说明如何为其他用户创建crontab文件.
#crontab-ejones添加到新crontab文件中的以下命令项将在每个星期日的凌晨1:00自动删除用户起始目录中的所有日志文件.
由于该命令项不重定向输出,因此将重定向字符添加到*.
log之后的命令行中.
这样可以确保正常执行命令.
#Thiscommandhelpscleanupuseraccounts.
10**0rm/home/jones/*.
log>/dev/null2>&1如何验证crontab文件是否存在要验证用户的crontab文件是否存在,请在/var/spool/cron/crontabs目录中使用ls-l命令.
例如,以下输出说明用户jones和smith的crontab文件存在.
$ls-l/var/spool/cron/crontabs-rw-r--r--1rootsys190Feb2616:23adm-rw-------1rootstaff225Mar19:19jones-rw-r--r--1rootroot1063Feb2616:23lp-rw-r--r--1rootsys441Feb2616:25root-rw-------1rootstaff60Mar19:15smith-rw-r--r--1rootsys308Feb2616:23sys使用crontab-l命令验证用户的crontab文件的内容,如第108页中的"如何显示crontab文件"中所述.
23示例8–1创建和编辑crontab文件第8章调度系统任务(任务)107显示crontab文件crontab-l命令显示crontab文件内容的方式与cat命令显示其他类型文件内容的方式非常相似.
无需转到/var/spool/cron/crontabs目录(crontab文件所在的目录),便可使用此命令.
缺省情况下,crontab-l命令显示您自己的crontab文件.
要显示属于其他用户的crontab文件,您必须是超级用户.
如何显示crontab文件成为超级用户或同等角色,以显示属于root或其他用户的crontab文件.
无需成为超级用户或同等角色,即可显示您自己的crontab文件.
显示crontab文件.
$crontab-l[username]其中,username指定了要为其显示crontab文件的用户帐户的名称.
显示其他用户的crontab文件需要超级用户权限.
注意–如果意外键入了无选项的crontab命令,请按下编辑器的中断字符.
使用此字符将退出而不会保存更改.
如果保存了更改并退出文件,现有的crontab文件将被空文件覆写.
显示crontab文件此示例说明如何使用crontab-l命令来显示用户的缺省crontab文件的内容.
$crontab-l1313***chmodg+w/home1/documents/*.
book>/dev/null2>&1显示缺省的rootcrontab文件此示例说明如何显示缺省的rootcrontab文件.
$suPassword:SunMicrosystemsInc.
SunOS5.
10s10_51May2004#crontab-l#ident"@(#)root1.
1998/07/06SMI"/*SVr4.
01.
1.
3.
1*/##Therootcrontabshouldbeusedtoperformaccountingdatacollection.
##103***/usr/sbin/logadm153**0/usr/lib/fs/nfs/nfsfind开始之前示例8–2示例8–3显示crontab文件系统管理指南:高级管理2010年9月108303x/usr/lib/gss/gsscred_clean]&&/usr/lib/gss/gsscred_clean#103***/usr/lib/krb5/kprop_script___slave_kdcs___显示其他用户的crontab文件此示例说明如何显示属于其他用户的crontab文件.
$suPassword:SunMicrosystemsInc.
SunOS5.
10s10_51May2004#crontab-ljones1313***cp/home/jones/work_files/usr/backup/.
>/dev/null2>&1删除crontab文件缺省情况下,会设置crontab文件保护,以防止使用rm命令意外删除crontab文件.
请改用crontab-r命令删除crontab文件.
缺省情况下,crontab-r命令会删除您自己的crontab文件.
无需转到/var/spool/cron/crontabs目录(crontab文件所在的目录),便可使用此命令.
如何删除crontab文件成为超级用户或同等角色,以删除属于root或其他用户的crontab文件.
角色包含授权和具有一定权限的命令.
无需成为超级用户或同等角色,即可删除您自己的crontab文件.
删除crontab文件.
$crontab-r[username]其中username指定要为其删除crontab文件的用户帐户的名称.
为其他用户删除crontab文件需要超级用户权限.
注意–如果意外键入了无选项的crontab命令,请按下编辑器的中断字符.
使用此字符将退出而不会保存更改.
如果保存了更改并退出文件,现有的crontab文件将被空文件覆写.
验证是否已删除crontab文件.
#ls/var/spool/cron/crontabs删除crontab文件以下示例说明用户smith如何使用crontab-r命令删除他的crontab文件.
示例8–4开始之前12示例8–5删除crontab文件第8章调度系统任务(任务)109$ls/var/spool/cron/crontabsadmjoneslprootsmithsysuucp$crontab-r$ls/var/spool/cron/crontabsadmjoneslprootsysuucp控制对crontab命令的访问可以使用/etc/cron.
d目录中的以下两个文件来控制对crontab命令的访问:cron.
deny和cron.
allow.
这些文件只允许指定的用户执行crontab命令任务,例如创建、编辑、显示或删除自己的crontab文件.
cron.
deny和cron.
allow文件包含用户名的列表,每行一个用户名.
这些访问控制文件按以下方式协同工作:如果存在cron.
allow,则只有此文件中列出的用户可以创建、编辑、显示或删除crontab文件.
如果不存在cron.
allow,则所有用户都可以提交crontab文件(cron.
deny中列出的用户除外).
如果cron.
allow和cron.
deny都不存在,则运行crontab命令需要超级用户权限.
编辑或创建cron.
deny和cron.
allow文件需要超级用户权限.
在SunOS软件安装期间创建的cron.
deny文件包含以下用户名:$cat/etc/cron.
d/cron.
denydaemonbinsmtpnuucplistennobodynoaccess缺省cron.
deny文件中的用户名都不能访问crontab命令.
您可以编辑此文件,以添加被拒绝访问crontab命令的其他用户名.
未提供缺省的cron.
allow文件.
因此,在安装OracleSolaris软件后,所有用户(缺省cron.
deny文件中列出的用户除外)都可以访问crontab命令.
如果创建cron.
allow文件,则只有这些用户可以访问crontab命令.
如何拒绝crontab命令访问成为超级用户或同等角色.
角色包含授权和具有一定权限的命令.
有关角色的更多信息,请参见《系统管理指南:安全性服务》中的"配置RBAC(任务列表)".
1控制对crontab命令的访问系统管理指南:高级管理2010年9月110编辑/etc/cron.
d/cron.
deny文件并添加用户名,每个用户占据一行.
将拒绝访问crontab命令的用户包括在内.
daemonbinsmtpnuucplistennobodynoaccessusername1username2username3.
.
.
验证/etc/cron.
d/cron.
deny文件是否包含新项.
#cat/etc/cron.
d/cron.
denydaemonbinnuucplistennobodynoaccess如何将crontab命令访问限制于指定的用户成为超级用户或同等角色.
角色包含授权和具有一定权限的命令.
有关角色的更多信息,请参见《系统管理指南:安全性服务》中的"配置RBAC(任务列表)".
创建/etc/cron.
d/cron.
allow文件.
将root用户名添加到cron.
allow文件中.
如果未将root添加到该文件中,则会拒绝超级用户访问crontab命令.
添加用户名,每行一个用户名.
将允许使用crontab命令的用户包括在内.
rootusername1username2username3.
.
.
231234控制对crontab命令的访问第8章调度系统任务(任务)111将crontab命令访问限制于指定的用户以下示例显示一个cron.
deny文件,该文件用于禁止用户名jones、temp和visitor访问crontab命令.
$cat/etc/cron.
d/cron.
denydaemonbinsmtpnuucplistennobodynoaccessjonestempvisitor以下示例显示一个cron.
allow文件.
用户root、jones、lp和smith是仅有的可以访问crontab命令的用户.
$cat/etc/cron.
d/cron.
allowrootjoneslpsmith如何验证受限的crontab命令访问要验证特定用户是否可以访问crontab命令,请在使用该用户帐户登录后执行crontab-l命令.
$crontab-l如果用户可以访问crontab命令并已创建crontab文件,则会显示该文件.
否则,如果用户可以访问crontab命令但不存在crontab文件,则会显示与以下消息类似的消息:crontab:can'topenyourcrontabfile此用户已列在cron.
allow文件中(如果存在该文件),或者该用户未列在cron.
deny文件中.
如果用户不能访问crontab命令,则无论是否存在以前的crontab文件,都会显示以下消息:crontab:youarenotauthorizedtousecron.
Sorry.
此消息表明,该用户未列在cron.
allow文件(如果该文件存在)中,或者该用户已列在cron.
deny文件中.
示例8–6控制对crontab命令的访问系统管理指南:高级管理2010年9月112使用at命令(任务图)任务说明参考创建at作业.
使用at命令执行以下操作:从命令行启动at实用程序.
键入要执行的命令或脚本,每行一个.
退出at实用程序并保存作业.
第114页中的"如何创建at作业"显示at队列.
使用atq命令显示at队列.
第115页中的"如何显示at队列"验证at作业.
使用atq命令确认属于特定用户的at作业已提交至队列.
第115页中的"如何验证at作业"显示at作业.
使用at-l[job-id]显示已提交至队列的at作业.
第116页中的"如何显示at作业"删除at作业.
使用at-r[job-id]命令从队列中删除at作业.
第116页中的"如何删除at作业"拒绝访问at命令.
要拒绝用户访问at命令,请编辑/etc/cron.
d/at.
deny文件.
第117页中的"如何拒绝对at命令的访问"调度单个系统任务(at)以下各节介绍如何使用at命令来执行下列任务:调度作业(命令和脚本)以供以后执行如何显示和删除这些作业如何控制对at命令的访问缺省情况下,用户可以创建、显示和删除自己的at作业文件.
要访问属于root或其他用户的at文件,您必须具有超级用户权限.
提交at作业时,会为该作业分配作业标识号和.
a扩展名.
此指定将成为该作业的文件名,以及其队列编号.
at命令的说明提交at作业文件需执行以下步骤:1.
调用at实用程序并指定命令执行时间.
2.
键入以后要执行的命令或脚本.
调度单个系统任务(at)第8章调度系统任务(任务)113注–如果此命令或脚本的输出很重要,请确保将输出定向到一个文件中,以便以后检查.
例如,以下at作业将在7月的最后一天接近午夜时删除用户帐户smith的core文件.
$at11:45pmJuly31at>rm/home/smith/*core*at>PressControl-dcommandswillbeexecutedusing/bin/cshjob933486300.
aatTueJul3123:45:002004控制对at命令的访问您可以设置一个文件来控制对at命令的访问,只允许指定的用户创建、删除或显示有关at作业的队列信息.
控制对at命令的访问的文件/etc/cron.
d/at.
deny由用户名列表构成,每个用户名占据一行.
此文件中列出的用户不能访问at命令.
在SunOS软件安装期间创建的at.
deny文件包含以下用户名:daemonbinsmtpnuucplistennobodynoaccess使用超级用户权限,您可以编辑at.
deny文件,以添加要限制其对at命令访问的其他用户名.
如何创建at作业启动at实用程序,指定所需的作业执行时间.
$at[-m]time[date]-m在作业完成后发送邮件.
time指定要调度作业的小时.
如果不按24小时制指定小时,请添加am或pm.
可接受的关键字包括midnight、noon和now.
分钟是可选的选项.
date指定月份的前三个或更多字母、一周中的某日或关键字today或tomorrow.
在at提示符下,键入要执行的命令或脚本,每行一个.
通过在每行结尾处按回车键,可以键入多个命令.
12调度单个系统任务(at)系统管理指南:高级管理2010年9月114按Ctrl-D组合键,以退出at实用程序并保存at作业.
at作业将被分配一个队列编号,它也是该作业的文件名.
退出at实用程序时将显示该编号.
创建at作业以下示例显示了用户jones创建的at作业,该作业用于在下午7:30删除其备份文件.
由于她使用了-m选项,因此她会在该作业完成后收到电子邮件.
$at-m1930at>rm/home/jones/*.
backupat>PressControl-Djob897355800.
aatThuJul1219:30:002004她收到一封确认已执行at作业的电子邮件.
Your"at"job"rm/home/jones/*.
backup"completed.
以下示例说明jones如何调度在星期六凌晨4:00执行的大型at作业.
该作业输出被定向到名为big.
file的文件中.
$at4amSaturdayat>sort-r/usr/dict/words>/export/home/jones/big.
file如何显示at队列要检查在at队列中等待的作业,请使用atq命令.
$atq此命令可以显示您已创建的at作业的状态信息.
如何验证at作业要验证您是否已创建了at作业,请使用atq命令.
在以下示例中,atq命令确认已将属于jones的at作业提交至队列.
$atqRankExecutionDateOwnerJobQueueJobName1stJul12,200419:30jones897355800.
aastdin2ndJul14,200423:45jones897543900.
aastdin3rdJul17,200404:00jones897732000.
aastdin3示例8–7调度单个系统任务(at)第8章调度系统任务(任务)115如何显示at作业要显示有关at作业的执行时间信息,请使用at-l命令.
$at-l[job-id]其中,-ljob-id选项表示要显示其状态的作业的标识号.
显示at作业以下示例显示at-l命令的输出,该输出提供有关用户已提交的所有作业的状态信息.
$at-l897543900.
aSatJul1423:45:002004897355800.
aThuJul1219:30:002004897732000.
aTueJul1704:00:002004以下示例显示使用at-l命令指定单个作业时所显示的输出.
$at-l897732000.
a897732000.
aTueJul1704:00:002004如何删除at作业成为超级用户或同等角色,以删除属于root或其他用户的at作业.
角色包含授权和具有一定权限的命令.
无需成为超级用户或同等角色,便可删除自己的at作业.
在作业执行之前从队列中删除at作业.
$at-r[job-id]其中,-rjob-id选项指定要删除的作业的标识号.
使用at-l(或atq)命令,验证是否已删除at作业.
at-l命令显示at队列中剩余的作业.
不应显示已指定标识号的作业.
$at-l[job-id]删除at作业在以下示例中,用户要删除计划在7月17日凌晨4点执行的at作业.
首先,该用户显示at队列,以找到作业标识号.
然后,用户从at队列中删除此作业.
最后,该用户验证是否已从队列中删除此作业.
$at-l897543900.
aSatJul1423:45:002003示例8–8开始之前12示例8–9调度单个系统任务(at)系统管理指南:高级管理2010年9月116897355800.
aThuJul1219:30:002003897732000.
aTueJul1704:00:002003$at-r897732000.
a$at-l897732000.
aat:858142000.
a:Nosuchfileordirectory如何拒绝对at命令的访问成为超级用户或同等角色.
角色包含授权和具有一定权限的命令.
有关角色的更多信息,请参见《系统管理指南:安全性服务》中的"配置RBAC(任务列表)".
编辑/etc/cron.
d/at.
deny文件并添加要禁止其使用at命令的用户名,每行一个用户名.
daemonbinsmtpnuucplistennobodynoaccessusername1username2username3.
.
.
拒绝at访问以下示例显示了一个at.
deny文件,该文件已被编辑过,因此用户smith和jones无法访问at命令.
$catat.
denydaemonbinsmtpnuucplistennobodynoaccessjonessmith12示例8–10调度单个系统任务(at)第8章调度系统任务(任务)117如何验证at命令访问已被拒绝要验证是否已将用户名正确添加到/etc/cron.
d/at.
deny文件,请在以该用户身份登录后使用at-l命令.
如果用户smith无法访问at命令,将显示以下消息:#susmithPassword:$at-lat:youarenotauthorizedtouseat.
Sorry.
类似地,如果该用户尝试提交at作业,则将显示以下消息:$at2:30pmat:youarenotauthorizedtouseat.
Sorry.
此消息确认该用户已列在at.
deny文件中.
如果允许访问at命令,则at-l命令不会返回任何内容.
调度单个系统任务(at)系统管理指南:高级管理2010年9月118管理系统记帐(任务)本章介绍如何设置和维护系统记帐.
以下是本章中概述信息的列表.
第120页中的"什么是系统记帐"第124页中的"设置系统记帐"有关使用扩展记帐的信息,请参见《系统管理指南:OracleSolarisContainers-资源管理和OracleSolarisZones》中的第4章"扩展记帐(概述)".
有关与系统记帐相关的逐步过程的信息,请参见第124页中的"系统记帐(任务图)".
有关各种系统记帐报告的参考信息,请参见第10章,系统记帐(参考).
系统记帐方面的新增功能本节介绍OracleSolaris发行版在系统记帐方面新增或更改的功能.
有关新增功能的完整列表以及OracleSolaris发行版的说明,请参见《OracleSolaris109/10新增功能》.
OracleSolaris进程记帐和统计信息改进OracleSolaris10:对平均负荷的内部实现cpuusr/sys/idle以及记帐功能进行了更改.
微状态记帐取代了原有的记帐机制,并在缺省情况下一直启用.
因此,您可能会注意到进程使用情况和计时统计信息与以往稍有不同.
改用微状态记帐,可针对用户进程及其在各个状态上所花费的时间来提供更为准确的信息.
此外,这些信息还用于从/proc文件系统中生成更精确的负荷平均值和统计信息.
有关更多信息,请参见proc(4)手册页.
9第9章119什么是系统记帐OracleSolarisOS中的系统记帐软件是一组程序,用于收集和记录有关用户连接时间、进程占用的CPU时间和磁盘使用情况的数据.
收集到此数据后,即可生成报告并针对系统使用情况收取费用.
可以使用每日或每月系统记帐.
或者,也可以按用户跟踪磁盘使用情况.
使用记帐程序可以执行以下任务:监视系统使用情况查找并更正性能问题维护系统安全在设置系统记帐程序后,这些程序大部分时间会自行运行.
系统记帐的工作原理设置自动记帐时,先要将记帐启动脚本放入根的crontab文件中.
然后,cron命令即可自动启动该记帐启动脚本.
以下概述介绍了系统记帐过程.
1.
在系统启动和关闭期间,会在记帐文件中收集有关系统使用(如用户登录、运行进程和数据存储)的原始数据.
2.
/usr/lib/acct/runacct脚本会定期(通常一天一次)处理各种记帐文件并生成累积概要文件和每日记帐报告.
然后,/usr/lib/acct/prdaily脚本将打印每日报告.
有关runacct脚本的更多信息,请参见第133页中的"runacct脚本".
3.
可以通过执行monacct脚本每月处理并打印一次累积runacct摘要文件.
monacct脚本生成的摘要报告提供了一种按月或按其他财务周期对用户计费的有效方法.

系统记帐组件系统记帐软件提供了可将数据组织为摘要文件和报告的C语言程序和Shell脚本.
这些程序驻留在/usr/lib/acct目录中.
记帐报告驻留在/var/adm/acct目录中.
每日记帐有助于执行四种类型的审计:连接记帐进程记帐磁盘记帐费用计算什么是系统记帐系统管理指南:高级管理2010年9月120连接记帐通过连接记帐可以确定以下信息:用户已登录的时间tty线的使用情况系统重新引导的次数已关闭和打开记帐软件的次数要提供有关连接会话的记帐信息,系统需要存储以下数据:时间调整的记录引导时间关闭和打开记帐软件的次数运行级的更改用户进程(login进程和init进程)的创建进程的终止这些记录是从系统程序(如date、init、login、ttymon和acctwtmp)的输出中生成的.
这些记录存储在/var/adm/wtmpx文件中.
wtmpx文件中的项可以包含以下信息:登录名称设备名称进程ID项类型指明项创建时间的时间标记进程记帐通过进程记帐可以跟踪有关系统中运行的每个进程的以下数据:使用进程的用户的用户ID和组ID进程的启动时间和已用时间进程的CPU时间(用户时间和系统时间)进程使用的内存量进程运行的命令控制进程的tty每次进程终止时,exit程序便会收集此信息并将其写入/var/adm/pacct文件.
磁盘记帐通过磁盘记帐可以收集有关每个用户在磁盘中的文件的以下数据并设置数据格式:用户的用户名和用户ID用户的文件占用的块数什么是系统记帐第9章管理系统记帐(任务)121/usr/lib/acct/dodiskshell脚本以一定的时间间隔收集上述数据,该时间间隔是由您向/var/spool/cron/crontabs/root文件中添加的项确定的.
反过来,dodisk脚本会调用acctdisk和acctdusg命令.
这些命令按登录名称收集磁盘使用情况的信息.
注意–通过运行dodisk脚本收集的信息存储在/var/adm/acct/nite/disktacct文件中.
下次运行dodisk脚本时将覆写此信息.
因此,请避免在同一天中两次运行dodisk脚本.
对于随机写入的文件,acctdusg命令计算的磁盘占用量可能比实际多,这会在文件中形成空洞.
出现这种问题是由于acctdusg命令在确定文件大小时未读取文件的间接块.
更确切地说,acctdusg文件是通过检查文件inode中的当前文件大小值来确定文件大小的.
费用计算chargefee实用程序在/var/adm/fee文件中存储为用户提供的特殊服务的费用.
例如,特殊服务可以是文件恢复.
文件中的每项都由用户登录名、用户ID和费用组成.
runacct每天都会检查此文件,并将新项合并到记帐记录中.
有关运行chargefee脚本以对用户计费的说明,请参见第127页中的"如何对用户计费".
每日记帐的工作原理以下是每日记帐的工作原理的分步概要说明:1.
将系统切换到多用户模式时,执行/usr/lib/acct/startup程序.
startup程序会执行多个调用每日记帐的其他程序.
2.
acctwtmp程序向/var/adm/wtmpx文件中添加一条"引导"记录.
在此记录中,系统名显示为wtmpx记录中的用户名.
下表汇总了原始记帐数据的收集方式及存储位置.
/var/adm中的文件存储的信息写入程序格式wtmpx连接会话login、init二进制更改date二进制重新引导acctwtmp二进制关闭shutacct二进制pacctn进程Kernel(当进程结束时)二进制turnacctswitch(当原有文件达到500块时创建一个新文件)二进制fee特殊费用chargefeeASCII什么是系统记帐系统管理指南:高级管理2010年9月122/var/adm中的文件存储的信息写入程序格式acct/nite/disktacct使用的磁盘空间dodisk二进制3.
使用-on选项调用的turnacct脚本开始进程记帐.
具体来讲,就是turnacct脚本使用/var/adm/pacct参数执行accton程序.
4.
删除Shell脚本会"清除"由runacct脚本留在sum目录中的已保存的pacct和wtmpx文件.
5.
login和init程序通过向/var/adm/wtmpx文件中写入记录来记录连接会话.
日期更改(使用带参数的日期)也会写入/var/adm/wtmpx文件中.
使用acctwtmp命令进行重新引导和关闭也会记录到/var/adm/wtmpx文件中.
6.
进程结束时,内核会使用acct.
h格式在/var/adm/pacct文件中为每个进程写入一条记录.
cron命令每小时执行一次ckpacct脚本,以检查/var/adm/pacct文件的大小.
如果文件大小超出了500块(缺省值),则会执行turnacctswitch命令.
(程序将pacct文件移至pacctn文件并创建一个新文件.
)如果由于处理这些记录时出现故障而尝试重新启动runacct脚本,则有多个小型pacct文件的优点是显而易见的.
7.
cron命令每晚都会执行runacct脚本.
runacct脚本会对记帐文件进行处理,从而按用户名生成命令概要和使用情况概要.
将处理以下记帐文件:/var/adm/pacctn、/var/adm/wtmpx、/var/adm/fee和/var/adm/acct/nite/disktacct.
8.
runacct脚本每天执行一次/usr/lib/acct/prdaily脚本,以便将每日记帐信息写入/var/adm/acct/sum/rprtMMDD文件中.
9.
monacct脚本应每月执行一次(或以您确定的时间间隔执行,例如在每个财务周期结束时执行).
monacct脚本会基于sum目录中存储的数据创建一个报告,该目录每天通过runacct脚本更新一次.
创建报告后,monacct脚本将"清除"sum目录,以便为新的runacct数据准备目录文件.
系统关闭时执行的操作如果使用shutdown命令关闭系统,则会自动执行shutacct脚本.
shutacct脚本会向/var/adm/wtmpx文件中写入一条原因记录并关闭进程记帐.
什么是系统记帐第9章管理系统记帐(任务)123系统记帐(任务图)任务说明参考设置系统记帐.
通过执行以下任务来设置系统记帐:创建/etc/rc0.
d/K22acct和/etc/rc2.
d/S22acct文件.
修改/var/spool/cron/crontabs/adm和/var/spool/cron/crontabs/rootcrontab文件.
第125页中的"如何设置系统记帐"对用户计费.
运行/usr/lib/acct/chargefeeusernameamount命令.
第127页中的"如何对用户计费"修复损坏的wtmpx文件.
将wtmpx文件从二进制转换为ASCII格式.
第128页中的"如何修复损坏的wtmpx文件"修复tacct错误.
运行prtacct脚本以检查/var/adm/acct/sum/tacctprev文件.
然后,修补最新的/var/adm/acct/sum/tacctMMDD文件.
您将需要重新创建/var/adm/acct/sum/tacct文件.
第129页中的"如何修复tacct错误"重新启动runacct脚本.
删除lastdate文件以及任何锁定文件.
然后,手动重新启动runacct脚本.
第130页中的"如何重新启动runacct脚本"临时禁用系统记帐.
编辑admcrontab文件,以阻止ckpacct、runacct和monacct程序运行.
第130页中的"如何暂时停止系统记帐"永久禁用系统记帐.
删除adm和crontab文件中用于ckpacct、runacct和monacct程序的项.
第131页中的"如何永久禁用系统记帐"设置系统记帐可将系统记帐设置为在系统处于多用户模式时运行(运行级2).
通常,此任务涉及以下步骤:1.
创建/etc/rc0.
d/K22acct和/etc/rc2.
d/S22acct启动脚本2.
修改/var/spool/cron/crontabs/adm和/var/spool/cron/crontabs/rootcrontab文件下表介绍了缺省记帐脚本.
系统记帐(任务图)系统管理指南:高级管理2010年9月124表9–1缺省记帐脚本目的记帐脚本手册页运行频率检查/usr/adm/pacct日志文件的大小并确保该文件不会太大.
ckpacctacctsh(1M)定期处理连接、磁盘和费用记帐的信息.
如果不想执行某些记帐功能,则可从此脚本中删除相应命令.
runacctrunacct(1M)每日每月生成一次财务记帐摘要报告.
您可以确定此脚本的运行频率.
如果不想使用某些记帐功能,则可从此脚本中删除相应命令.
monacctacctsh(1M)按财务周期可以选择缺省情况下运行的记帐脚本.
将这些项添加到crontab文件后,系统记帐应自动运行.
如何设置系统记帐成为超级用户或同等角色.
角色包含授权和具有一定权限的命令.
有关角色的更多信息,请参见《系统管理指南:安全性服务》中的"配置RBAC(任务列表)".
如有必要,请使用pkgadd命令在系统中安装SUNWaccr和SUNWaccu软件包.
安装/etc/init.
d/acct作为运行级2的启动脚本.
#ln/etc/init.
d/acct/etc/rc2.
d/S22acct安装/etc/init.
d/acct作为运行级0的停止脚本.
#ln/etc/init.
d/acct/etc/rc0.
d/K22acct向admcrontab文件中添加以下行,以自动启动ckpacct、runacct和monacct脚本.
#EDITOR=vi;exportEDITOR#crontab-eadm0usr/lib/acct/ckpacct302***/usr/lib/acct/runacct2>/var/adm/acct/nite/fd2log3071**/usr/lib/acct/monacct12345设置系统记帐第9章管理系统记帐(任务)125向rootcrontab文件中添加以下行,以自动启动dodisk脚本.
#crontab-e3022**4/usr/lib/acct/dodisk编辑/etc/acct/holidays以包括国定假日和当地假日.
有关更多信息,请参见holidays(4)手册页及后面的示例.
重新引导系统或键入以下内容手动启动系统记帐:#/etc/init.
d/acctstart设置记帐(admcrontab)这一修改的admcrontab包含ckpacct、runacct和monacct脚本的项.
#ident"@(#)adm1.
592/07/14SMI"/*SVr4.
01.
2*/##Theadmcrontabfileshouldcontainstartupofperformance#collectioniftheprofilingandperformancefeaturehasbeen#installed.
0usr/lib/acct/ckpacct302***/usr/lib/acct/runacct2>/var/adm/acct/nite/fd2log3071**/usr/lib/acct/monacct设置记帐(rootcrontab)这一修改的rootcrontab包含dodisk程序的项.
#ident"@(#)root1.
1998/07/06SMI"/*SVr4.
01.
1.
3.
1*/##Therootcrontabshouldbeusedtoperformaccountingdatacollection.
##103***/usr/sbin/logadm153**0/usr/lib/fs/nfs/nfsfind303x/usr/lib/gss/gsscred_clean]&&/usr/lib/gss/gsscred_clean3022**4/usr/lib/acct/dodisk设置记帐(/etc/acct/holidays)以下示例显示一个/etc/acct/holidays文件样例.
*@(#)holidaysJanuary1,2004**Prime/NonprimeTableforUNIXAccountingSystem**CurrPrimeNon-Prime*YearStartStart*200408001800*678示例9–1示例9–2示例9–3设置系统记帐系统管理指南:高级管理2010年9月126*onlythefirstcolumn(month/day)issignificant.
**month/dayCompany*Holiday*1/1NewYearsDay7/4Indep.
Day12/25Christmas对用户计费如果您根据需求提供特别用户服务,则需要运行chargefee实用程序对用户计费.
特殊服务包括恢复文件或远程打印chargefee实用程序会在/var/adm/fee文件中记录费用.
每次执行runacct实用程序时,都会将新项合并到总记帐记录中.
有关更多信息,请参见acctsh(1M)手册页.
如何对用户计费成为超级用户或同等角色.
角色包含授权和具有一定权限的命令.
有关角色的更多信息,请参见《系统管理指南:安全性服务》中的"配置RBAC(任务列表)".
向用户收取特殊服务的费用.
#/usr/lib/acct/chargefeeusernameamountusername指定要对其计费的用户帐户.
amount指定要对用户计费的单位数量.
该值是设置的用于根据打印或恢复文件等任务向用户收费的任意单位.
必须编写一个脚本,以调用chargefee实用程序并向用户收取特定任务的费用.
对用户计费在以下示例中,向用户print_customer收取了10个单位的费用.
#/usr/lib/acct/chargefeeprint_customer1012示例9–4对用户计费第9章管理系统记帐(任务)127维护记帐信息本节介绍如何修复损坏的系统记帐文件以及如何重新启动runacct脚本.
修复损坏的文件并更正wtmpx错误遗憾的是,系统记帐并不十分安全.
有时候,文件会损坏或丢失.
有些文件可以忽略,也可以从备份中恢复.
但是,有些文件则必须修复,才能维护系统记帐的完整性.
wtmpx文件可能会引发每日系统记帐操作中的大多数问题.
手动更改日期并且系统处于多用户模式时,会向/var/adm/wtmpx文件中写入一组日期更改记录.
wtmpfix实用程序旨在出现日期更改时调整wtmp记录中的时间标记.
但是,部分日期更改和重新引导的组合会跳过wtmpfix实用程序并导致acctcon程序失败.
如何修复损坏的wtmpx文件成为超级用户或同等角色.
角色包含授权和具有一定权限的命令.
有关角色的更多信息,请参见《系统管理指南:安全性服务》中的"配置RBAC(任务列表)".
转到/var/adm目录.
将wtmpx文件从二进制格式转换为ASCII格式.
#/usr/lib/acct/fwtmpwtmpx.
ascii编辑wtmpx.
ascii文件以删除损坏的记录.
将wtmpx.
ascii文件转换回二进制文件.
#/usr/lib/acct/fwtmp-icwtmpx有关更多信息,请参见fwtmp(1M)手册页.
更正tacct错误如果要向用户收取系统资源费用,则/var/adm/acct/sum/tacct文件的完整性极为重要.
有时候,会出现异常的tacct记录,其中包括负数、重复的用户ID或用户ID65535.
首先,使用prtacct脚本列显/var/adm/acct/sum/tacctprev文件,以检查该文件.
如果内容没有问题,则修补最新的/var/adm/acct/sum/tacctMMDD文件.
然后,重新创建/var/adm/acct/sum/tacct文件.
以下步骤概括了一个简单的修补过程.
12345维护记帐信息系统管理指南:高级管理2010年9月128如何修复tacct错误成为超级用户或同等角色.
角色包含授权和具有一定权限的命令.
有关角色的更多信息,请参见《系统管理指南:安全性服务》中的"配置RBAC(任务列表)".
转到/var/adm/acct/sum目录.
将tacctMMDD文件从二进制格式转换为ASCII格式.
#/usr/lib/acct/acctmerg-vxtacctMMDD是一对表示月份和日期的两位数.
编辑xtacct文件,删除损坏的记录并将重复记录写入另一个文件.
将xtacct文件从ASCII格式转换为二进制格式.
#/usr/lib/acct/acctmerg-itacctMMDD将文件tacctprev和tacct.
MMDD合并到tacct文件中.
#/usr/lib/acct/acctmergtacct重新启动runacct脚本runacct脚本失败的原因可能有多种.
以下是最常见的原因:系统崩溃/var目录空间不足wtmpx文件损坏如果存在active.
MMDD文件,请先检查该文件中是否有错误消息.
如果存在active和lock文件,请检查fd2log文件中是否有任何相关消息.
如果不带任何参数运行runacct脚本,则该脚本会假定这一次调用是当天的第一次调用.
如果runacct脚本正在重新启动并指定runacct脚本重新运行记帐的月份和日期,则参数MMDD是必需的.
进行处理的入口点基于statefile文件的内容.
要覆盖statefile文件,请在命令行中包括所需的状态.
有关可用状态的说明,请参见runacct(1M)手册页.
注意–手动运行runacct程序时,请确保以用户身份adm运行该程序.
123456维护记帐信息第9章管理系统记帐(任务)129如何重新启动runacct脚本转到/var/adm/acct/nite目录.
$cd/var/adm/acct/nite删除lastdate文件和所有lock*文件(如果有).
$rmlastdatelock*lastdate文件包含上次运行runacct程序的日期.
在下一步中重新启动runacct脚本将重新创建此文件.
重新启动runacct脚本.
$/usr/lib/acct/runacctMMDD[state]2>/var/adm/acct/nite/fd2log&MMDD由两位数指定的月份和日期.
state指定runacct脚本处理开始的状态或起始点.
停止和禁用系统记帐可以暂时停止或永久禁用系统记帐.
如何暂时停止系统记帐成为超级用户或同等角色.
角色包含授权和具有一定权限的命令.
有关角色的更多信息,请参见《系统管理指南:安全性服务》中的"配置RBAC(任务列表)".
编辑admcrontab文件,通过注释掉相应行来停止运行ckpacct、runacct和monacct程序.
#EDITOR=vi;exportEDITOR#crontab-eadm#0usr/lib/acct/ckpacct#302***/usr/lib/acct/runacct2>/var/adm/acct/nite/fd2log#3071**/usr/lib/acct/monacct编辑rootcrontab文件,通过注释掉相应行来停止运行dodisk程序.
#crontab-e#3022**4/usr/lib/acct/dodisk停止系统记帐程序.
#/etc/init.
d/acctstop1231234停止和禁用系统记帐系统管理指南:高级管理2010年9月130(可选)从crontab文件中删除新增的注释符号.
重新启动系统记帐程序,以重新启用系统记帐.
#/etc/init.
d/acctstart如何永久禁用系统记帐成为超级用户或同等角色.
角色包含授权和具有一定权限的命令.
有关角色的更多信息,请参见《系统管理指南:安全性服务》中的"配置RBAC(任务列表)".
编辑admcrontab文件并删除ckpacct、runacct和monacct程序的项.
#EDITOR=vi;exportEDITOR#crontab-eadm编辑rootcrontab文件并删除dodisk程序的项.
#crontab-e删除运行级2的启动脚本.
#unlink/etc/rc2.
d/S22acct删除运行级0的停止脚本.
#unlink/etc/rc0.
d/K22acct停止系统记帐程序.
#/etc/init.
d/acctstop56123456停止和禁用系统记帐第9章管理系统记帐(任务)131132系统记帐(参考)本章提供有关系统记帐的参考信息.
以下是本章中参考信息的列表.
第133页中的"runacct脚本"第135页中的"每日记帐报告"第141页中的"系统记帐文件"有关系统记帐任务的更多信息,请参见第9章,管理系统记帐(任务).
runacct脚本主要的每日记帐脚本runacct通常由cron命令在正常工作时间之外调用.
runacct脚本可以处理连接、费用、磁盘和进程记帐文件.
此脚本还可准备每日摘要文件和累积摘要文件,以供prdaily和monacct脚本记帐.
runacct脚本可在发生错误时防止文件受到损坏.
使用一系列保护机制来执行以下任务:识别错误提供智能诊断以特定方式完成处理,从而以最少的介入重新启动runacct脚本该脚本通过向active文件中写入描述性消息来记录其进度.
除非另有说明,否则假定runacct脚本所使用的文件位于/var/adm/acct/nite目录中.
runacct脚本执行期间的所有诊断输出都写入fd2log文件中.
调用runacct脚本时,将会创建lock和lock1文件.
这些文件可防止同时执行runacct脚本.
如果调用runacct程序时已经存在上述文件,则该程序将列显错误消息.
lastdate文件中包含上次调用runacct脚本的月份和日期,以避免每天多次执行脚本.
10第10章133如果runacct脚本检测到错误,则会发生以下情况:向控制台写入一条消息向root和adm发送电子邮件可能删除锁定保存诊断执行结束有关如何重新启动runacct脚本的说明,请参见第130页中的"如何重新启动runacct脚本".
要允许重新启动runacct脚本,需要将处理细分为不同的可重复执行状态.
statefile文件用于跟踪完成的上一个状态.
当每个状态完成时,都会更新statefile文件,以反映下一个状态.
该状态的处理完成后,将读取statefile文件并处理下一个状态.
当runacct脚本达到CLEANUP状态时,它将删除锁定并结束.
将按下表所示来执行状态.
表10–1runacct脚本的状态状态说明SETUP执行turnacctswitch命令以创建新的pacct文件.
/var/adm/pacctn进程记帐文件(pacct文件除外)被移至/var/adm/Spacctn.
MMDD文件.
/var/adm/wtmpx文件被移至/var/adm/acct/nite/wtmp.
MMDD文件(在结尾添加了当前时间记录)并创建一个新/var/adm/wtmp文件.
closewtmp和utmp2wtmp程序将向wtmp.
MMDD文件和新的wtmpx文件中添加记录,以便对当前登录的用户进行说明.
WTMPFIXwtmpfix程序检查nite目录中的wtmp.
MMDD文件是否正确.
由于某些日期更改会导致acctcon程序失败,所以wtmpfix程序会在有日期更改记录时尝试调整wtmpx文件中的时间标记.
此程序还可删除wtmpx文件中的任何已损坏项.
将wtmp.
MMDD文件的已修复版本写入tmpwtmp文件.
CONNECTacctcon程序用于在文件ctacct.
MMDD中记录连接记帐记录.
这些记录使用tacct.
h格式.
此外,acctcon程序还创建lineuse和reboots文件.
reboots文件会记录在wtmpx文件中找到的所有引导记录.
PROCESSacctprc程序用于将/var/adm/Spacctn.
MMDD进程记帐文件转换为ptacctn.
MMDD文件中的完整记帐记录.
Spacct和ptacct文件通过数字进行关联,这样在runacct脚本失败时,将不处理Spacct文件.
MERGEacctmerg程序将进程记帐记录与连接记帐记录合并,以形成daytacct文件.
FEESacctmerg程序将fee文件中的ASCIItacct记录合并到daytacct文件中.
DISKdodisk脚本可生成disktacct文件.
如果dodisk脚本已运行并生成disktacct文件,则DISK程序会将该文件合并到daytacct文件中,并将disktacct文件移至/tmp/disktacct.
MMDD文件.
runacct脚本系统管理指南:高级管理2010年9月134表10–1runacct脚本的状态(续)状态说明MERGETACCTacctmerg程序将daytacct文件与sum/tacct文件(累计总记帐文件)合并.
每天都将daytacct文件保存到sum/tacct.
MMDD文件中,这样便可在sum/tacct文件损坏或丢失时重新创建该文件.
CMSacctcms程序多次运行.
第一次运行该程序是为了使用Spacctn文件生成命令摘要,并向sum/daycms文件写入数据.
第二次运行acctcms程序是为了将sum/daycms文件与sum/cms累积命令摘要文件合并.
最后,再运行acctcms程序,以生成nite/daycms和nite/cms,即分别来自sum/daycms和sum/cms的ASCII文件.
lastlogin程序用于创建/var/adm/acct/sum/loginlog日志文件.
此文件将报告每个用户的上次登录时间.
如果runacct脚本在午夜后运行,则显示某些用户上次登录时间的日期会与正确日期相差一天.
USEREXIT任何与安装相关(本地)的记帐程序都可在此点运行.
runacct脚本预计此程序为/usr/lib/acct/runacct.
local程序.
CLEANUP此状态可清除临时文件、运行prdaily脚本、将其输出保存至sum/rpt.
MMDD文件、删除锁定,然后退出.
注意–如果以CLEANUP状态重新启动runacct脚本,请删除最后一个ptacct文件,因为该文件将不完整.
每日记帐报告runacctshell脚本可在每次调用时生成五个基本报告.
下表对这些报告进行了描述.
表10–2每日记帐报告报告类型说明第136页中的"每日报告"按tty数显示终端线使用率.
第137页中的"每日使用情况报告"按用户指明系统资源的使用情况(按用户ID的顺序列出).
第138页中的"每日命令摘要"按命令指明系统资源的使用率,按内存使用的降序列出.
换言之,使用内存最多的命令列在最前面.
在每月命令摘要中会为当月报告此信息.
第139页中的"每月命令摘要"反映自上次调用monacct程序以来所累积数据的累计摘要.
第139页中的"上次登录报告"显示每位用户上次登录的时间(按年代顺序列出).
每日记帐报告第10章系统记帐(参考)135每日报告此报告提供了所使用的每个终端线的信息.
下面是一个每日报告样例:Jan1602:302004DAILYREPORTFORvenusPage1fromMonJan1502:30:022004toTueOan1602:30:0120041runacct1acctconTOTALDURATIONIS1440MINUTESLINEMINUTESPERCENT#SESS#ON#OFFconsole86860112TOTALS868--112from和to行指定报告中反映的时间段.
此时间段包含自上次生成每日报告到生成当前每日报告之间的时间.
然后,报告将显示有关系统重新引导、关机、电源断电恢复的日志以及由acctwtmp程序写入/var/adm/wtmpx文件的其他任何记录.
有关更多信息,请参见acct(1M)手册页.
报告的第二部分是对终端线使用情况的细分.
TOTALDURATION指出系统处于多用户模式(可通过终端线访问)的时间.
下表介绍了每日报告所提供的数据.
LINE终端线或访问端口.
MINUTES在记帐期间使用该线的分钟数.
PERCENT按MINUTES数划分的TOTALDURATION.
#SESS登录会话访问此线或端口的次数.
#ON与SESS相同.
(此列不再有意义.
以前,此列可列出用户使用某线或端口登录的次数.
)#OFF用户注销的次数以及该线中出现的任何中断.
通常,在系统进入多用户模式后初次调用ttymon时,端口中会发生中断.
如果#OFF超出#SESS很多,则多路复用器、调制解调器或电缆可能存在问题.
或者,某处存在连接问题.
最常见的原因是电缆与多路复用器的连接不牢固.
在实际使用中,应监视/var/adm/wtmpx文件,因为连接记帐源自该文件.
如果wtmpx文件快速增大,请执行以下命令确定哪条tty线噪音最大.
#/usr/lib/acct/acctcon-lfilecvmi.
pgswapin)/sec_diff*/.
swpot/s每秒换出内存的平均进程数.
如果该数字大于1,则可能需要增大内存.
bswot/s每秒为换出传送的块数.
pswch/s每秒的内核线程切换数.
注–所有进程换入都包括进程初始化.
检查交换活动(sar-w)以下示例显示sar-w命令的输出.
$sar-wSunOSbalmyday5.
10s10_51sun4u03/18/200400:00:04swpin/sbswin/sswpot/sbswot/spswch/s01:00:000.
000.
00.
000.
013202:00:010.
000.
00.
000.
013303:00:000.
000.
00.
000.
013304:00:000.
000.
00.
000.
013405:00:000.
000.
00.
000.
013306:00:000.
000.
00.
000.
013307:00:000.
000.
00.
000.
013208:00:000.
000.
00.
000.
013108:20:000.
000.
00.
000.
013308:40:010.
000.
00.
000.
013209:00:000.
000.
00.
000.
013209:20:000.
000.
00.
000.
013209:40:000.
000.
00.
000.
0335示例13–16监视系统活动(sar)第13章监视系统性能(任务)18910:00:000.
000.
00.
000.
060110:20:000.
000.
00.
000.
035310:40:000.
000.
00.
000.
074711:00:000.
000.
00.
000.
0804Average0.
000.
00.
000.
0198如何检查终端活动(sar-y)使用sar-y命令可监视终端设备活动.
$sar-y00:00:00rawch/scanch/soutch/srcvin/sxmtin/smdmin/s01:00:00000000如果有多个终端I/O,则可使用此报告来确定是否存在任何错误行.
以下列表中定义了记录的活动.
rawch/s每秒输入字符数(原始队列).
canch/scanon(规则队列)每秒处理的输入字符数.
outch/s每秒输出字符数(输出队列).
rcvin/s每秒接收器硬件中断次数.
xmtin/s每秒传送器硬件中断次数.
mdmin/s每秒调制解调器中断次数.
每秒调制解调器中断次数(mdmin/s)应接近于零.
每秒的接收和传送中断次数(rcvin/s和xmtin/s)应分别小于或等于传入或传出字符数.
否则,请检查是否存在错误行.

检查终端活动(sar-y)以下示例显示sar-y命令的输出.
$sar-ySunOSbalmyday5.
10s10_51sun4u03/18/200400:00:04rawch/scanch/soutch/srcvin/sxmtin/smdmin/s01:00:0000000002:00:0100000003:00:0000000004:00:0000000005:00:0000000006:00:0000000007:00:0000000008:00:0000000008:20:0000000008:40:0100000009:00:00000000示例13–17监视系统活动(sar)系统管理指南:高级管理2010年9月19009:20:0000000009:40:0000100010:00:00003700010:20:0000000010:40:0000300011:00:00003000Average001000如何检查总体系统性能(sar-A)使用sar-A命令可显示所有选项的统计信息,以提供总体系统性能的综览.
此命令可提供更具全局性的透视.
如果显示来自多个单时间段的数据,则该报告会包括平均值.
自动收集系统活动数据(sar)自动收集系统活动数据时需要使用三个命令:sadc、sa1和sa2.
sadc数据收集实用程序定期收集系统数据,并以二进制格式的文件保存数据,每24小时保存一个文件.
可以将sadc命令设置为定期运行(通常每小时一次),并在系统引导到多用户模式时运行.
数据文件放置在/var/adm/sa目录中.
每个文件都命名为sadd,其中dd是当前日期.
命令的格式如下:/usr/lib/sa/sadc[tn][ofile]该命令以t秒为间隔采样n次,两次采样之间的间隔应大于5秒.
然后,此命令将向二进制ofile文件或标准输出中写入数据.
引导时运行sadc命令sadc命令应在系统引导时运行,以记录自计数器重置为零以来的统计信息.
为确保在引导时运行sadc命令,svcadmenablesystem/sar:default命令会向每日数据文件中写入一条记录.
该命令项格式如下:/usr/bin/susys-c"/usr/lib/sa/sadc/var/adm/sa/sa'date+%d'"自动收集系统活动数据(sar)第13章监视系统性能(任务)191使用sa1脚本定期运行sadc命令为了生成定期记录,您需要定期运行sadc命令.
最简单的方法是在/var/spool/cron/crontabs/sys文件中取消对下列行的注释:#0***0-6/usr/lib/sa/sa1#20,408-17**1-5/usr/lib/sa/sa1#518**1-5/usr/lib/sa/sa2-s8:00-e18:01-i1200-Asyscrontab项执行以下操作:前两个crontab项可在星期一到星期五从上午8点到下午5点,每20分钟或每小时向/var/adm/sa/sadd文件写入一条记录.
第三项可从星期一到星期五每小时向/var/adm/sa/sardd文件写入一条记录,并且可以包括所有sar选项.
可以更改这些缺省设置,以满足您的需要.
使用sa2Shell脚本生成报告另一个shell脚本sa2可生成报告,而不是二进制数据文件.
sa2命令调用sar命令,并将ASCII输出写入报告文件.
设置自动数据收集(sar)sar命令可用于自行收集系统活动数据,或报告sadc命令所创建的每日活动文件中收集的内容.
sar命令格式如下:sar[-aAbcdgkmpqruvwy][-ofile]t[n]sar[-aAbcdgkmpqruvwy][-stime][-etime][-isec][-ffile]以下sar命令每隔t秒对操作系统中的累积活动计数器进行采样,共进行n次.
t应大于或等于5秒.
否则,命令本身会对样本产生影响.
必须指定采样的时间间隔.
否则,命令将根据第二种格式运行.
n的缺省值为1.
以下示例以10秒为间隔抽取两个样本.
如果指定-o选项,则以二进制格式保存样本.
$sar-u102自动收集系统活动数据(sar)系统管理指南:高级管理2010年9月192有关sar命令的其他重要信息包括:如果不指定采样间隔或样本数,sar命令将从以前记录的文件中提取数据.
该文件是由-f选项为最近一天指定的文件,或对应于最近一天的标准每日活动文件/var/adm/sa/sadd(缺省设置).
-s和-e选项定义报告的开始时间和结束时间.
开始时间和结束时间的格式为hh[:mm[:ss]],其中hh、mm和ss表示小时、分钟和秒.
-i选项指定记录所选内容之间的时间间隔(以秒为单位).
如果不包括-i选项,则报告在每日活动文件中找到的所有间隔.
下表列出了sar选项及其操作.
表13–2sar命令的选项选项操作-a检查文件访问操作-b检查缓冲区活动-c检查系统调用-d检查每个块设备的活动-g检查页出和内存释放-k检查内核内存分配-m检查进程间通信-nv检查系统表状态-p检查交换和分发活动-q检查队列活动-r检查未使用的内存-u检查CPU使用率-w检查交换和切换卷-y检查终端活动-A报告总体系统性能,这与输入所有选项等效.
不使用任何选项等效于调用带-u选项的sar命令.
自动收集系统活动数据(sar)第13章监视系统性能(任务)193如何设置自动数据收集成为超级用户或同等角色.
角色包含授权和具有一定权限的命令.
有关角色的更多信息,请参见《系统管理指南:安全性服务》中的"配置RBAC(任务列表)".
运行svcadmenablesystem/sar:default命令.
此版本的sadc命令会写入一条特殊记录,其中标记了将计数器重置为零的时间(引导时间).
编辑/var/spool/cron/crontabs/syscrontab文件.
注–不要直接编辑crontab文件.
而要改用crontab-e命令对现有crontab文件进行更改.
#crontab-esys取消对以下行的注释:0***0-6/usr/lib/sa/sa120,408-17**1-5/usr/lib/sa/sa1518**1-5/usr/lib/sa/sa2-s8:00-e18:01-i1200-A有关更多信息,请参见crontab(1)手册页.
1234自动收集系统活动数据(sar)系统管理指南:高级管理2010年9月194软件问题疑难解答(概述)本章提供软件问题疑难解答的一般概述,其中包括有关系统崩溃的疑难解答以及查看系统消息的信息.
以下是本章中的信息列表.
第195页中的"疑难解答方面的新增内容"第197页中的"有关软件疑难解答任务的参考信息"第197页中的"系统崩溃疑难解答"第199页中的"系统崩溃疑难解答核对表"疑难解答方面的新增内容本节介绍此发行版中新增或已更改的疑难解答信息.
有关OracleSolaris10发行版中新增或已更改的疑难解答功能的信息,请参见以下内容:第196页中的"动态跟踪功能"第196页中的"kmdb取代kadb作为标准的Solaris内核调试程序"有关新增功能的完整列表以及OracleSolaris发行版的说明,请参见《OracleSolaris109/10新增功能》.
CommonAgentContainer问题OracleSolaris106/06:CommonAgentContainer是现已包括在OracleSolarisOS中的独立Java程序.
此程序可为Java管理应用程序实现容器.
CommonAgentContainer提供一种针对基于JavaManagementExtensions(JMX)和JavaDynamicManagementKit(JavaDMK)的功能设计的管理基础结构.
此软件由SUNWcacaort软件包安装,它驻留在/usr/lib/cacao目录中.
14第14章195通常,容器是不可见的.
但在以下两种情况下,您可能需要与容器守护进程交互:其他应用程序可能会尝试使用为CommonAgentContainer保留的网络端口.
如果证书库遭到破坏,则可能需要重新生成CommonAgentContainer证书密钥.
有关如何解决这些问题的信息,请参见第235页中的"OracleSolarisOS中CommonAgentContainer问题的疑难解答".
x86:SMF引导归档文件服务可能在系统重新引导期间失败Solaris101/06:如果系统在基于GRUB的引导环境中发生崩溃,可能是SMF服务svc:/system/boot-archive:default在系统重新引导时失败.
如果出现此问题,请重新引导系统并在GRUB引导菜单中选择故障安全归档文件.
请按照提示重新生成引导归档文件.
重新生成归档文件后,重新引导系统.
要继续引导过程,可以使用svcadm命令清除svc:/system/boot-archive:default服务.
有关基于GRUB进行引导的更多信息,请参见《系统管理指南:基本管理》中的"使用GRUB引导基于x86的系统(任务图)".
动态跟踪功能OracleSolaris动态跟踪(DynamicTracing,DTrace)功能是一项全面的动态跟踪功能,借助该功能,可在一个全新级别观察Solaris内核和用户进程.
使用Dtrace可以动态检测操作系统内核和用户进程,并记录您在所关注的位置(称为探测器)指定的数据,从而帮助您了解系统.
每个探测器均可与用新的D编程语言编写的自定义程序相关联.
DTrace的所有检测过程都是完全动态的,并且可用于产品化的系统.
有关更多信息,请参见dtrace(1M)手册页和《Solaris动态跟踪指南》.
kmdb取代kadb作为标准的Solaris内核调试程序kmdb已取代kadb,作为标准的"现场"Solaris内核调试程序.
在进行实时内核调试时,kmdb可实现mdb的所有强大功能和灵活性.
kmdb支持以下功能:调试程序命令(dcmds)调试程序模块(dmods)访问内核类型数据内核执行控制检查修改疑难解答方面的新增内容系统管理指南:高级管理2010年9月196有关更多信息,请参见kmdb(1)手册页.
有关使用kmdb对系统进行故障排除的逐步说明,请参见《系统管理指南:基本管理》中的"如何使用内核调试器(kmdb)引导系统"和《系统管理指南:基本管理》中的"如何在GRUB引导环境中使用内核调试器(kmdb)引导系统".
有关软件疑难解答任务的参考信息疑难解答任务更多信息管理系统故障转储信息第17章,管理系统故障转储信息(任务)管理核心转储文件第16章,管理核心转储文件(任务)重新引导失败和备份问题等软件问题的疑难解答第18章,各种软件问题的疑难解答(任务)文件访问问题疑难解答第19章,文件访问问题疑难解答(任务)打印问题疑难解答《系统管理指南:打印》中的第13章"OracleSolarisOS中的打印问题疑难解答(任务)"解决UFS文件系统不一致问题第20章,解决UFS文件系统不一致问题(任务)软件包问题疑难解答第21章,软件包问题疑难解答(任务)系统崩溃疑难解答如果运行OracleSolarisOS的系统崩溃,请向服务提供商提供尽可能多的信息,包括故障转储文件.
系统崩溃时应执行的操作要记住的最重要的事情如下:1.
记录系统控制台消息.
如果系统崩溃,则使其重新运行可能是最紧迫的事情.
但是,在重新引导系统之前,请先检查控制台屏幕上的消息.
这些消息可能有助于了解导致崩溃的原因.
即使系统自动重新引导并且控制台消息已从屏幕上消失,仍然可以通过查看系统错误日志(/var/adm/messages文件)来检查这些消息.
有关查看系统错误日志文件的更多信息,请参见第202页中的"如何查看系统消息".
如果系统频繁发生崩溃并且无法确定其原因,请收集可从系统控制台或/var/adm/messages文件中获取的所有信息,并准备好以供客户服务代表检查.
有关要为服务提供商收集的疑难解答信息的完整列表,请参见第197页中的"系统崩溃疑难解答".
系统崩溃疑难解答第14章软件问题疑难解答(概述)197如果系统在崩溃后无法成功重新引导,请参见第18章,各种软件问题的疑难解答(任务).
2.
同步磁盘并重新引导.
oksync如果系统在崩溃后无法成功重新引导,请参见第18章,各种软件问题的疑难解答(任务).
查看系统崩溃后是否生成了系统故障转储.
缺省情况下,会保存系统故障转储.
有关故障转储的信息,请参见第17章,管理系统故障转储信息(任务).
收集疑难解答数据请回答以下问题,以帮助隔离系统问题.
有关收集崩溃的系统的疑难解答数据的信息,请参见第199页中的"系统崩溃疑难解答核对表".
表14–1确定系统崩溃数据问题说明是否可以重现问题这一点很重要,因为在调试很难的问题时,可重现的测试案例是必不可少的.
通过重现问题,服务提供商可以使用特殊设备构造内核,以触发、诊断和更正错误.
是否使用了任何第三方驱动程序具有相同权限的多个驱动程序在内核所在的同一地址空间中运行,如果这些驱动程序存在错误,则会导致系统崩溃.
系统在崩溃之前正在执行什么操作如果系统在执行异常的操作,例如运行新的负荷测试或遇到特别高的负荷,则可能导致系统崩溃.
在系统崩溃之前,是否有任何异常的控制台消息有时,系统会在实际崩溃前显示故障信号,此信息通常很有用.
是否向/etc/system文件中添加了任何调优参数有时,调优参数(如增大共享内存段,以使系统尝试分配比实际拥有内存更多的内存)会导致系统崩溃.
问题是在最近开始的吗如果是这样,问题是否与对系统的更改同时出现例如新的驱动程序、新软件、不同工作负荷、CPU升级或内存升级.
系统崩溃疑难解答系统管理指南:高级管理2010年9月198系统崩溃疑难解答核对表可在为崩溃的系统收集系统数据时使用此核对表.
项数据系统故障转储是否可用确定操作系统发行版以及相应软件应用程序的发行版级别.
确定系统硬件.
包括sun4u系统的prtdiag输出.
包括其他系统的资源管理器输出.
是否安装了修补程序如果已安装,请包括showrev-p输出.
问题是否可重现系统中是否有任何第三方驱动程序系统在崩溃前正在执行什么操作在系统崩溃前是否有任何异常的控制台消息是否向/etc/system文件中添加了任何参数问题是在最近开始的吗系统崩溃疑难解答核对表第14章软件问题疑难解答(概述)199200管理系统消息本章介绍OracleSolarisOS中的系统消息传送功能.
查看系统消息系统消息显示在控制台设备中.
大多数系统消息的文本如下所示:[IDmsgidfacility.
priority]例如:[ID672855kern.
notice]syncingfilesystems.
.
.
如果消息来自内核,则会显示内核模块名称.
例如:Oct114:07:24marsufs:[ID845546kern.
notice]alloc:/:filesystemfull当系统崩溃时,系统控制台可能会显示如下消息:panic:errormessage少数情况下,可能会显示以下消息而非故障消息:Watchdogreset!
错误日志守护进程syslogd可在消息文件中自动记录各种系统警告和错误.
缺省情况下,其中许多系统消息都会在系统控制台中显示,并存储在/var/adm目录中.
通过设置系统消息日志可以指示这些消息的存储位置.
有关更多信息,请参见第204页中的"自定义系统消息日志".
这些消息可以提醒您系统出现问题,例如设备将要出现故障.

/var/adm目录中包含若干个消息文件.
最新消息位于/var/adm/messages文件中(和messages.
*中),而最旧的消息位于messages.
3文件中.
经过一段时间后(通常为每隔十天),会创建一个新的messages文件.
messages.
0文件被重命名为15第15章201messages.
1,messages.
1被重命名为messages.
2,而messages.
2被重命名为messages.
3.
当前的/var/adm/messages.
3文件将被删除.
由于/var/adm目录存储包含消息、故障转储和其他数据的大型文件,因此该目录可能会占用许多磁盘空间.
为防止/var/adm目录变得过大,并确保可以保存将来的故障转储,应定期删除不需要的文件.
可以使用crontab文件自动执行此任务.
有关自动执行此任务的更多信息,请参见第85页中的"如何删除故障转储文件"和第8章,调度系统任务(任务).
如何查看系统消息使用dmesg命令显示由系统崩溃或重新引导生成的最新消息.
$dmesg或者,使用more命令逐屏显示消息.
$more/var/adm/messages查看系统消息以下示例显示dmesg命令的输出.
$dmesgJan308:44:41starbuggenunix:[ID540533kern.
notice]SunOSRelease5.
10.
.
.
Jan308:44:41starbuggenunix:[ID913631kern.
notice]Copyright1983-2003.
.
.
Jan308:44:41starbuggenunix:[ID678236kern.
info]Ethernetaddress.
.
.
Jan308:44:41starbugunix:[ID389951kern.
info]mem=131072K(0x8000000)Jan308:44:41starbugunix:[ID930857kern.
info]availmem=121888768Jan308:44:41starbugrootnex:[ID466748kern.
info]rootnexus=SunUltra5/10UPA/PCI(UltraSPARC-IIi333MHz)Jan308:44:41starbugrootnex:[ID349649kern.
info]pcipsy0atroot:UPA0x1f0x0Jan308:44:41starbuggenunix:[ID936769kern.
info]pcipsy0is/pci@1f,0Jan308:44:41starbugpcipsy:[ID370704kern.
info]PCI-device:pci@1,1,simba0Jan308:44:41starbuggenunix:[ID936769kern.
info]simba0is/pci@1f,0/pci@1,1Jan308:44:41starbugpcipsy:[ID370704kern.
info]PCI-device:pci@1,simba1Jan308:44:41starbuggenunix:[ID936769kern.
info]simba1is/pci@1f,0/pci@1Jan308:44:57starbugsimba:[ID370704kern.
info]PCI-device:ide@3,uata0Jan308:44:57starbuggenunix:[ID936769kern.
info]uata0is/pci@1f,0/pci@1,1/ide@3Jan308:44:57starbuguata:[ID114370kern.
info]dad0atpci1095,6460.
.
.
有关更多信息,请参见dmesg(1M)手册页.
示例15–1另请参见查看系统消息系统管理指南:高级管理2010年9月202系统日志轮转使用rootcrontab中的一个项内的logadm命令,可以轮转系统日志文件.
不再使用/usr/lib/newsyslog脚本.
系统日志轮转在/etc/logadm.
conf文件中定义.
此文件包含用于syslogd等进程的日志轮转项.
例如,/etc/logadm.
conf文件中的一个项指定,除非/var/log/syslog文件为空,否则该文件每周轮转一次.
最新的syslog文件成为syslog.
0,下一个最新的文件成为syslog.
1,依此类推.
会保留八个以前的syslog日志文件.
/etc/logadm.
conf文件还包含记录最后一次日志轮转发生时间的时间标记.
可以使用logadm命令来自定义系统日志,并可根据需要在/etc/logadm.
conf文件中添加其他日志.
例如,要轮转Apache访问和错误日志,请使用以下命令:#logadm-w/var/apache/logs/access_log-s100m#logadm-w/var/apache/logs/error_log-s10m在此示例中,Apacheaccess_log文件会在大小达到100MB时进行轮转,以.
0、.
1等作为后缀,并保留旧access_log文件的10个副本.
error_log会在大小达到10MB时进行轮转,后缀和副本数与access_log文件相同.
用于上述Apache日志轮转示例的/etc/logadm.
conf项与以下示例类似:#cat/etc/logadm.
conf.
.
.
/var/apache/logs/error_log-s10m/var/apache/logs/access_log-s100m有关更多信息,请参见logadm(1M).
可以超级用户身份或通过承担等效角色(具有日志管理权限)来使用logadm命令.
通过基于角色的访问控制(role-basedaccesscontrol,RBAC),您可以通过提供对logadm命令的访问来授予非超级用户维护日志文件的权限.
例如,可通过向/etc/user_attr文件添加以下项,授予用户andy使用logadm命令的权限:andy::::profiles=LogManagement或者,也可以使用Solaris管理控制台来设置用于日志管理的角色.
有关设置角色的更多信息,请参见《系统管理指南:安全性服务》中的"基于角色的访问控制(概述)".

系统日志轮转第15章管理系统消息203自定义系统消息日志通过修改/etc/syslog.
conf文件,可以捕获各个系统进程生成的其他错误消息.
缺省情况下,/etc/syslog.
conf文件会将许多系统进程消息定向到/var/adm/messages文件.
崩溃和引导消息也存储在这些文件中.
要查看/var/adm消息,请参见第202页中的"如何查看系统消息".
/etc/syslog.
conf文件有两个通过制表符分隔的列:facility.
level.
.
.
actionfacility.
level消息或情况的工具或系统源.
可能是由逗号分隔的工具列表.
表15–1中列出了工具值.
level,表示所记录情况的严重程度或优先级.
表15–2中列出了优先级.
如果同一工具的两个项用于不同优先级,则不要将这两个项放在同一行中.
在syslog文件中放置优先级表示将记录该优先级或更高优先级的所有消息,最后一条消息优先.
对于给定的工具和级别,syslogd将匹配该级别以及所有更高级别的所有消息.
action操作字段表示将消息转发到的位置.
以下示例显示缺省的/etc/syslog.
conf文件中的样例行.
user.
err/dev/sysmsguser.
err/var/adm/messagesuser.
alert'root,operator'user.
emerg*这意味着将自动记录以下用户消息:将用户错误列显到控制台,同时将其记录到/var/adm/messages文件中.
将需要立即操作的用户消息(alert)发送给超级用户和操作员用户.
将用户紧急消息发送给各用户.
注–如果在/etc/syslog.
conf文件中多次指定一个日志目标,则将各项分别放置在不同的行中可能会导致消息的记录顺序混乱.
请注意,可在一个行项中指定多个选择器,每个选择器之间用分号分隔.
下表中显示了最常见的错误情况源.
表15–2按严重程度显示最常见的优先级.
表15–1syslog.
conf消息的源工具源说明kern内核自定义系统消息日志系统管理指南:高级管理2010年9月204表15–1syslog.
conf消息的源工具(续)源说明auth验证daemon所有守护进程mail邮件系统lp假脱机系统user用户进程注–可在/etc/syslog.
conf文件中激活的syslog工具数没有限制.
表15–2syslog.
conf消息的优先级优先级说明emerg系统紧急情况alert需要立即更正的错误crit严重错误err其他错误info提示性消息debug用于调试的输出none此设置不记录输出如何自定义系统消息日志成为超级用户或同等角色.
角色包含授权和具有一定权限的命令.
有关角色的更多信息,请参见《系统管理指南:安全性服务》中的"配置RBAC(任务列表)".
编辑/etc/syslog.
conf文件,根据syslog.
conf(4)中介绍的语法添加或更改消息源、优先级和消息位置.
退出文件,保存更改.
123自定义系统消息日志第15章管理系统消息205自定义系统消息日志此样例/etc/syslog.
confuser.
emerg工具可向超级用户和个人用户发送用户紧急消息.
user.
emerg'root,*'启用远程控制台消息传送以下新增控制台功能可以提高您对远程系统进行故障排除的能力:利用consadm命令,您可以选择串行设备作为辅助(或远程)控制台.
使用consadm命令,系统管理员可以配置一个或多个串行端口,以便当系统在不同运行级之间转换时显示重定向的控制台消息,并托管sulogin会话.
借助此功能,您可用调制解调器拨入并连接到串行端口,以监视控制台消息并参与init状态转换.
(有关更多信息,请参见sulogin(1M)和后面的逐步过程.
)使用配置为辅助控制台的端口登录系统时,它主要用作输出设备,其中显示的信息也在缺省控制台中显示.
如果引导脚本或其他应用程序从缺省控制台中读取内容或向其中写入内容,则写入输出将在所有辅助控制台上显示,但输入只从缺省控制台中读取.
(有关在交互式登录会话过程中使用consadm命令的更多信息,请参见第207页中的"在交互式登录会话期间使用consadm命令".
)控制台输出包括内核和写入新的伪设备/dev/sysmsg的syslog消息.
此外,rc脚本启动消息也将写入/dev/msglog.
以前,所有这些消息都写入/dev/console.
如果希望看到显示在辅助控制台中的脚本消息,那么需要把将控制台输出定向到/dev/console的脚本更改为/dev/msglog.
如果希望将消息重定向到辅助设备,则应该将引用/dev/console的程序显式修改为使用syslog()或strlog().
consadm命令运行守护进程来监视辅助控制台设备.
指定为辅助控制台并且已断开、挂起或失去载体的任何显示设备都将从辅助控制台设备列表中删除,并且不再处于活动状态.
启用一个或多个辅助控制台不会禁用缺省控制台上的消息显示,消息将继续在/dev/console中显示.
在运行级转换期间使用辅助控制台消息传递在运行级转换期间使用辅助控制台消息传递时,请记住以下几点:如果在系统引导时运行的rc脚本期望用户输入,则输入不能来自辅助控制台.
输入必须来自缺省控制台.
由init调用以用于在运行级之间转换时提示输入超级用户口令的sulogin程序已被修改,除了缺省控制台设备之外,还可以向每个辅助设备发送超级用户口令提示.

示例15–2启用远程控制台消息传送系统管理指南:高级管理2010年9月206当系统处于单用户模式并且使用consadm命令启用一个或多个辅助控制台时,将在第一个设备上运行控制台登录会话,以便为sulogin提示提供正确的超级用户口令.
从控制台设备收到正确口令时,sulogin将禁用来自所有其他控制台设备的输入.
如果其中一个控制台承担了单用户特权,将在缺省控制台和其他辅助控制台上显示一条消息.
此消息指出已通过接受正确的超级用户口令而成为控制台的设备.
如果运行单用户shell的辅助控制台中丢失载体,则会执行以下两种操作之一:如果辅助控制台代表一个处于运行级1的系统,则系统会继续到缺省运行级.
如果辅助控制台代表一个处于运行级S的系统,则系统会显示已通过Shell输入inits或shutdown命令的设备中的ENTERRUNLEVEL(0-6,sorS):消息.
如果该设备中也没有任何载体,则必须重新建立载体并输入正确的运行级.
init或shutdown命令不再重新显示运行级提示.
如果使用串行端口登录系统,并发出init或shutdown命令以转换到其他运行级,则无论此设备是否为辅助控制台,登录会话都将丢失.
此情况与没有辅助控制台功能的发行版相同.
一旦使用consadm命令将设备选作辅助控制台,该设备将一直用作辅助控制台,直到重新引导系统或取消选中辅助控制台.
但是,consadm命令有一个选项,可在系统重新引导期间将设备设置为辅助控制台.
(有关逐步说明,请参见以下过程.
)在交互式登录会话期间使用consadm命令如果要通过使用与串行端口连接的终端登录系统,再使用consadm命令查看终端的控制台消息的方式来运行交互式登录会话,请注意以下行为.
如果在辅助控制台处于活动状态时将终端用于交互式登录会话,则会向/dev/sysmsg或/dev/msglog设备发送控制台消息.
在终端发出命令时,输入将转到交互式会话而非缺省控制台(/dev/console).
如果运行init命令更改运行级,远程控制台软件将中止交互式会话并运行sulogin程序.
此时,只接受来自终端的输入,并将其视为来自控制台设备的输入.
这样您便可以按第206页中的"在运行级转换期间使用辅助控制台消息传递"中所述为sulogin程序输入口令.
然后,如果您在(辅助)终端中输入正确口令,辅助控制台将运行交互式sulogin会话,并锁定缺省控制台和任何竞争性的辅助控制台.
这意味着,终端基本上可用作系统控制台.
此时,您可以更改到运行级3或转到其他运行级.
如果更改运行级,sulogin将在所有控制台设备中再次运行.
如果您退出或指定系统应达到运行级3,则所有辅助控制台都将丧失提供输入的能力.
它们将恢复为控制台消息的显示设备.
随着系统的提升,您必须为缺省控制台设备中的rc脚本提供信息.
在系统恢复启动后,login程序将在串行端口上运行,您可以重新登录到其他交互式会话中.
如果已将该设备指定为辅助控制台,您将继续在终端中获得控制台消息,但来自该终端的所有输入都将转至交互式会话.
启用远程控制台消息传送第15章管理系统消息207如何启用辅助(远程)控制台在您使用consadm命令添加辅助控制台之前,consadm守护进程不会开始监视端口.
作为一种安全功能,在载体脱机或取消选择辅助控制台设备之前,控制台消息只能重定向.
这意味着必须在端口中建立载体,才能成功使用consadm命令.
有关启用辅助控制台的更多信息,请参见consadm(1m)手册页.
以超级用户身份登录系统.
启用辅助控制台.
#consadm-adevicename验证当前连接是否为辅助控制台.
#consadm启用辅助(远程)控制台#consadm-a/dev/term/a#consadm/dev/term/a如何显示辅助控制台的列表以超级用户身份登录系统.
选择以下步骤之一:a.
显示辅助控制台的列表.
#consadm/dev/term/ab.
显示持久性辅助控制台的列表.
#consadm-p/dev/term/b如何在系统重新引导期间启用辅助(远程)控制台以超级用户身份登录系统.
在系统重新引导期间启用辅助控制台.
#consadm-a-pdevicename123示例15–31212启用远程控制台消息传送系统管理指南:高级管理2010年9月208这将会向持久性辅助控制台列表中添加设备.
验证设备是否已添加至持久性辅助控制台的列表中.
#consadm在系统重新引导期间启用辅助(远程)控制台#consadm-a-p/dev/term/a#consadm/dev/term/a如何禁用辅助(远程)控制台以超级用户身份登录系统.
选择以下步骤之一:a.
禁用辅助控制台.
#consadm-ddevicename或b.
禁用辅助控制台并从持久性辅助控制台列表中将其删除.
#consadm-p-ddevicename验证是否已禁用辅助控制台.
#consadm禁用辅助(远程)控制台#consadm-d/dev/term/a#consadm3示例15–4123示例15–5启用远程控制台消息传送第15章管理系统消息209210管理核心转储文件(任务)本章介绍如何使用coreadm命令管理核心转储文件.
有关与管理核心转储文件相关的过程的信息,请参见第211页中的"管理核心转储文件(任务图)".
管理核心转储文件(任务图)任务说明参考1.
显示当前的核心转储配置.
使用coreadm命令显示当前的核心转储配置.
第214页中的"如何显示当前的核心转储配置"2.
修改核心转储配置.
修改核心转储配置,以执行下列操作之一:设置核心转储文件名称模式.
启用每进程核心转储文件路径.
启用全局核心转储文件路径.
第214页中的"如何设置核心转储文件名称模式"第215页中的"如何启用每进程核心转储文件路径"第215页中的"如何启用全局核心转储文件路径"3.
检查核心转储文件.
使用proc工具查看核心转储文件.
第216页中的"检查核心转储文件"16第16章211管理核心转储文件概述核心转储文件是在异常终止进程或应用程序时生成的.
使用coreadm命令可以管理核心转储文件.
例如,可以使用coreadm命令来配置系统,以便将所有进程核心转储文件都放在一个系统目录中.
这意味着,当进程或守护进程异常终止时,可通过检查特定目录中的核心转储文件来跟踪问题.
配置核心转储文件路径可以独立启用或禁用的两个新的可配置core文件路径是:每进程核心转储文件路径,缺省为core并在缺省情况下启用.
如果启用,则每进程核心转储文件路径会导致在进程异常终止时生成core文件.
每进程路径由新进程从其父进程处继承.
生成每进程核心转储文件时,该文件由具有属主读/写权限的进程属主拥有.
只有属主用户可以查看此文件.
全局核心转储文件路径,缺省为core并在缺省情况下禁用.
如果启用,则会使用全局核心转储文件路径生成内容与每进程核心转储文件相同的附加核心转储文件.

生成全局核心转储文件时,该文件只属于具有超级用户读/写权限的超级用户所有.
非特权用户不能查看此文件.
当进程异常终止时,缺省情况下会在当前目录中生成一个核心转储文件.
如果启用了全局核心转储文件,则每个异常终止的进程可能会生成两个文件,一个在当前工作目录中,另一个在全局核心转储文件位置.
缺省情况下,setuid进程不使用全局或每进程路径生成核心转储文件.
扩展的核心转储文件名如果启用了全局核心转储文件目录,则可使用下表中介绍的变量来区分core文件.
变量名变量定义%d可执行文件目录名,最多包含MAXPATHLEN个字符%f可执行文件名,最多包含MAXCOMLEN个字符%g有效组ID%m机器名(uname-m)%n系统节点名(uname-n)管理核心转储文件概述系统管理指南:高级管理2010年9月212变量名变量定义%p进程ID%t时间的十进制值(2)%u有效用户ID%z在其中执行进程的区域的名称(zonename)%%字面值%例如,如果全局核心转储文件路径设置为:/var/core/core.
%f.
%p并且PID为12345的sendmail进程异常终止,则会生成以下core文件:/var/core/core.
sendmail.
12345设置核心转储文件名称模式可以按全局、区域或进程设置核心转储文件名称模式.
此外,还可以设置在系统重新引导时持续存在的每进程缺省值.
例如,以下coreadm命令将设置缺省的每进程核心转储文件模式.
此设置适用于未显式覆盖缺省核心转储文件模式的所有进程.
此设置在系统重新引导后继续存在.

#coreadm-i/var/core/core.
%f.
%p以下coreadm命令可为任何进程设置每进程核心转储文件名称模式:$coreadm-p/var/core/core.
%f.
%p$$$$符号表示当前正在运行的Shell的进程ID的占位符.
所有子进程都会继承每进程核心转储文件名称模式.
一旦设置了全局或每进程核心转储文件模式,就必须使用coreadm-e命令启用该模式.
有关更多信息,请参见以下过程.
通过在$HOME/.
profile或.
login文件中放置该命令,便可为用户登录会话期间运行的所有进程设置核心转储文件名称模式.
管理核心转储文件概述第16章管理核心转储文件(任务)213启用setuid程序以生成核心转储文件可以使用coreadm命令启用或禁用setuid程序,以便通过设置以下路径来为所有系统进程或每个进程生成核心转储文件:如果启用了全局setuid选项,则全局核心转储文件路径允许系统中的所有setuid程序生成core文件.
如果启用了每进程setuid选项,则每进程核心转储文件路径只允许特定setuid进程生成core文件.
缺省情况下,这两个标志都被禁用.
由于安全原因,全局核心转储文件路径必须为全路径名,以斜杠/开头.
如果超级用户禁用每进程核心转储文件,则各个用户都无法获取核心转储文件.
setuid核心转储文件只属于具有超级用户读/写权限的超级用户所有.
即使生成setuid核心转储文件的进程属于普通用户所有,常规用户也不能访问这些文件.

有关更多信息,请参见coreadm(1M)手册页.
如何显示当前的核心转储配置使用不带任何选项的coreadm命令可以显示当前的核心转储配置.
$coreadmglobalcorefilepattern:globalcorefilecontent:defaultinitcorefilepattern:coreinitcorefilecontent:defaultglobalcoredumps:disabledper-processcoredumps:enabledglobalsetidcoredumps:disabledper-processsetidcoredumps:disabledglobalcoredumplogging:disabled如何设置核心转储文件名称模式确定要设置每进程核心转储文件还是全局核心转储文件,并选择下列项之一:a.
设置每进程文件名称模式.
$coreadm-p$HOME/corefiles/%f.
%p$$b.
成为超级用户或同等角色.
角色包含授权和具有一定权限的命令.
有关角色的更多信息,请参见《系统管理指南:安全性服务》中的"配置RBAC(任务列表)".
管理核心转储文件概述系统管理指南:高级管理2010年9月214c.
设置全局文件名称模式.
#coreadm-g/var/corefiles/%f.
%p如何启用每进程核心转储文件路径成为超级用户或同等角色.
角色包含授权和具有一定权限的命令.
有关角色的更多信息,请参见《系统管理指南:安全性服务》中的"配置RBAC(任务列表)".
启用每进程核心转储文件路径.
#coreadm-eprocess显示当前的进程核心转储文件路径,以验证配置.
$coreadm$$1180:/home/kryten/corefiles/%f.
%p如何启用全局核心转储文件路径成为超级用户或同等角色.
角色包含授权和具有一定权限的命令.
有关角色的更多信息,请参见《系统管理指南:安全性服务》中的"配置RBAC(任务列表)".
启用全局核心转储文件路径.
#coreadm-eglobal-g/var/core/core.
%f.
%p显示当前的进程核心转储文件路径,以验证配置.
#coreadmglobalcorefilepattern:/var/core/core.
%f.
%pglobalcorefilecontent:defaultinitcorefilepattern:coreinitcorefilecontent:defaultglobalcoredumps:enabledper-processcoredumps:enabledglobalsetidcoredumps:disabledper-processsetidcoredumps:disabledglobalcoredumplogging:disabled123123管理核心转储文件概述第16章管理核心转储文件(任务)215核心转储文件问题疑难解答错误消息NOTICE:'setallow_setid_core=1'in/etc/systemisobsoleteNOTICE:Usethecoreadmcommandinsteadof'allow_setid_core'原因存在一个过时的参数,它允许setuid核心转储文件位于/etc/system文件中.
解决方案从/etc/system文件中删除allow_setid_core=1.
然后使用coreadm命令启用全局setuid核心转储文件路径.
检查核心转储文件有些proc工具已得到增强,可以检查进程核心转储文件和实时进程.
这些proc工具是可以管理/proc文件系统功能的实用程序.
通过在命令行中指定核心转储文件的名称(方法与向命令指定进程ID的方法相似),可将/usr/proc/bin/pstack、pmap、pldd、pflags和pcred工具应用于核心转储文件.
有关使用proc工具检查核心转储文件的更多信息,请参见proc(1).
示例16–1使用proc工具检查核心转储文件$.
/a.
outSegmentationFault(coredump)$/usr/proc/bin/pstack.
/corecore'.
/core'of19305:.
/a.
out000108c4main(1,ffbef5cc,ffbef5d4,20800,0,0)+1c00010880_start(0,0,0,0,0,0)+b8核心转储文件问题疑难解答系统管理指南:高级管理2010年9月216管理系统故障转储信息(任务)本章介绍如何在OracleSolarisOS中管理系统故障转储信息.
有关与管理系统故障转储信息相关的过程信息,请参见第218页中的"管理系统故障转储信息(任务图)".
管理系统故障转储信息中的新增内容本节介绍此OracleSolaris发行版中用于管理系统资源的新增功能或已更改的功能.
快速故障转储工具OracleSolaris109/10:此功能增强使系统能够在更短的时间内使用更少的空间保存故障转储信息.
完成故障转储所需的时间现在加快了2到10倍,具体取决于平台.
在savecore目录中保存故障转储所需的磁盘空间量以相同的系数缩减.
要加快故障转储文件的创建和压缩,快速故障转储工具可利用大型系统中较少使用的CPU.
新的故障转储文件vmdump.
n是vmcore.
n和unix.
n文件的压缩版本.
经过压缩的故障转储文件在网络上传输的速度更快,而且随后可离线分析.
请注意,转储文件必须先解压缩,然后mdb实用程序之类的工具才能使用此文件.
您可以通过使用savecore命令从本地或远程解压缩转储文件.
为了支持新的故障转储工具,已将-z选项添加至dumpadm命令.
使用此选项可指定是以压缩格式还是未压缩格式保存转储文件.
缺省值为压缩格式.
有关更多信息,请参见dumpadm(1M)和savecore(1M)手册页.
17第17章217管理系统故障转储信息(任务图)以下任务图提供了管理系统故障转储信息所需的过程.
任务说明参考1.
显示当前的故障转储配置.
使用dumpadm命令显示当前的故障转储配置.
第221页中的"如何显示当前的故障转储配置"2.
修改故障转储配置.
使用dumpadm命令指定要转储的数据类型、系统是否使用专用转储设备和用于保存故障转储文件的目录,以及在写入故障转储文件后必须保持可用的空间量.
第222页中的"如何修改故障转储配置"3.
检查故障转储文件.
使用mdb命令查看故障转储文件.
第223页中的"如何检查故障转储"4.
(可选)从完整的故障转储目录中恢复.
系统崩溃,但savecore目录中没有可用空间,并且您需要保存一些关键的系统故障转储信息.
第224页中的"如何从完整的故障转储目录中恢复(可选)"5.
(可选)禁用或启用故障转储文件的保存.
使用dumpadm命令禁用或启用故障转储文件的保存.
缺省情况下,会启用故障转储文件的保存.
第225页中的"如何禁用或启用故障转储的保存"系统崩溃(概述)系统崩溃可能是由于存在硬件故障、I/O问题和软件错误而引起的.
如果系统崩溃,则会在控制台中显示一条错误消息,然后向转储设备中写入物理内存的副本.
然后,将自动重新引导系统.
系统重新引导时,将执行savecore命令以从转储设备检索数据并将保存的故障转储文件写入savecore目录.
保存的故障转储文件可向您的支持服务提供商提供宝贵的信息,从而辅助诊断问题.
故障转储信息以压缩格式写入vmdump.
n文件中,其中n是标识故障转储的一个整数.
随后,可在同一系统或其他系统中调用savecore命令以将压缩的故障转储文件扩展为名为unix.
n和vmcore.
n的文件对.
还可以使用dumpadm命令配置重新引导时保存故障转储文件的目录.
对于具有UFS根文件系统的系统,缺省转储设备配置为相应的交换分区.
交换分区是保留为操作系统虚拟内存备份存储的磁盘分区.
因此,永久信息不会位于将被故障转储覆写的交换分区中.
对于具有OracleSolarisZFS根文件系统的系统,专用的ZFS卷将用于交换和转储区域.
有关更多信息,请参见第219页中的"交换区域和转储设备的OracleSolarisZFS支持".
管理系统故障转储信息(任务图)系统管理指南:高级管理2010年9月218交换区域和转储设备的OracleSolarisZFS支持如果您在软件初始安装期间选择OracleSolarisZFS根文件系统,或使用OracleSolarisLiveUpgrade从UFS根文件系统迁移到ZFS根文件系统,则会在ZFS根池中的ZFS卷上创建交换区域.
交换卷的大小可按照物理内存的一半计算,但不超过2GB且不少于512MB.
转储卷的大小由内核基于dumpadm信息和物理内存大小进行计算.
可以在JumpStart配置文件中或初始安装期间将交换和转储卷的大小调整为您选择的大小(只要您选择的新大小支持系统操作).
有关更多信息,请参见《OracleSolarisZFS管理指南》中的"对于交换和转储设备的ZFS支持".
如果安装后需要修改ZFS交换区域或转储区域,可以像在先前的发行版中那样使用swap或dumpadm命令.
有关本文档中管理转储设备的信息,请参见第221页中的"管理系统故障转储信息".
x86:GRUB引导环境中的系统崩溃如果在GRUB引导环境中基于x86的系统发生系统崩溃,则管理GRUB引导归档文件的SMF服务svc:/system/boot-archive:default可能在下一次系统重新引导时失败.
有关基于GRUB进行引导的更多信息,请参见《系统管理指南:基本管理》中的"使用GRUB引导基于x86的系统(任务图)".
系统故障转储文件savecore命令在系统崩溃后自动运行,以便从转储设备检索故障转储信息,并写入名为unix.
X和vmcore.
X的两个文件,其中X标识转储序列号.
这些文件共同表示保存的系统故障转储信息.
故障转储文件有时容易与核心转储文件混淆,后者是在应用程序异常终止时写入的用户应用程序的映像.
故障转储文件保存在预先确定的目录中,该目录缺省为/var/crash/hostname.
在先前的发行版中,除非手动使系统将物理内存的映像保存到故障转储文件中,否则系统重新引导时会覆写故障转储文件.
现在,缺省情况下便可保存故障转储文件.

使用dumpadm命令可以管理系统故障转储信息.
有关更多信息,请参见第220页中的"dumpadm命令".
保存故障转储使用mdb实用程序可以检查控制结构、活动表、正常运行或崩溃的系统内核的内存映像,以及有关内核运行的其他信息.
要最大程度地发挥mdb的作用,需要具备有关内核的详细知识,这超出了本手册的范围.
有关使用此实用程序的信息,请参见mdb(1)手册页.
系统崩溃(概述)第17章管理系统故障转储信息(任务)219此外,还可以将savecore保存的故障转储发送给客户服务代表,这有助于他们分析系统崩溃的原因.
dumpadm命令使用dumpadm命令可以管理OracleSolarisOS中的系统故障转储信息.
使用dumpadm命令可以配置操作系统的故障转储.
dumpadm配置参数包括转储内容、转储设备和保存故障转储文件的目录.
转储数据以压缩格式存储在转储设备中.
内核故障转储映像的大小可以是4GB或更大.
压缩数据意味着转储速度更快,且转储设备所需的磁盘空间更小.
当专用转储设备(而不是交换区域)属于转储配置的一部分时,会在后台运行故障转储文件的保存.
这意味着引导系统不等待savecore命令完成,便转到下一步.
在较大的内存系统中,可在savecore完成前使用系统.
缺省情况下,会保存savecore命令生成的系统故障转储文件.
savecore-L命令是一个新增功能,通过该功能可以获取当前运行的OracleSolarisOS的故障转储.
此命令用于通过在某些发生故障的状态下(例如瞬态性能问题或服务故障)捕获内存快照,对正在运行的系统进行故障排除.
如果系统已启动,并且您仍可以运行一些命令,则可执行savecore-L命令将系统快照保存到转储设备,然后立即将故障转储文件写入savecore目录.
由于系统仍在运行,因此如果配置了专用转储设备,则只能使用savecore-L命令.
下表介绍了dumpadm的配置参数.
转储参数说明转储设备在系统崩溃时临时存储转储数据的设备.
当转储设备不是交换区域时,savecore将在后台运行,这样可以加快引导过程进行的速度.
savecore目录存储系统故障转储文件的目录.
转储内容要转储的内存数据的类型.
最小空闲空间保存故障转储文件后savecore目录中所需的最小空闲空间量.
如果未配置最小空闲空间,则缺省值为1MB.
有关更多信息,请参见dumpadm(1M).
转储配置参数由dumpadm命令管理.
系统崩溃(概述)系统管理指南:高级管理2010年9月220dumpadm命令的工作原理在系统启动过程中,svc:/system/dumpadm:default服务调用dumpadm命令以配置故障转储参数.
具体地说,dumpadm通过/dev/dump接口来初始化转储设备和转储内容.
完成转储配置后,savecore脚本会查找故障转储文件目录的位置.
然后,会调用savecore来检查故障转储,并检查故障转储目录中minfree文件的内容.
转储设备和卷管理器由于可访问性和性能原因,请不要配置受卷管理产品(例如SolarisVolumeManager)控制的专用转储设备.
可以使交换区域受SolarisVolumeManager控制,这是推荐的做法,但应使转储设备保持独立.
管理系统故障转储信息在处理系统故障转储信息时,请记住以下几点重要内容:只有成为超级用户或同等角色的用户,才能访问和管理系统故障转储信息.

不要禁用保存系统故障转储的选项.
系统故障转储文件提供了用于确定系统崩溃原因的非常有价值的方法.
在将重要的系统故障转储信息发送给客户服务代表之前,不要删除这些信息.

如何显示当前的故障转储配置成为超级用户或同等角色.
角色包含授权和具有一定权限的命令.
有关角色的更多信息,请参见《系统管理指南:安全性服务》中的"配置RBAC(任务列表)".
显示当前的故障转储配置.
#dumpadmDumpcontent:kernelpagesDumpdevice:/dev/dsk/c0t3d0s1(swap)Savecoredirectory:/var/crash/venusSavecoreenabled:yesSavedcompressed:on12管理系统故障转储信息第17章管理系统故障转储信息(任务)221前面的示例输出表明:转储内容是内核内存页面.
内核内存将在交换设备/dev/dsk/c0t3d0s1中转储.
使用swap-l命令可以确定所有交换区域.
系统故障转储文件将写入/var/crash/venus目录.
已启用故障转储文件的保存.
以压缩格式保存故障转储.
如何修改故障转储配置成为超级用户或同等角色.
角色包含授权和具有一定权限的命令.
有关角色的更多信息,请参见《系统管理指南:安全性服务》中的"配置RBAC(任务列表)".
确定当前的故障转储配置.
#dumpadmDumpcontent:kernelpagesDumpdevice:/dev/dsk/c0t3d0s1(swap)Savecoredirectory:/var/crash/plutoSavecoreenabled:yesSavecommpressed:on此输出标识了运行OracleSolaris10发行版的系统的缺省转储配置.
修改故障转储配置.
#/usr/sbin/dumpadm[-nuy][-ccontent-type][-ddump-device][-mmink|minm|min%][-ssavecore-dir][-rroot-dir][-zon|off]-ccontent指定要转储的数据类型.
使用kernel转储所有内核内存,使用all转储所有内存,或使用curproc转储内核内存以及在发生崩溃时其线程正在执行的进程的内存页面.
缺省转储内容是内核内存.
-ddump-device指定在系统崩溃时临时存储转储数据的设备.
主交换设备是缺省转储设备.
-mnnnk|nnnm|nnn%通过在当前的savecore目录中创建minfree文件,指定用于保存故障转储文件的最小空闲磁盘空间.
可以KB(nnnk)、MB(nnnm)或文件系统大小百分比(nnn%)的形式指定此参数.
savecore命令会在写入故障转储文件之前访问此文件.
如果写入故障转储文件(根据大小)会减少空闲空间量并使其低于minfree阈值,则不写入转储文件,并记录一条错误消息.
有关从此情况中恢复的信息,请参见第224页中的"如何从完整的故障转储目录中恢复(可选)".
123管理系统故障转储信息系统管理指南:高级管理2010年9月222-n指定重新引导系统时不应运行savecore.
不推荐使用此转储配置.
如果已将系统故障转储信息写入交换设备并且未启用savecore,则系统开始交换时将覆写故障转储信息.
-s指定用于存储故障转储文件的备用目录.
缺省目录为/var/crash/hostname,其中hostname是uname-n命令的输出.
-u强制更新基于/etc/dumpadm.
conf文件内容的内核转储配置.
-y修改转储配置以在重新引导时自动执行savecore命令,即此转储设置的缺省值.
-zon|off修改转储配置以控制重新引导时savecore命令的操作.
on设置允许以压缩格式保存核心转储文件.
off设置会自动解压缩故障转储文件.
由于故障转储文件可能非常大,而以压缩格式保存需要的文件系统空间较少,因此默认值为on.
修改故障转储配置在此示例中,所有内存都会转储到专用转储设备/dev/dsk/c0t1d0s1中,并且在保存故障转储文件后必须可用的最小空闲空间为文件系统空间的10%.
#dumpadmDumpcontent:kernelpagesDumpdevice:/dev/dsk/c0t3d0s1(swap)Savecoredirectory:/var/crash/plutoSavecoreenabled:yesSavecompressed:on#dumpadm-call-d/dev/dsk/c0t1d0s1-m10%Dumpcontent:allpagesDumpdevice:/dev/dsk/c0t1d0s1(dedicated)Savecoredirectory:/var/crash/pluto(minfree=77071KB)Savecoreenabled:yesSavecompressed:on如何检查故障转储成为超级用户或同等角色.
角色包含授权和具有一定权限的命令.
有关角色的更多信息,请参见《系统管理指南:安全性服务》中的"配置RBAC(任务列表)".
使用mdb实用程序检查故障转储.
#/usr/bin/mdb[-k]crashdump-file-k通过假定文件为操作系统故障转储文件来指定内核调试模式.
示例17–112管理系统故障转储信息第17章管理系统故障转储信息(任务)223crashdump-file指定操作系统故障转储文件.
显示崩溃状态信息.
#/usr/bin/mdbfile-name>::status.
.
.
>::system.
.
.
检查故障转储以下示例显示mdb实用程序的样例输出,其中包括系统信息,并列出在此系统的/etc/system文件中设置的可调参数.
#/usr/bin/mdb-kunix.
0Loadingmodules:[unixkrtldgenunixipnfsipcptm]>::statusdebuggingcrashdump/dev/mem(64-bit)fromozlooperatingsystem:5.
10Generic(sun4u)>::systemsetufs_ninode=0x9c40[0t40000]setncsize=0x4e20[0t20000]setpt_cnt=0x400[0t1024]如何从完整的故障转储目录中恢复(可选)在此情况下,系统崩溃,但savecore目录中没有任何可用空间,并且您要保存一些关键的系统故障转储信息.
系统重新引导后,以超级用户身份登录或成为同等角色.
通过删除已发送给服务提供商的现有故障转储文件来清除savecore目录,通常为/var/crash/hostname.
或者,手动运行savecore命令以指定拥有足够磁盘空间的备用目录.
#savecore[directory]3示例17–212管理系统故障转储信息系统管理指南:高级管理2010年9月224如何禁用或启用故障转储的保存成为超级用户或同等角色.
角色包含授权和具有一定权限的命令.
有关角色的更多信息,请参见《系统管理指南:安全性服务》中的"配置RBAC(任务列表)".
在系统中禁用或启用故障转储的保存.
#dumpadm-n|-y禁用故障转储的保存此示例说明如何在系统中禁用故障转储的保存.
#dumpadm-nDumpcontent:allpagesDumpdevice:/dev/dsk/c0t1d0s1(dedicated)Savecoredirectory:/var/crash/pluto(minfree=77071KB)Savecoreenabled:noSaveCompressed:on启用故障转储的保存此示例说明如何在系统中启用故障转储的保存.
#dumpadm-yDumpcontent:allpagesDumpdevice:/dev/dsk/c0t1d0s1(dedicated)Savecoredirectory:/var/crash/pluto(minfree=77071KB)Savecoreenabled:yesSavecompressed:on12示例17–3示例17–4管理系统故障转储信息第17章管理系统故障转储信息(任务)225226各种软件问题的疑难解答(任务)本章介绍可能偶然发生并且相对易于修复的各种软件问题.
对各种软件问题的疑难解答包括解决不与特定软件应用程序或主题相关的问题,如不成功的重新引导或整个文件系统.
以下各节中介绍了这些问题的解决方法.
以下是本章中信息的列表.
第227页中的"重新引导失败时应执行的操作"第231页中的"x86:SMF引导归档文件服务在系统重新引导期间失败时应执行的操作"第232页中的"系统挂起时应执行的操作"第233页中的"文件系统已满时应执行的操作"第233页中的"复制或恢复后文件ACL丢失时应执行的操作"第234页中的"备份问题疑难解答"第235页中的"OracleSolarisOS中CommonAgentContainer问题的疑难解答"重新引导失败时应执行的操作注–本节中的一些信息与仅运行OracleSolaris10发行版的系统有关.
如果系统未完全重新引导,或者重新引导后再次崩溃,则可能存在使系统无法成功引导的软件或硬件问题.
系统未引导的原因解决该问题的办法系统找不到/platform/'uname-m'/kernel/unix.
您可能需要在基于SPARC的系统上更改PROM中的boot-device设置.
有关更改缺省引导设备的信息,请参见《系统管理指南:基本管理》中的"如何使用引导PROM更改缺省引导设备".
18第18章227系统未引导的原因解决该问题的办法OracleSolaris10:基于x86的系统中没有缺省引导设备.
该消息显示为:NotaUFSfilesystem.
OracleSolaris10:使用配置辅助/引导软盘引导系统,并选择要进行引导的磁盘.
Solaris101/06:GRUB引导归档文件已损坏.
或者,SMF引导归档文件服务失败.
如果运行svcs-x命令,则会显示一条错误消息.
Solaris101/06:引导故障安全归档文件.
/etc/passwd文件中存在无效项.
有关从无效passwd文件恢复的信息,请参见《系统管理指南:基本管理》中的第12章"引导OracleSolaris系统(任务)".
磁盘或其他设备存在硬件问题.
检查硬件连接:确保已插入设备.
确保所有交换机都已正确设置.
查看所有连接器和电缆,包括以太网电缆.
如果所有上述操作都失败,请关闭系统电源,等待10到20秒,然后再次打开电源.
如果采用上述建议仍无法解决问题,请与当地服务提供商联系.
忘记超级用户口令时应执行的操作如果忘记了超级用户口令并且无法登录系统,必须执行以下操作:使用键盘停止序列停止系统.
OracleSolaris10:从引导服务器或安装服务器或者本地CD-ROM引导系统.
挂载根(/)文件系统.
从/etc/shadow文件中删除超级用户口令.
重新引导系统.
登录并设置超级用户的口令.
如果忘记了超级用户口令并且无法登录系统,必须执行以下操作:使用键盘停止序列停止系统.
从Solaris101/06发行版开始:在基于x86的系统上,在Solaris故障安全归档文件中引导系统.
OracleSolaris10:从引导服务器或安装服务器或者本地CD-ROM引导系统.
挂载根(/)文件系统.
从/etc/shadow文件中删除超级用户口令.
重新引导系统.
登录并设置超级用户的口令.
忘记超级用户口令时应执行的操作系统管理指南:高级管理2010年9月228《系统管理指南:基本管理》中的第12章"引导OracleSolaris系统(任务)"完整介绍了这些过程.
注–在此发行版中,基于SPARC的系统不能使用基于GRUB的引导.
以下示例介绍在基于SPARC和x86的系统中,如何恢复忘记的超级用户口令.
示例18–1SPARC:忘记超级用户口令时应执行的操作以下示例说明在忘记超级用户口令时,如何通过从网络引导来进行恢复.
此示例假定引导服务器已经可用.
请确保在重新引导系统后应用一个新的超级用户口令.

(Usekeyboardabortsequence--PressStopAkeystostopthesystem)okbootnet-s#mount/dev/dsk/c0t3d0s0/a#cd/a/etc#TERM=vt100#exportTERM#vishadow(Removeroot'sencryptedpasswordstring)#cd/#umount/a#init6示例18–2x86:忘记超级用户口令时执行基于GRUB的引导此示例假定引导服务器已经可用.
请确保在重新引导系统后应用一个新的超级用户口令.
GNUGRUBversion0.
95(637Klower/3144640Kuppermemory)|be1|be1failsafe|be3|be3failsafe|be2|be2failfafeUsethe^andvkeystoselectwhichentryishighlighted.
PressentertoboottheselectedOS,'e'toeditthecommandsbeforebooting,or'c'foracommand-line.
SearchingforinstalledOSinstances.
.
.
Anoutofsyncbootarchivewasdetectedon/dev/dsk/c0t0d0s0.
Thebootarchiveisacacheoffilesusedduringbootandshouldbekeptinsynctoensurepropersystemoperation.
Doyouwishtoautomaticallyupdatethisbootarchive[y,n,]nSearchingforinstalledOSinstances.
.
.
MultipleOSinstanceswerefound.
Tocheckandmountoneofthem忘记超级用户口令时应执行的操作第18章各种软件问题的疑难解答(任务)229示例18–2x86:忘记超级用户口令时执行基于GRUB的引导(续)read-writeunder/a,selectitfromthefollowinglist.
Tonotmountany,select'q'.
1pool10:13292304648356142148ROOT/be102rpool:14465159259155950256ROOT/be01Pleaseselectadevicetobemounted(qfornone)[,,q]:1mounting/dev/dsk/c0t0d0s0on/astartingshell.
.
.
.
#cd/a/etc#vishadow(Removeroot'sencryptedpasswordstring)#cd/#umount/a#reboot示例18–3x86:忘记超级用户口令时引导系统OracleSolaris10:以下示例说明在忘记超级用户口令时,如何通过从网络引导来进行恢复.
此示例假定引导服务器已经可用.
请确保在重新引导系统后应用一个新的超级用户口令.
Pressanykeytoreboot.
Resetting.
.
.
.
.
.
InitializingsystemPleasewait.
.
.
>>Bootpath:/pci@0,0/pci-ide@7,1/ide@0/cmdk@0,0:aBootargs:Typeb[file-name][boot-flags]tobootwithoptionsoritoenterbootinterpreterortobootwithdefaults>>Select(b)ootor(i)nterpreter:b-sSunOSRelease5.
10Versionamd64-gate-2004-09-3032-bitCopyright1983-2004SunMicrosystems,Inc.
Allrightsreserved.
Useissubjecttolicenseterms.
DEBUGenabledBootingtomilestone"milestone/single-user:default".
Hostname:venusNISdomainnameisexample.
comRequestingSystemMaintenanceModeSINGLEUSERMODE忘记超级用户口令时应执行的操作系统管理指南:高级管理2010年9月230示例18–3x86:忘记超级用户口令时引导系统(续)Rootpasswordforsystemmaintenance(control-dtobypass):xxxxxxEnteringSystemMaintenanceMode.
.
.
#mount/dev/dsk/c0t0d0s0/a.
.
.
#cd/a/etc#vishadow(Removeroot'sencryptedpasswordstring)#cd/#umount/a#init6x86:SMF引导归档文件服务在系统重新引导期间失败时应执行的操作注–此过程适用于仅运行OracleSolaris10发行版的系统.
Solaris101/06:如果系统崩溃,引导归档文件SMF服务svc:/system/boot-archive:default可能会在系统重新引导时失败.
如果引导归档文件服务已失败,则运行svcs-x命令时将显示以下类似消息:svc:/system/boot-archive:default(checkbootarchivecontent)State:maintenancesinceFriJun0310:24:522005Reason:Startmethodexitedwith$SMF_EXIT_ERR_FATAL.
See:http://sun.
com/msg/SMF-8000-KSSee:/etc/svc/volatile/system-boot-archive:default.
logImpact:48dependentservicesarenotrunning.
(Use-vforlist.
)svc:/network/rpc/gss:default(GenericSecurityService)State:uninitializedsinceFriJun0310:24:512005Reason:Restartersvc:/network/inetd:defaultisnotrunning.
See:http://sun.
com/msg/SMF-8000-5HSee:gssd(1M)Impact:10dependentservicesarenotrunning.
(Use-vforlist.
)svc:/application/print/server:default(LPprintserver)State:disabledsinceFriJun0310:24:512005Reason:Disabledbyanadministrator.
See:http://sun.
com/msg/SMF-8000-05See:lpsched(1M)Impact:1dependentserviceisnotrunning.
(Use-vforlist.
)要解决问题,请执行以下操作:x86:SMF引导归档文件服务在系统重新引导期间失败时应执行的操作第18章各种软件问题的疑难解答(任务)2311.
重新引导系统并从GRUB引导菜单中选择故障安全归档文件选项.
2.
系统提示重新构造引导归档文件时,回答y.
重新构造引导归档文件后,系统准备引导.
3.
要继续引导,请使用以下命令清除SMF引导归档文件服务.
#svcadmclearboot-archive请注意,只有超级用户或同等角色才能运行此命令.
有关重新生成GRUB引导归档文件的更多信息,请参见《系统管理指南:基本管理》中的"如何在故障安全模式下引导基于x86的系统"和bootadm(1M)手册页.
系统挂起时应执行的操作如果某些软件进程出现问题,系统可以冻结或挂起,而不是完全崩溃.
遵循以下步骤可以从挂起的系统中进行恢复.
1.
确定系统是否正在运行窗口环境并遵循以下建议.
如果这些建议无法解决问题,请转到步骤2.
确保指针位于正在键入命令的窗口中.
如果用户意外按下了可冻结屏幕的Ctrl-s,请按下Ctrl-q.
Ctrl-s仅会冻结窗口,而不是整个屏幕.
如果一个窗口被冻结,请尝试使用其他窗口.
如果可能,请从网络中的其他系统中远程登录.
使用pgrep命令查找挂起的进程.
如果窗口系统看似已挂起,请标识进程并将其中止.
2.
按Ctrl-\强制从运行的程序中"退出",并(可能)写出core文件.
3.
按Ctrl-c中断正在运行的程序.
4.
远程登录并尝试确定和中止使系统挂起的进程.
5.
远程登录,成为超级用户或同等角色,并重新引导系统.
6.
如果系统仍然无法响应,请强制进行故障转储并重新引导.
有关强制进行故障转储和引导的信息,请参见《系统管理指南:基本管理》中的"强制实施崩溃转储和系统重新引导".
7.
如果系统仍然无法响应,请关闭电源,等待一分钟左右,然后重新打开电源.

8.
如果根本无法使系统做出响应,请联系当地服务提供商以获取帮助.
系统挂起时应执行的操作系统管理指南:高级管理2010年9月232文件系统已满时应执行的操作当根(/)文件系统或任何其他文件系统已满时,您将在控制台窗口中看到以下消息:.
.
.
.
filesystemfull系统已满的原因可能有多种.
以下各节介绍了从已满文件系统中进行恢复的几种方案.
有关定期清除旧文件和未使用的文件以防止文件系统变满的信息,请参见第6章,管理磁盘使用(任务).
由于创建了大文件或目录导致文件系统已满出现错误的原因解决该问题的办法有人意外地将文件或目录复制到错误位置.
当应用程序崩溃并将大型core文件写入文件系统时,也会出现这种情况.
以超级用户身份登录或成为同等角色,在特定文件系统中使用ls-tl命令确定新创建的大文件并将其删除.
有关删除core文件的信息,请参见第84页中的"如何查找并删除core文件".
由于系统内存不足导致TMPFS文件系统变满出现错误的原因解决该问题的办法如果TMPFS尝试写入的内容比允许量多或者有些当前进程使用了大量内存,则可能出现此情况.
有关利用与tmpfs相关的错误消息进行恢复的信息,请参见tmpfs(7FS)手册页.
复制或恢复后文件ACL丢失时应执行的操作出现错误的原因解决该问题的办法如果将具有ACL的文件或目录复制或恢复到/tmp目录,则会丢失ACL属性.
/tmp目录通常作为临时文件系统挂载,而临时文件系统不支持ACL等UFS文件系统属性.
将文件复制或恢复到/var/tmp目录中.
复制或恢复后文件ACL丢失时应执行的操作第18章各种软件问题的疑难解答(任务)233备份问题疑难解答本节介绍在备份和恢复数据时使用的一些基本的疑难解答方法.
备份文件系统后根(/)文件系统变满备份一个文件系统,然后根(/)文件系统变满.
未向介质中写入任何内容,ufsdump命令会提示您插入介质的第二个卷.
出现错误的原因解决该问题的办法如果将无效的目标设备名用于-f选项,ufsdump命令将向根(/)文件系统中的/dev目录写入内容,将其填满.
例如,如果键入的是/dev/rmt/st0而不是/dev/rmt/0,则会在磁盘中创建备份文件/dev/rmt/st0,而不将其发送至磁带机.
在/dev目录中使用ls-tl命令确定新创建的特别大的文件并将其删除.
确保备份和恢复命令相匹配仅能使用ufsrestore命令恢复通过ufsdump命令备份的文件.
如果使用tar命令备份,则可使用tar命令进行恢复.
如果使用ufsrestore命令恢复通过其他命令写入的磁带,则会显示一条错误消息,指明磁带格式不是ufsdump.
检查以确保当前目录正确很容易将文件恢复到错误位置.
由于ufsdump命令复制文件时总是使用相对于文件系统根目录的全路径名,因此在运行ufsrestore命令之前,通常应转到文件系统的根目录.
如果转到较低级别的目录,则在恢复文件后,将看到在该目录下创建的一棵完整的文件树.
交互命令使用交互命令时,将显示ufsrestore>提示符,如下例所示:#ufsrestoreivf/dev/rmt/0VerifyvolumeandinitializemapsMediablocksizeis126Dumpdate:FriJan3010:13:462004Dumpedfrom:theepochLevel0dumpof/export/homeonstarbug:/dev/dsk/c0t0d0s7Label:none备份问题疑难解答系统管理指南:高级管理2010年9月234ExtractdirectoriesfromtapeInitializesymboltable.
ufsrestore>OracleSolarisOS中CommonAgentContainer问题的疑难解答本节将解决使用commonagentcontainer共享组件时可能遇到的问题.
在此OracleSolaris发行版中,CommonAgentContainerJava程序已包括在OracleSolarisOS中.
该程序将为Java管理应用程序实现容器.
通常,容器对于用户是不可见的.
以下是可能遇到的问题:端口号冲突超级用户口令的安全性被破坏端口号冲突缺省情况下,commonagentcontainer占用以下端口号:JMX端口(TCP)=11162SNMPAdaptor端口(UDP)=11161SNMPAdaptor陷阱端口(UDP)=11162Commandstream适配器端口(TCP)=11163RMI连接器端口(TCP)=11164注–如果对OracleSolarisCluster的安装进行疑难解答,端口指定会有所不同.
如果安装已保留其中所有的端口号,则更改commonagentcontainer占用的端口号,如以下过程所述.
如何检查端口号此过程说明如何验证端口.
成为超级用户或同等角色.
角色包含授权和具有一定权限的命令.
有关角色的更多信息,请参见《系统管理指南:安全性服务》中的"配置RBAC(任务列表)".
停止commonagentcontainer管理守护进程.
#/usr/sbin/cacaoadmstop12OracleSolarisOS中CommonAgentContainer问题的疑难解答第18章各种软件问题的疑难解答(任务)235使用以下语法更改端口号:#/usr/sbin/cacaoadmset-paramparam=value例如,要将SNMPAdaptor占用的端口由缺省的11161更改为11165,请键入:#/usr/sbin/cacaoadmset-paramsnmp-adaptor-port=11165重新启动commonagentcontainer管理守护进程.
#/usr/sbin/cacaoadmstart超级用户口令的安全性被破坏可能需要在运行JavaES的主机上重新生成安全密钥.
例如,如果存在超级用户口令被曝露或破坏的风险,则应重新生成安全密钥.
commonagentcontainer服务使用的密钥存储在/etc/cacao/instances/instance-name/security目录中.
以下任务说明如何为OracleSolarisOS生成安全密钥.
如何为OracleSolarisOS生成安全密钥成为超级用户或同等角色.
角色包含授权和具有一定权限的命令.
有关角色的更多信息,请参见《系统管理指南:安全性服务》中的"配置RBAC(任务列表)".
停止commonagentcontainer管理守护进程.
#/usr/sbin/cacaoadmstop重新生成安全密钥.
#/usr/sbin/cacaoadmcreate-keys--force重新启动commonagentcontainer管理守护进程.
#/usr/sbin/cacaoadmstart注–对于SunCluster软件,必须在群集的所有节点中传播此更改.
341234OracleSolarisOS中CommonAgentContainer问题的疑难解答系统管理指南:高级管理2010年9月236文件访问问题疑难解答(任务)本章提供有关解决文件访问问题(例如与不正确的权限和搜索路径有关的问题)的信息.
以下是本章中疑难解答主题的列表.
第237页中的"解决搜索路径的问题(Commandnotfound)"第239页中的"解决文件访问问题"第240页中的"识别网络访问问题"用户经常由于无法访问以前可用的程序、文件或目录等问题,而向系统管理员寻求帮助.
当您遇到此类问题时,请检查是否是由以下三个方面的某一问题引起:用户的搜索路径可能已更改,或者搜索路径中的目录顺序不正确.
文件或目录可能不具有正确的权限或拥有权.
通过网络访问的系统配置可能已更改.
本章简要介绍如何识别上述每个方面的问题,并提出可能的解决方案.
解决搜索路径的问题(Commandnotfound)Commandnotfound消息表示存在以下情况之一:命令在系统中不可用.
命令目录不在搜索路径中.
要解决搜索路径问题,您需要知道存储命令的目录的路径名.
如果找到了该命令的错误版本,则一个包含同名命令的目录会出现在搜索路径中.
在这种情况下,正确的目录可能稍后会出现在搜索路径中,或者根本不会出现.

使用echo$PATH命令可以显示当前的搜索路径.
例如:19第19章237$echo$PATH/home/kryten/bin:/sbin:/usr/sbin:/usr/bin:/usr/dt:/usr/dist/exe使用which命令可以确定您所运行的命令是否是一个错误版本.
例如:$whichacroread/usr/doctools/bin/acroread注–which命令在.
cshrc文件中查找路径信息.
如果从Bourne或Kornshell中执行which命令,并且有一个.
cshrc文件中包含which命令的别名,则该命令可能会提供误导性的结果.
为确保结果的准确性,请在Cshell中使用which命令,或在Kornshell中使用whence命令.
如何诊断和更正搜索路径问题显示当前搜索路径,以验证命令的目录是否不在路径中,或验证该路径是否有拼写错误.
$echo$PATH检查以下各项:搜索路径是否正确该搜索路径是否在找到了该命令另一个版本的其他搜索路径之前列出命令是否位于其中一个搜索路径中如果需要更正路径,请转到步骤3.
否则,请转到步骤4.
将路径添加到相应文件,如下表所示.
Shell文件语法说明Bourne和Korn$HOME/.
profile$PATH=$HOME/bin:/sbin:/usr/local/bin.
.
.
$exportPATH用冒号分隔路径名.
C$HOME/.
cshrc或$HOME/.
loginhostname%setpath=(~bin/sbin/usr/local/bin.
.
.
)用空格分隔路径名.
按以下方式激活新路径:Shell路径所在的文件激活路径的命令Bourne和Korn.
profile$.
.
/.
profile1234解决搜索路径的问题(Commandnotfound)系统管理指南:高级管理2010年9月238Shell路径所在的文件激活路径的命令C.
cshrchostname%source.
cshrc.
loginhostname%source.
login验证新路径.
$whichcommand诊断和更正搜索路径问题此示例显示执行which命令后发现,mytool可执行文件并不存在于搜索路径中的任何目录内.
venus%mytoolmytool:Commandnotfoundvenus%whichmytoolnomytoolin/sbin/usr/sbin/usr/bin/etc/home/ignatz/bin.
venus%echo$PATH/sbin/usr/sbin/usr/bin/etc/home/ignatz/binvenus%vi~/.
cshrc(Addappropriatecommanddirectorytothesearchpath)venus%source.
cshrcvenus%mytool如果找不到某一命令,请在手册页中查看其目录路径.
例如,如果找不到lpsched命令(lp打印机守护进程),lpsched(1M)手册页会告知您路径是/usr/lib/lp/lpsched.
解决文件访问问题当用户无法访问以前可以访问的文件或目录时,可能是这些文件或目录的权限或拥有权已经更改.
更改文件和组的拥有权通常,文件和目录的拥有权会因为有人以超级用户的身份编辑文件而发生变化.
在为新用户创建起始目录时,务必要使该用户成为起始目录中的点(.
)文件的属主.
如果用户不是".
"的属主,他们将无法在自己的起始目录中创建文件.
当组拥有权发生变化或从/etc/group数据库中删除了某用户所属的组时,也可能会发生访问问题.
有关如何更改存在访问问题的文件的权限或拥有权的信息,请参见《系统管理指南:安全性服务》中的第6章"控制对文件的访问(任务)".
5示例19–1解决文件访问问题第19章文件访问问题疑难解答(任务)239识别网络访问问题如果用户在使用rcp远程复制命令通过网络复制文件时遇到问题,则可能是通过设置权限对远程系统中的目录和文件进行了访问限制.
另一个可能的原因是未将远程系统和本地系统配置为允许访问.
有关网络访问以及通过AutoFS访问系统时遇到的问题的信息,请参见《系统管理指南:网络服务》中的"NFS疑难解答的策略".
识别网络访问问题系统管理指南:高级管理2010年9月240解决UFS文件系统不一致问题(任务)本章介绍fsck错误消息以及为解决错误消息问题所能做出的可能响应.
以下是本章中信息的列表:第243页中的"一般fsck错误消息"第245页中的"初始化阶段的fsck消息"第247页中的"阶段1:检查块和大小消息"第252页中的"阶段1B:重新扫描更多DUPS消息"OracleSolaris10:第251页中的"OracleSolaris10:阶段1B:重新扫描更多DUPS消息"第252页中的"阶段2:检查路径名消息"第258页中的"阶段3:检查连通性消息"第260页中的"阶段4:检查引用计数消息"第263页中的"阶段5:检查柱面组消息"OracleSolaris10:第264页中的"Solaris10:阶段5:检查柱面组消息"第265页中的"fsck摘要消息"OracleSolaris10:第265页中的"Solaris10:清除阶段消息"有关fsck命令以及如何使用该命令检查文件系统完整性的信息,请参见《系统管理指南:设备和文件系统》中的第22章"检查UFS文件系统一致性(任务)".
新的fsck错误消息Solaris106/06:在此发行版中,运行fsck命令时显示的错误消息已更改.
本节包括修改过的fsck错误消息.
如果运行的版本低于Solaris106/06发行版,请参阅本章中标记为"Solaris10"的错误消息.
有关当前发行版中所有fsck改进的详细说明,请参见《系统管理指南:设备和文件系统》.
20第20章241fsck错误消息通常,fsck命令在系统突然停机(其中未将最新文件系统更改写入磁盘)之后以非交互方式运行,以便整理文件系统.
整理会自动修复所有基本的文件系统不一致问题,但不会尝试修复更严重的错误.
整理文件系统时,fsck命令将修复它所预期的突然停机所导致的不一致问题.
对于更严重的情况,该命令将报告错误并终止.

以交互方式运行fsck命令时,它会报告发现的每个不一致问题并修复无害的错误.
但对于更严重的错误,该命令将报告一致性问题并提示您选择响应.
运行带有-y或-n选项的fsck命令时,响应会预定义为执行或不执行fsck命令针对每种错误状态建议的缺省响应.
某些更正操作会导致数据丢失.
数据丢失的数量和严重性可通过fsck诊断输出确定.
fsck命令是一个多遍文件系统检查程序.
每遍检查操作都将调用具有不同消息集的fsck命令的不同阶段.
初始化之后,fsck命令会对每个文件系统执行多遍操作,检查块和大小、路径名、连通性、引用计数和空闲块图(可能重新生成该图).
此外还会执行一些清除操作.
fsck命令的UFS版本所执行的操作阶段(各遍操作)包括:初始化阶段1-检查块和大小阶段2a-检查重复的名称阶段2b-检查路径名阶段3-检查连通性阶段3b-验证阴影/ACL阶段4-检查引用计数阶段5-检查柱面组以下各节介绍在每个阶段中可能检测到的错误状态、生成的消息和提示以及可以做出的可能响应.
第243页中的"一般fsck错误消息"中介绍了可能在多个阶段中出现的消息.
对于其他消息,将根据消息产生的阶段按字母顺序分别加以介绍.
下表列出了fsck错误消息中包括的许多缩写.
表20–1错误消息缩写缩写含义BLK块编号DUP重复的块编号DIR目录名CG柱面组fsck错误消息系统管理指南:高级管理2010年9月242表20–1错误消息缩写(续)缩写含义MTIME上次修改文件的时间UNREF未引用许多消息还包括变量字段,例如inode编号,在本书中变量字段以斜体字表示,例如inode-number.
例如,以下屏幕消息:INCORRECTBLOCKCOUNTI=2529显示为:INCORRECTBLOCKCOUNTI=inode-number一般fsck错误消息在初始化之后,任何阶段中都可能显示本节的错误消息.
尽管这些消息提供了可供继续的选项,但通常最佳做法是将其视为致命错误.
它们反映了严重的系统故障,应立即进行处理.
遇到此类消息时,请通过输入n(o)终止程序.
如果无法确定引起问题的原因,请与当地服务提供商或其他有资格的人员联系.
CANNOTSEEK:BLKdisk-block-number(CONTINUE)OracleSolaris10:CANNOTSEEK:BLKblock-number(CONTINUE)原因移动到文件系统中指定块编号disk-block-number的请求失败.
此消息表示存在严重问题,很可能是硬件故障.
OracleSolaris10:移动到文件系统中指定块编号block-number的请求失败.
此消息表示存在严重问题,很可能是硬件故障.
如果要继续进行文件系统检查,fsck将重试该移动并显示无法移动的扇区编号的列表.
如果块属于虚拟内存高速缓存存储区的一部分,fsck将终止并显示致命I/O错误消息.
操作如果磁盘遇到硬件问题,该问题将一直存在.
再次运行fsck,重新检查文件系统.
如果重新检查失败,请与当地服务提供商或其他有资格的人员联系.
CANNOTREAD:DISKBLOCKdisk-block-number:I/OERRORCONTINUEfsck错误消息第20章解决UFS文件系统不一致问题(任务)243OracleSolaris10:CANNOTREAD:DISKBLOCKblock-number:I/OERRORCONTINUE原因读取文件系统中指定块编号disk-block-number的请求失败.
此消息表示存在严重问题,可能是硬件故障.
OracleSolaris10:读取文件系统中指定块编号block-number的请求失败.
此消息表示存在严重问题,可能是硬件故障.
如果要继续进行文件系统检查,fsck将重试读取并显示无法读取的扇区编号列表.
如果块属于虚拟内存高速缓存存储区的一部分,fsck将终止并显示致命I/O错误消息.
如果fsck尝试回写读取失败的一个块,则会显示以下消息:WRITINGZERO'EDBLOCKsector-numbersTODISK操作如果磁盘遇到硬件问题,该问题将一直存在.
再次运行fsck,重新检查文件系统.
如果重新检查失败,请与当地服务提供商或其他有资格的人员联系.
CANNOTWRITE:BLKdisk-block-number(CONTINUE)OracleSolaris10:CANNOTWRITE:BLKblock-number(CONTINUE)原因写入文件系统中指定块编号disk-block-number的请求失败.
如果要继续进行文件系统检查,fsck将重试写入并显示无法写入的扇区编号列表.
如果块属于虚拟内存高速缓存存储区的一部分,fsck将终止并显示致命I/O错误消息.
OracleSolaris10:写入文件系统中指定块编号block-number的请求失败.
如果要继续进行文件系统检查,fsck将重试写入并显示无法写入的扇区编号列表.
如果块属于虚拟内存高速缓存存储区的一部分,fsck将终止并显示致命I/O错误消息.
操作磁盘可能设置了写保护.
检查驱动器上的写保护锁.
如果磁盘出现硬件问题,该问题可能一直存在.
再次运行fsck,重新检查文件系统.
如果写保护不会导致问题或者重新检查失败,请与当地服务提供商或其他有资格的人员联系.
fsck错误消息系统管理指南:高级管理2010年9月244初始化阶段的fsck消息在初始化阶段,将检查命令行语法.
在可以执行文件系统检查之前,fsck将设置表并打开文件.
本节中的消息与命令行选项、内存请求、打开文件、文件状态、文件系统大小检查和创建临时文件所导致的错误状态相关.
当fsck整理文件系统时,所有此类初始化错误都会使其终止.
Can'trollthelogfordevice-name.
DISCARDINGTHELOGMAYDISCARDPENDINGTRANSACTIONS.
DISCARDTHELOGANDCONTINUE原因fsck在检查文件系统错误之前,无法刷新日志UFS文件系统的事务日志.
操作回答是意味着在日志中但尚未应用于文件系统的文件系统操作将丢失.
在此情况下,fsck将运行它通常运行的相同检查,并在阶段5中提出以下问题:FREEBLKCOUNT(S)WRONGINSUPERBLK(SALVAGE)在此时回答是将回收用于日志的块.
下次在启用日志的情况下挂载文件系统时,将重新创建日志.
回答否将保留日志并退出,但文件系统不可挂载.
badinodenumberinode-numbertoginode原因由于不存在inodeinode-number而发生内部错误.
fsck退出.
操作请与当地服务提供商或其他有资格的人员联系.
cannotallocsize-of-blockmapbytesforblockmapcannotallocsize-of-freemapbytesforfreemapcannotallocsize-of-statemapbytesforstatemapcannotallocsize-of-lncntpbytesforlncntp原因对内部表的内存请求失败.
fsck终止.
此消息表示存在严重的系统故障,应立即进行处理.
如果其他进程正在使用大量系统资源,则可能会出现此情况.
操作中止其他进程可能会解决该问题.
如果未解决,请与当地服务提供商或其他有资格的人员联系.
Can'topenchecklistfile:filenamefsck错误消息第20章解决UFS文件系统不一致问题(任务)245原因无法打开文件系统核对表文件filename(通常为/etc/vfstab)以供读取.
fsck终止.
操作检查该文件是否存在以及其访问模式是否允许读取访问.
Can'topenfilename原因fsck无法打开文件系统filename.
以交互方式运行时,fsck将忽略此文件系统并继续检查给定的下一个文件系统.
操作检查是否允许对文件系统的原始设备文件进行读取和写入访问.
Can'tstatroot原因对有关根目录的统计信息的fsck请求失败.
fsck终止.
操作此消息表示存在严重的系统故障.
请与当地服务提供商或其他有资格的人员联系.

企鹅小屋:垃圾服务商有跑路风险,站长注意转移备份数据!

企鹅小屋:垃圾服务商有跑路风险!企鹅不允许你二次工单的,二次提交工单直接关服务器,再严重就封号,意思是你提交工单要小心,别因为提交工单被干了账号!前段时间,就有站长说企鹅小屋要跑路了,站长不太相信,本站平台已经为企鹅小屋推荐了几千元的业绩,CPS返利达182.67CNY。然后,站长通过企鹅小屋后台申请提现,提现申请至今已经有20几天,企鹅小屋也没有转账。然后,搞笑的一幕出现了:平台账号登录不上提示...

Raksmart VPS主机如何设置取消自动续费

今天有看到Raksmart账户中有一台VPS主机即将到期,这台机器之前是用来测试评测使用的。这里有不打算续费,这不面对万一导致被自动续费忘记,所以我还是取消自动续费设置。如果我们也有类似的问题,这里就演示截图设置Raksmart取消自动续费。这里我们可以看到上图,在对应VPS主机的【其余操作】中可以看到默认已经是不自动续费,所以我们也不要担心被自动续费的。当然,如果有被自动续费,我们确实不想续费的...

HostYun(25元)俄罗斯CN2广播IP地址

从介绍看啊,新增的HostYun 俄罗斯机房采用的是双向CN2线路,其他的像香港和日本机房,均为国内直连线路,访问质量不错。HostYun商家通用九折优惠码:HostYun内存CPUSSD流量带宽价格(原价)购买地址1G1核10G300G/月200M28元/月购买链接1G1核10G500G/月200M38元/月购买链接1G1核20G900G/月200M68元/月购买链接2G1核30G1500G/月...

提示虚拟内存不足为你推荐
独立ip主机独立IP虚拟主机是什么?有哪些优势?虚拟主机购买虚拟主机哪里购买的好?免费国外空间免费国外全能空间申请网站域名域名和网址有什么区别?网站域名怎么知道一个网站域名是什么啊!代理主机主机做成代理服务器,其他局域网内的电脑必须通过我的这个网络出去域名购买在网上购买域名 会受骗吗美国服务器托管美国网站服务器去哪里租?云服务器租用云服务器租用需要注意哪些方面云服务器租用租用云服务器,要注意什么?
空间租用 宿迁服务器租用 高防dns dns是什么 buyvm 美国主机代购 哈喽图床 光棍节日志 网页背景图片 牛人与腾讯客服对话 灵动鬼影 php空间推荐 中国电信宽带测速网 银盘服务是什么 双12 服务器是干什么用的 下载速度测试 免费asp空间 中国电信测速网站 创速 更多