Advanced Guide
Advanced Guide
Copyright 1998, 2010, Oracle and/or its affiliates. All rights reserved. This software and related documentation are provided under a license agreement containing restrictions on use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is prohibited. The information contained herein is subject to change without notice and is not warranted to be error-free. If you find any errors, please report them to us in writing. If this is software or related software documentation that is delivered to the U.S. Government or anyone licensing it on behalf of the U.S. Government, the following notice is applicable: U.S. GOVERNMENT RIGHTS Programs, software, databases, and related documentation and technical data delivered to U.S. Government customers are commercial computer software or commercial technical data pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, the use, duplication, disclosure, modification, and adaptation shall be subject to the restrictions and license terms set forth in the applicable Government contract, and, to the extent applicable by the terms of the Government contract, the additional rights set forth in FAR 52.227-19, Commercial Computer Software License (December 2007). Oracle America, Inc., 500 Oracle Parkway, Redwood City, CA 94065. This software or hardware is developed for general use in a variety of information management applications. It is not developed or intended for use in any inherently dangerous applications, including applications which may create a risk of personal injury. If you use this software or hardware in dangerous applications, then you shall be responsible to take all appropriate fail-safe, backup, redundancy, and other measures to ensure its safe use. Oracle Corporation and its affiliates disclaim any liability for any damages caused by use of this software or hardware in dangerous applications. Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners. AMD, Opteron, the AMD logo, and the AMD Opteron logo are trademarks or registered trademarks of Advanced Micro Devices. Intel and Intel Xeon are trademarks or registered trademarks of Intel Corporation. All SPARC trademarks are used under license and are trademarks or registered trademarks of SPARC International, Inc. UNIX is a registered trademark licensed through X/Open Company, Ltd. This software or hardware and documentation may provide access to or information on content, products, and services from third parties. Oracle Corporation and its affiliates are not responsible for and expressly disclaim all warranties of any kind with respect to third-party content, products, and services. Oracle Corporation and its affiliates will not be responsible for any loss, costs, or damages incurred due to your access to or use of third-party content, products, or services. Copyright 1998, 2010, Oracle et/ou ses affilis. Tous droits rservs. Ce logiciel et la documentation qui laccompagne sont protgs par les lois sur la proprit intellectuelle. Ils sont concds sous licence et soumis des restrictions dutilisation et de divulgation. Sauf disposition de votre contrat de licence ou de la loi, vous ne pouvez pas copier, reproduire, traduire, diffuser, modifier, breveter, transmettre, distribuer, exposer, excuter, publier ou afficher le logiciel, mme partiellement, sous quelque forme et par quelque procd que ce soit. Par ailleurs, il est interdit de procder toute ingnierie inverse du logiciel, de le dsassembler ou de le dcompiler, except des fins dinteroprabilit avec des logiciels tiers ou tel que prescrit par la loi. Les informations fournies dans ce document sont susceptibles de modification sans pravis. Par ailleurs, Oracle Corporation ne garantit pas quelles soient exemptes derreurs et vous invite, le cas chant, lui en faire part par crit. Si ce logiciel, ou la documentation qui laccompagne, est concd sous licence au Gouvernement des Etats-Unis, ou toute entit qui dlivre la licence de ce logiciel ou lutilise pour le compte du Gouvernement des Etats-Unis, la notice suivante sapplique : U.S. GOVERNMENT RIGHTS. Programs, software, databases, and related documentation and technical data delivered to U.S. Government customers are "commercial computer software" or "commercial technical data" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, the use, duplication, disclosure, modification, and adaptation shall be subject to the restrictions and license terms set forth in the applicable Government contract, and, to the extent applicable by the terms of the Government contract, the additional rights set forth in FAR 52.227-19, Commercial Computer Software License (December 2007). Oracle America, Inc., 500 Oracle Parkway, Redwood City, CA 94065. Ce logiciel ou matriel a t dvelopp pour un usage gnral dans le cadre dapplications de gestion des informations. Ce logiciel ou matriel nest pas conu ni nest destin tre utilis dans des applications risque, notamment dans des applications pouvant causer des dommages corporels. Si vous utilisez ce logiciel ou matriel dans le cadre dapplications dangereuses, il est de votre responsabilit de prendre toutes les mesures de secours, de sauvegarde, de redondance et autres mesures ncessaires son utilisation dans des conditions optimales de scurit. Oracle Corporation et ses affilis dclinent toute responsabilit quant aux dommages causs par lutilisation de ce logiciel ou matriel pour ce type dapplications. Oracle et Java sont des marques dposes dOracle Corporation et/ou de ses affilis.Tout autre nom mentionn peut correspondre des marques appartenant dautres propritaires quOracle. AMD, Opteron, le logo AMD et le logo AMD Opteron sont des marques ou des marques dposes dAdvanced Micro Devices. Intel et Intel Xeon sont des marques ou des marques dposes dIntel Corporation. Toutes les marques SPARC sont utilises sous licence et sont des marques ou des marques dposes de SPARC International, Inc. UNIX est une marque dpose concd sous license par X/Open Company, Ltd.
100723@24661
Contents
Preface ...................................................................................................................................................15
Managing Terminals and Modems (Overview) ............................................................................... 21 What's New in Managing Terminals and Modems? ....................................................................... 21 SPARC: Coherent Console ......................................................................................................... 21 SPARC: Changes to How $TERM Value for Console Is Set .................................................... 22 ttymon Invocations on the System Console Managed by SMF .............................................. 22 Terminals, Modems, Ports, and Services .......................................................................................... 23 Terminal Description .................................................................................................................. 23 Modem Description ..................................................................................................................... 23 Ports Description ......................................................................................................................... 23 Services Description .................................................................................................................... 24 Port Monitors ............................................................................................................................... 24 Tools for Managing Terminals and Modems ................................................................................... 25 Serial Ports Tool ........................................................................................................................... 25 Overview of the Service Access Facility ..................................................................................... 25
Setting Up Terminals and Modems (Tasks) ..................................................................................... 27 Setting Terminals and Modems (Task Map) .................................................................................... 27 Setting Up Terminals and Modems With Serial Ports Tool (Overview) ...................................... 28 Setting Up Terminals ................................................................................................................... 28 Setting Up Modems ..................................................................................................................... 29 How to Set Up a Terminal, a Modem, and Initialize a Port (Tasks) .............................................. 30 How to Set Up a Terminal ........................................................................................................... 30 How to Set Up a Modem ............................................................................................................. 31 How to Initialize a Port ................................................................................................................ 32 Troubleshooting Terminal and Modem Problems ......................................................................... 33
3
Contents
Managing Serial Ports With the Service Access Facility (Tasks) ...................................................35 Managing Serial Ports (Task Map) .................................................................................................... 36 Using the Service Access Facility ....................................................................................................... 36 Overall SAF Administration (sacadm) .............................................................................................. 37 Service Access Controller (SAC Program) ................................................................................ 38 SAC Initialization Process ........................................................................................................... 38 Port Monitor Service Administration (pmadm) ................................................................................. 38 ttymon Port Monitor ................................................................................................................... 39 Port Initialization Process ........................................................................................................... 39 Bidirectional Service .................................................................................................................... 40 TTY Monitor and Network Listener Port Monitors ....................................................................... 40 TTY Port Monitor (ttymon) ....................................................................................................... 40 ttymon and the Console Port ...................................................................................................... 40 ttymon-Specific Administrative Command (ttyadm) ............................................................. 41 Network Listener Service (listen) ............................................................................................ 41 Special listen-Specific Administrative Command (nlsadmin) ........................................... 42 Administering ttymon Port Monitors ............................................................................................... 42 How to Set the ttymon Console Terminal Type ....................................................................... 42 How to Set the Baud Rate Speed on the ttymon Console Terminal ....................................... 43 How to Add a ttymon Port Monitor ........................................................................................... 44 How to View ttymon Port Monitor Status ................................................................................ 44 How to Stop a ttymon Port Monitor .......................................................................................... 45 How to Start a ttymon Port Monitor .......................................................................................... 45 How to Disable a ttymon Port Monitor ..................................................................................... 46 How to Enable a ttymon Port Monitor ...................................................................................... 46 How to Remove a ttymon Port Monitor .................................................................................... 46 Administering ttymon services (Task Map) ..................................................................................... 47 Administering ttymon Services ......................................................................................................... 47 How to Add a Service ................................................................................................................... 47 How to View the Status of a TTY Port Service .......................................................................... 48 How to Enable a Port Monitor Service ...................................................................................... 50 How to Disable a Port Monitor Service ..................................................................................... 51 Service Access Facility Administration (Reference) ........................................................................ 51 Files That Are Associated With the SAF ................................................................................... 51 /etc/saf/_sactab File ............................................................................................................... 52 /etc/saf/pmtab/_pmtab File .................................................................................................... 52
System Administration Guide: Advanced Administration September 2010
Contents
Service States ................................................................................................................................. 54 Port Monitor States ...................................................................................................................... 54 Port States ...................................................................................................................................... 55
Managing System Resources (Overview) ........................................................................................ 57 What's New in Managing System Resources? .................................................................................. 57 New prtconf Option to Display Product Names .................................................................... 57 psrinfo Command Option to Identify Chip Multithreading Features ................................ 58 New localeadm Command ........................................................................................................ 58 Managing System Resources (Road Map) ........................................................................................ 59
Displaying and Changing System Information (Tasks) ................................................................. 61 Displaying System Information (Task Map) .................................................................................... 61 Displaying System Information ................................................................................................. 62 How to Display a System's Physical Processor Type ................................................................ 68 How to Display a System's Logical Processor Type ................................................................. 68 How to Display Locales Installed on a System .......................................................................... 69 How to Determine If a Locale is Installed on a System ............................................................ 69 Changing System Information (Task Map) ..................................................................................... 70 Changing System Information .......................................................................................................... 71 How to Set a System's Date and Time Manually ...................................................................... 71 How to Set Up a Message-Of-The-Day ..................................................................................... 72 How to Change a System's Host Name ...................................................................................... 72 How to Add a Locale to a System ............................................................................................... 73 How to Remove a Locale From a System ................................................................................... 74
Managing Disk Use (Tasks) ................................................................................................................ 75 Managing Disk Use (Task Map) ........................................................................................................ 75 Displaying Information About Files and Disk Space ...................................................................... 76 How to Display Information About Files and Disk Space ....................................................... 77 Checking the Size of Files ................................................................................................................... 79 How to Display the Size of Files .................................................................................................. 79 How to Find Large Files ............................................................................................................... 80 How to Find Files That Exceed a Specified Size Limit ............................................................. 81
5
Contents
Checking the Size of Directories ........................................................................................................ 82 How to Display the Size of Directories, Subdirectories, and Files .......................................... 82 How to Display the User Ownership of Local UFS File Systems ............................................ 83 Finding and Removing Old or Inactive Files .................................................................................... 85 How to List the Newest Files ....................................................................................................... 85 How to Find and Remove Old or Inactive Files ........................................................................ 86 How to Clear Out Temporary Directories ................................................................................ 87 How to Find and Delete core Files ............................................................................................. 87 How to Delete Crash Dump Files ............................................................................................... 88
Managing UFS Quotas (Tasks) ........................................................................................................... 89 What Are UFS Quotas? ....................................................................................................................... 89 Using UFS Quotas ............................................................................................................................... 89 Setting Soft Limits and Hard Limits for UFS Quotas ............................................................... 90 The Difference Between Disk Block and File Limits ................................................................ 90 Setting Up UFS Quotas ....................................................................................................................... 90 Guidelines for Setting Up UFS Quotas ...................................................................................... 91 Setting Up UFS Quotas (Task Map) .................................................................................................. 92 How to Configure File Systems for UFS Quotas ...................................................................... 92 How to Set Up UFS Quotas for a User ....................................................................................... 93 How to Set Up UFS Quotas for Multiple Users ........................................................................ 94 How to Check UFS Quota Consistency ..................................................................................... 94 How to Turn On UFS Quotas ..................................................................................................... 95 Maintaining UFS Quotas (Task Map) ............................................................................................... 96 Checking UFS Quotas ......................................................................................................................... 97 How to Check for Exceeded UFS Quotas .................................................................................. 97 How to Check UFS Quotas on a File System ............................................................................. 98 Changing and Removing UFS Quotas .............................................................................................. 99 How to Change the Soft Limit Default ...................................................................................... 99 How to Change UFS Quotas for a User ................................................................................... 100 How to Disable UFS Quotas for a User ................................................................................... 101 How to Turn Off UFS Quotas ................................................................................................... 102
Scheduling System Tasks (Tasks) ....................................................................................................105 Creating and Editing crontab Files (Task Map) ........................................................................... 105
System Administration Guide: Advanced Administration September 2010
Contents
Ways to Automatically Execute System Tasks ............................................................................... 106 For Scheduling Repetitive Jobs: crontab ................................................................................ 107 For Scheduling a Single Job: at ................................................................................................. 107 Scheduling a Repetitive System Task (cron) .................................................................................. 108 Inside a crontab File .................................................................................................................. 108 How the cron Daemon Handles Scheduling .......................................................................... 109 Syntax of crontab File Entries .................................................................................................. 110 Creating and Editing crontab Files ................................................................................................. 110 How to Create or Edit a crontab File ....................................................................................... 111 How to Verify That a crontab File Exists ................................................................................ 112 Displaying crontab Files .................................................................................................................. 112 How to Display a crontab File ................................................................................................. 112 Removing crontab Files ................................................................................................................... 114 How to Remove a crontab File ................................................................................................. 114 Controlling Access to the crontab Command .............................................................................. 115 How to Deny crontab Command Access ............................................................................... 115 How to Limit crontab Command Access to Specified Users ............................................... 116 How to Verify Limited crontab Command Access ............................................................... 117 Using the at Command (Task Map) ............................................................................................... 118 Scheduling a Single System Task (at) ............................................................................................. 118 Description of the at Command .............................................................................................. 119 Controlling Access to the at Command ................................................................................. 119 How to Create an at Job ............................................................................................................ 119 How to Display the at Queue ................................................................................................... 120 How to Verify an at Job ............................................................................................................. 121 How to Display at Jobs .............................................................................................................. 121 How to Remove at Jobs ............................................................................................................. 121 How to Deny Access to the at Command ............................................................................... 122 How to Verify That at Command Access Is Denied ............................................................. 123
Managing System Accounting (Tasks) ...........................................................................................125 What's New in System Accounting ................................................................................................. 125 Oracle Solaris Process Accounting and Statistics Improvements ........................................ 125 What is System Accounting? ............................................................................................................ 126 How System Accounting Works .............................................................................................. 126
7
Contents
System Accounting Components ............................................................................................ 126 System Accounting (Task Map) ...................................................................................................... 130 Setting Up System Accounting ........................................................................................................ 131 How to Set Up System Accounting .......................................................................................... 131 Billing Users ....................................................................................................................................... 133 How to Bill Users ........................................................................................................................ 133 Maintaining Accounting Information ............................................................................................ 134 Fixing Corrupted Files and wtmpx Errors ................................................................................ 134 How to Fix a Corrupted wtmpx File .......................................................................................... 134 Fixing tacct Errors .................................................................................................................... 135 How to Fix tacct Errors ........................................................................................................... 135 Restarting the runacct Script ................................................................................................... 136 How to Restart the runacct Script ........................................................................................... 136 Stopping and Disabling System Accounting .................................................................................. 137 How to Temporarily Stop System Accounting ....................................................................... 137 How to Permanently Disable System Accounting ................................................................. 137
10
System Accounting (Reference) ......................................................................................................139 runacct Script .................................................................................................................................... 139 Daily Accounting Reports ................................................................................................................ 142 Daily Report ................................................................................................................................ 142 Daily Usage Report .................................................................................................................... 143 Daily Command Summary ....................................................................................................... 144 Monthly Command Summary ................................................................................................. 145 Last Login Report ....................................................................................................................... 146 Examining the pacct File With acctcom ................................................................................ 146 System Accounting Files ................................................................................................................... 149 Files Produced by the runacct Script ...................................................................................... 151
11
Managing System Performance (Overview) .................................................................................153 What's New in Managing System Performance? ........................................................................... 153 Enhanced pfiles Tool .............................................................................................................. 153 CPU Performance Counters ..................................................................................................... 154 Where to Find System Performance Tasks ..................................................................................... 154 System Performance and System Resources .................................................................................. 155
System Administration Guide: Advanced Administration September 2010
Contents
Processes and System Performance ................................................................................................. 155 About Monitoring System Performance ........................................................................................ 157 Monitoring Tools ....................................................................................................................... 157
12
Managing System Processes (Tasks) ..............................................................................................159 Managing System Processes (Task Map) ........................................................................................ 159 Commands for Managing System Processes ................................................................................. 160 Using the ps Command ............................................................................................................ 161 Using the /proc File System and Commands ........................................................................ 162 Managing Processes With Process Commands (/proc) ....................................................... 163 How to List Processes ................................................................................................................ 163 How to Display Information About Processes ....................................................................... 164 How to Control Processes ......................................................................................................... 166 Terminating a Process (pkill, kill) .................................................................................... 166 How to Terminate a Process (pkill) ....................................................................................... 167 How to Terminate a Process (kill) ......................................................................................... 168 Debugging a Process (pargs, preap) ....................................................................................... 168 Managing Process Class Information (Task Map) ........................................................................ 169 Managing Process Class Information ............................................................................................. 170 Changing the Scheduling Priority of Processes (priocntl) ................................................. 171 How to Display Basic Information About Process Classes (priocntl) .............................. 171 How to Display the Global Priority of a Process ..................................................................... 171 How to Designate a Process Priority (priocntl) ................................................................... 172 How to Change Scheduling Parameters of a Timesharing Process (priocntl) ................. 173 How to Change the Class of a Process (priocntl) ................................................................. 173 Changing the Priority of a Timesharing Process (nice) ....................................................... 174 How to Change the Priority of a Process (nice) ..................................................................... 175 Troubleshooting Problems With System Processes ...................................................................... 176
13
Monitoring System Performance (Tasks) ......................................................................................177 Displaying System Performance Information (Task Map) .......................................................... 177 Displaying Virtual Memory Statistics (vmstat) ............................................................................ 178 How to Display Virtual Memory Statistics (vmstat) ............................................................. 179 How to Display System Event Information (vmstat -s) ...................................................... 180 How to Display Swapping Statistics (vmstat -S) .................................................................. 180
9
Contents
How to Display Interrupts Per Device (vmstat -i) .............................................................. 181 Displaying Disk Utilization Information (iostat) ....................................................................... 181 How to Display Disk Utilization Information (iostat) ....................................................... 181 How to Display Extended Disk Statistics (iostat -xtc) ...................................................... 183 Displaying Disk Space Statistics (df) .............................................................................................. 183 How to Display Disk Space Information (df -k) ................................................................... 184 Monitoring System Activities (Task Map) ..................................................................................... 185 Monitoring System Activities (sar) ................................................................................................ 186 How to Check File Access (sar -a) ......................................................................................... 186 How to Check Buffer Activity (sar -b) ................................................................................... 187 How to Check System Call Statistics (sar -c) ........................................................................ 189 How to Check Disk Activity (sar -d) ..................................................................................... 190 How to Check Page-Out and Memory (sar -g) .................................................................... 191 Checking Kernel Memory Allocation ...................................................................................... 192 How to Check Kernel Memory Allocation (sar -k) ............................................................. 193 How to Check Interprocess Communication (sar -m) ........................................................ 194 How to Check Page-In Activity (sar -p) ................................................................................ 195 How to Check Queue Activity (sar -q) .................................................................................. 196 How to Check Unused Memory (sar -r) ............................................................................... 197 How to Check CPU Utilization (sar -u) ................................................................................ 198 How to Check System Table Status (sar -v) .......................................................................... 199 How to Check Swapping Activity (sar -w) ............................................................................ 200 How to Check Terminal Activity (sar -y) ............................................................................. 202 How to Check Overall System Performance (sar -A) .......................................................... 203 Collecting System Activity Data Automatically (sar) .................................................................. 203 Running the sadc Command When Booting ......................................................................... 203 Running the sadc Command Periodically With the sa1 Script ........................................... 204 Producing Reports With the sa2 Shell Script ......................................................................... 204 Setting Up Automatic Data Collection (sar) ......................................................................... 204 How to Set Up Automatic Data Collection ............................................................................. 206
14
Troubleshooting Software Problems (Overview) ........................................................................207 What's New in Troubleshooting? .................................................................................................... 207 Common Agent Container Problems ..................................................................................... 207 x86: SMF Boot Archive Service Might Fail During System Reboot ..................................... 208
System Administration Guide: Advanced Administration September 2010
10
Contents
Dynamic Tracing Facility .......................................................................................................... 208 kmdb Replaces kadb as Standard Solaris Kernel Debugger .................................................... 208 Where to Find Software Troubleshooting Tasks ........................................................................... 209 Troubleshooting a System Crash ..................................................................................................... 210 What to Do If the System Crashes ............................................................................................ 210 Gathering Troubleshooting Data ............................................................................................. 210 Troubleshooting a System Crash Checklist .................................................................................... 211
15
Managing System Messages ............................................................................................................213 Viewing System Messages ................................................................................................................ 213 How to View System Messages ................................................................................................. 214 System Log Rotation ......................................................................................................................... 215 Customizing System Message Logging ........................................................................................... 216 How to Customize System Message Logging .......................................................................... 217 Enabling Remote Console Messaging ............................................................................................. 218 Using Auxiliary Console Messaging During Run Level Transitions ................................... 219 Using the consadm Command During an Interactive Login Session ................................... 220 How to Enable an Auxiliary (Remote) Console ..................................................................... 220 How to Display a List of Auxiliary Consoles ........................................................................... 221 How to Enable an Auxiliary (Remote) Console Across System Reboots ............................ 221 How to Disable an Auxiliary (Remote) Console .................................................................... 222
16
Managing Core Files (Tasks) ............................................................................................................223 Managing Core Files (Task Map) .................................................................................................... 223 Managing Core Files Overview ........................................................................................................ 224 Configurable Core File Paths .................................................................................................... 224 Expanded Core File Names ....................................................................................................... 224 Setting the Core File Name Pattern .......................................................................................... 225 Enabling setuid Programs to Produce Core Files ................................................................. 226 How to Display the Current Core Dump Configuration ...................................................... 226 How to Set a Core File Name Pattern ....................................................................................... 226 How to Enable a Per-Process Core File Path ........................................................................... 227 How to Enable a Global Core File Path .................................................................................... 227 Troubleshooting Core File Problems .............................................................................................. 228 Examining Core Files ........................................................................................................................ 228
11
Contents
17
Managing System Crash Information (Tasks) ............................................................................... 229 What's New in Managing System Crash Information ................................................................... 229 Fast Crash Dump Facility .......................................................................................................... 229 Managing System Crash Information (Task Map) ........................................................................ 230 System Crashes (Overview) ............................................................................................................. 230 Oracle Solaris ZFS Support for Swap Area and Dump Devices ........................................... 231 x86: System Crashes in the GRUB Boot Environment .......................................................... 231 System Crash Dump Files ......................................................................................................... 231 Saving Crash Dumps ................................................................................................................. 232 The dumpadm Command ............................................................................................................ 232 How the dumpadm Command Works ....................................................................................... 233 Dump Devices and Volume Managers .................................................................................... 233 Managing System Crash Dump Information ................................................................................ 234 How to Display the Current Crash Dump Configuration .................................................... 234 How to Modify a Crash Dump Configuration ....................................................................... 234 How to Examine a Crash Dump ............................................................................................... 236 How to Recover From a Full Crash Dump Directory (Optional) ........................................ 237 How to Disable or Enable Saving Crash Dumps .................................................................... 238
18
Troubleshooting Miscellaneous Software Problems (Tasks) ..................................................... 239 What to Do If Rebooting Fails .......................................................................................................... 239 What to Do If You Forgot the Root Password ................................................................................ 240 x86: What to Do If the SMF Boot Archive Service Fails During a System Reboot ..................... 243 What to Do If a System Hangs ......................................................................................................... 244 What to Do If a File System Fills Up ................................................................................................ 245 File System Fills Up Because a Large File or Directory Was Created ................................... 245 A TMPFS File System is Full Because the System Ran Out of Memory .................................. 246 What to Do If File ACLs Are Lost After Copy or Restore ............................................................. 246 Troubleshooting Backup Problems ................................................................................................ 246 The root (/) File System Fills Up After You Back Up a File System ..................................... 246 Make Sure the Backup and Restore Commands Match ........................................................ 247 Check to Make Sure You Have the Right Current Directory ................................................ 247 Interactive Commands .............................................................................................................. 247 Troubleshooting Common Agent Container Problems in the Oracle Solaris OS ..................... 247 Port Number Conflicts .............................................................................................................. 248
12
Contents
How to Check Port Numbers .................................................................................................... 248 Compromised Security for Superuser Password ................................................................... 249 How to Generate Security Keys for the Oracle Solaris OS ..................................................... 249
19
Troubleshooting File Access Problems (Tasks) ............................................................................. 251 Solving Problems With Search Paths (Command not found) ........................................................251 How to Diagnose and Correct Search Path Problems ........................................................... 252 Solving File Access Problems ........................................................................................................... 253 Changing File and Group Ownerships .................................................................................... 254 Recognizing Problems With Network Access ................................................................................ 254
20
Resolving UFS File System Inconsistencies (Tasks) ...................................................................... 255 New fsck Error Messages ................................................................................................................. 255 fsck Error Messages ......................................................................................................................... 256 General fsck Error Messages ................................................................................................... 257 Initialization Phase fsck Messages .......................................................................................... 259 Phase 1: Check Blocks and Sizes Messages .............................................................................. 262 Oracle Solaris 10: Phase 1B: Rescan for More DUPS Messages ............................................ 266 Phase 1B: Rescan for More DUPS Messages ........................................................................... 266 Phase 2: Check Path Names Messages ..................................................................................... 267 Phase 3: Check Connectivity Messages ................................................................................... 274 Phase 4: Check Reference Counts Messages ........................................................................... 276 Phase 5: Check Cylinder Groups Messages ............................................................................. 279 Phase 5: Check Cylinder Groups Messages ............................................................................. 280 fsck Summary Messages .......................................................................................................... 281 Cleanup Phase Messages ........................................................................................................... 281
21
Troubleshooting Software Package Problems (Tasks) ............................................................... 283 Troubleshooting Software Package Symbolic Link Problems ..................................................... 283 Specific Software Package Installation Errors ................................................................................ 284 General Software Package Installation Problems .......................................................................... 285
13
14
Preface
System Administration Guide: Advanced Administration is part of a documentation set that covers a significant part of the Oracle Solaris system administration information. This guide includes information for both SPARC and x86 based systems. This book assumes that you have installed the Oracle Solaris operating system (OS). It also assumes that you have set up any networking software that you plan to use. For the Oracle Solaris release, new features that are interesting to system administrators are covered in sections called What's New in ... ? in the appropriate chapters.
Note This Oracle Solaris release supports systems that use the SPARC and x86 families of
processor architectures. The supported systems appear in the Solaris OS: Hardware Compatibility Lists (http://www.sun.com/bigadmin/hcl). This document cites any implementation differences between the platform types. In this document these x86 related terms mean the following:
x86 refers to the larger family of 64-bit and 32-bit x86 compatible products. x64 relates specifically to 64-bit x86 compatible CPUs. 32-bit x86 points out specific 32-bit information about x86 based systems.
For supported systems, see the Solaris OS: Hardware Compatibility Lists.
15
Preface
User accounts and groups, server and client support, shutting down and booting a system, managing services, and managing software (packages and patches) Terminals and modems, system resources (disk quotas, accounting, and crontabs), system processes, and troubleshooting Oracle Solaris software problems Removable media, disks and devices, file systems, and backing up and restoring data TCP/IP network administration, IPv4 and IPv6 address administration, DHCP, IPsec, IKE, Solaris IP filter, Mobile IP, IP network multipathing (IPMP), and IPQoS DNS, NIS, and LDAP naming and directory services, including transitioning from NIS to LDAP and transitioning from NIS+ to LDAP NIS+ naming and directory services Web cache servers, time-related services, network file systems (NFS and Autofs), mail, SLP, and PPP Printing topics and tasks, using services, tools, protocols, and technologies to set up and administer printing services and printers Auditing, device management, file security, BART, Kerberos services, PAM, Solaris Cryptographic Framework, privileges, RBAC, SASL, and Solaris Secure Shell Resource management topics projects and tasks, extended accounting, resource controls, fair share scheduler (FSS), physical memory control using the resource capping daemon (rcapd), and resource pools; virtualization using Solaris Zones software partitioning technology and lx branded zones ZFS storage pool and file system creation and management, snapshots, clones, backups, using access control lists (ACLs) to protect ZFS files, using ZFS on an Oracle Solaris system with zones installed, emulated volumes, and troubleshooting and data recovery
System Administration Guide: Devices and File Systems System Administration Guide: IP Services
System Administration Guide: Naming and Directory Services (DNS, NIS, and LDAP) System Administration Guide: Naming and Directory Services (NIS+) System Administration Guide: Network Services System Administration Guide: Printing
System Administration Guide: Oracle Solaris Containers-Resource Management and Oracle Solaris Zones
16
Preface
Book Title
Topics
Oracle Solaris Trusted Extensions Administrators Procedures Oracle Solaris Trusted Extensions Configuration Guide
System administration that is specific to the Oracle Solaris' Trusted Extensions feature Starting with the Solaris 10 5/08 release, describes how to plan for, enable, and initially configure the Oracle Solaris' Trusted Extensions feature
document. Oracle does not endorse and is not responsible or liable for any content, advertising, products, or other materials that are available on or through such sites or resources. Oracle will not be responsible or liable for any actual or alleged damage or loss caused by or in connection with the use of or reliance on any such content, goods, or services that are available on or through such sites or resources.
Documentation (http://docs.sun.com) Support (http://www.oracle.com/us/support/systems/index.html) Training (http://education.oracle.com) Click the Sun link in the left navigation bar.
Discuss technical problems and solutions on the Discussion Forums (http://forums.oracle.com). Get hands-on step-by-step tutorials with Oracle By Example (http://www.oracle.com/ technology/obe/start/index.html). Download Sample Code (http://www.oracle.com/technology/sample_code/ index.html).
17
Preface
Typographic Conventions
The following table describes the typographic conventions that are used in this book.
TABLE P1 Typeface
Typographic Conventions
Meaning Example
AaBbCc123
The names of commands, files, and directories, and onscreen computer output
Edit your .login file. Use ls -a to list all files. machine_name% you have mail.
AaBbCc123
What you type, contrasted with onscreen computer output Placeholder: replace with a real name or value Book titles, new terms, and terms to be emphasized
machine_name% su Password: The command to remove a file is rm filename. Read Chapter 6 in the User's Guide. A cache is a copy that is stored locally. Do not save the file. Note: Some emphasized items appear bold online.
aabbcc123 AaBbCc123
Shell Prompts
Prompt
Bash shell, Korn shell, and Bourne shell Bash shell, Korn shell, and Bourne shell for superuser C shell C shell for superuser
$ # machine_name% machine_name#
18
Preface
General Conventions
Be aware of the following conventions that are used in this book.
When following steps or using examples, be sure to type double-quotes ("), left single-quotes (), and right single-quotes () exactly as shown. The key referred to as Return is labeled Enter on some keyboards. It is assumed that the root path includes the /sbin, /usr/sbin, /usr/bin, and /etc directories, so the steps in this book show the commands in these directories without absolute path names. Steps that use commands in other, less common, directories show the absolute path in the example.
19
20
C H A P T E R
This chapter provides overview information for managing terminals and modems. This is a list of the overview information in this chapter: What's New in Managing Terminals and Modems? on page 21 Terminals, Modems, Ports, and Services on page 23 Tools for Managing Terminals and Modems on page 25 Serial Ports Tool on page 25 Overview of the Service Access Facility on page 25
For step-by-step instructions on how to set up terminals and modems with the Serial Ports tool, see Chapter 2, Setting Up Terminals and Modems (Tasks). For step-by-step instructions on how to set up terminals and modems with the Service Access Facility (SAF), see Chapter 3, Managing Serial Ports With the Service Access Facility (Tasks).
console output. The generated console output is more efficient than using OBP rendering. The coherent console also avoids idling CPUs during the SPARC console output and enhances the user experience.
This change does not impact how the terminal type is set for the serial port. You can still use the svccfg command to modify the $TERM value, as shown in the following example:
# svccfg svc:> select system/console-login svc:/system/console-login> setprop ttymon/terminal_type = "xterm" svc:/system/console-login> exit
For step-by-step instructions on how to specify ttymon command arguments with SMF, see How to Set the ttymon Console Terminal Type on page 42. For a complete overview of SMF, see Chapter 18, Managing Services (Overview), in System Administration Guide: Basic Administration. For information on the step-by-step procedures that are associated with SMF, see Chapter 19, Managing Services (Tasks), in System Administration Guide: Basic Administration.
22 System Administration Guide: Advanced Administration September 2010
Terminal Description
Your system's bitmapped graphics display is not the same as an alphanumeric terminal. An alphanumeric terminal connects to a serial port and displays only text. You don't have to perform any special steps to administer the graphics display.
Modem Description
Modems can be set up in three basic configurations:
A modem connected to your home computer might be set up to provide dial-out service. With dial-out service, you can access other computers from your own home. However, nobody outside can gain access to your machine. Dial-in service is just the opposite. Dial-in service allows people to access a system from remote sites. However, it does not permit calls to the outside world. Bidirectional access, as the name implies, provides both dial-in and dial-out capabilities.
Ports Description
A port is a channel through which a device communicates with the operating system. From a hardware perspective, a port is a receptacle into which a terminal or modem cable might be physically connected. However, a port is not strictly a physical receptacle, but an entity with hardware (pins and connectors) and software (a device driver) components. A single physical receptacle often provides multiple ports, allowing connection of two or more devices. Common types of ports include serial, parallel, small computer systems interface (SCSI), and Ethernet.
Chapter 1 Managing Terminals and Modems (Overview) 23
A serial port, using a standard communications protocol, transmits a byte of information bit-by-bit over a single line. Devices that have been designed according to RS-232-C or RS-423 standards, this include most modems, alphanumeric terminals, plotters, and some printers. These devices can be connected interchangeably, using standard cables, into serial ports of computers that have been similarly designed. When many serial port devices must be connected to a single computer, you might need to add an adapter board to the system. The adapter board, with its driver software, provides additional serial ports for connecting more devices than could otherwise be accommodated.
Services Description
Modems and terminals gain access to computing resources by using serial port software. Serial port software must be set up to provide a particular service for the device attached to the port. For example, you can set up a serial port to provide bidirectional service for a modem.
Port Monitors
The main mechanism for gaining access to a service is through a port monitor. A port monitor is a program that continuously monitors for requests to log in or access printers or files. When a port monitor detects a request, it sets whatever parameters are required to establish communication between the operating system and the device requesting service. Then, the port monitor transfers control to other processes that provide the services needed. The following table describes the two types of port monitors included in the Oracle Solaris release.
TABLE 11 Man Page
listen(1M)
listen
Controls access to network services, such as handling remote print requests prior to the Solaris 2.6 release. The default Oracle Solaris OS no longer uses this port monitor type. Provides access to the login services needed by modems and alphanumeric terminals. The Serial Ports tool automatically sets up a ttymon port monitor to process login requests from these devices.
ttymon(1M)
ttymon
24
You might be familiar with an older port monitor called getty. The new ttymon port monitor is more powerful. A single ttymon port monitor can replace multiple occurrences of getty. Otherwise, these two programs serve the same function. For more information, see the getty(1M) man page.
Service Access Facility (SAF) commands Solaris Management Console's Serial Ports tool
Overview of the Service Access Facility on page 25 Chapter 2, Setting Up Terminals and Modems (Tasks), and Solaris Management Console online help
Templates for common terminal and modem configurations Multiple port setup, modification, or deletion Quick visual status of each port
ttymon and listen port monitors by using the sacadm command ttymon port monitor services by using the pmadm and ttyadm commands listen port monitor services by using the pmadm and nlsadmin commands Troubleshoot tty devices Troubleshoot incoming network requests for printing service
25
The SAF is an open-systems solution that controls access to system and network resources through tty devices and local-area networks (LANs). The SAF is not a program, but a hierarchy of background processes and administrative commands.
26
C H A P T E R
This chapter provides step-by-step instructions for setting up terminals and modems using Solaris Management Console's Serial Ports tool. For overview information about terminals and modems, see Chapter 1, Managing Terminals and Modems (Overview). For overview information about managing system resources, see Chapter 4, Managing System Resources (Overview). For information about the procedures associated with setting up terminals and modems using Solaris Management Console's Serial Ports tool, see Setting Terminals and Modems (Task Map) on page 27
Set up a terminal.
Set up a terminal by using the How to Set Up a Terminal on Solaris Management Console Serial page 30 Ports tool. Configure the terminal by choosing the appropriate option from the Action menu. Set up a modem by using the How to Set Up a Modem on Solaris Management Console Serial page 31 Ports tool. Configure the modem by choosing the appropriate option from the Action menu. To initialize a port, use the Solaris Management Console Serial Ports tool. Choose the appropriate option from the Action menu. How to Initialize a Port on page 32
Set up a modem.
Initialize a port.
27
Terminal Modem Dial-In Modem Dial-Out Modem Dial-In/Dial-Out Initialize Only No Connection
The Configure options provide access to the templates for configuring these services. You can view two levels of detail for each serial port: Basic and Advanced. You can access the Advanced level of detail for each serial port after it is configured by selecting the serial port and selecting the Properties option from the Action menu. After a serial port is configured, you can disable or enable the port with the SAF commands. For information on using the SAF commands, see Chapter 3, Managing Serial Ports With the Service Access Facility (Tasks). For information on using the Serial Ports commandline interface, see the smserialport(1M) man page.
Setting Up Terminals
The following table describes the menu items (and their default values) when you set up a terminal by using the Serial Ports tool.
TABLE 21 Detail
Basic
Port Description Service Status Baud Rate Terminal Type Login Prompt Terminal Enabled 9600 vi925 ttyn login: Software Not available
Advanced
28
TABLE 21 Detail
(Continued)
Default Value
Option: Bidirectional Option: Initialize Only Timeout (seconds) Port Monitor Service Program
Setting Up Modems
The following table describes the three modem templates that are available when you set up a modem using the Serial Ports tool.
TABLE 22
Modem Templates
Description
Modem Configuration
Users can dial in to the modem but cannot dial out. Users can dial out from the modem but cannot dial in. Users can either dial in or dial out from the modem.
Basic
Port Name Description Service Status Baud Rate Login Prompt Modem Dial In Only Enabled 9600 ttyn login: Software Not available Not available Modem Dial Out Only Enabled 9600 ttyn login: Software Not available Not available Available Modem Dial In and Out Enabled 9600 ttyn login: Software Not available Available Not available
Advanced
29
TABLE 23 Detail
(Continued)
Modem - Dial-Out Only Modem - Dial In and Out
The following table describes the default values for the Initialize Only template.
TABLE 24 Detail
Basic
Initialize Only - No Connection Enabled 9600 ttyn login: Software Not available Available Available Never zsmon /usr/bin/login
Advanced
Carrier Detection Option: Connect on Carrier Option: Bidirectional Option: Initialize Only Timeout (seconds) Port Monitor Service Program
For information on starting the Solaris Management Console, see Starting the Solaris Management Console in System Administration Guide: Basic Administration.
30 System Administration Guide: Advanced Administration September 2010
2 3
Click This Computer icon in the Navigation pane. Click Devices and Hardware >Serial Ports. The Serial Ports menu is displayed. Select the port that will be used with a terminal. Choose Configure>Terminal from the Action menu. The Configure Serial Port window is displayed in Basic Detail mode. For a description of the Terminal menu items, see Table 21.
4 5
6 7 8 9 10 11
Click OK. To configure the advanced items, select the port configured as a terminal. Select Properties from the Action menu. Change the values of template entries, if desired. Click OK to configure the port. Verify that the terminal service has been added.
$ pmadm -l -s ttyn
For information on starting the Solaris Management Console, see Starting the Solaris Management Console in System Administration Guide: Basic Administration.
2 3
Click This Computer icon in the Navigation pane. Click Devices and Hardware>Serial Ports. The Serial Ports menu is displayed. Select the port that will be used with a modem. Choose one of the following Configure options from the Action menu. a. Configure>Modem (Dial In)
Chapter 2 Setting Up Terminals and Modems (Tasks) 31
4 5
b. Configure>Modem (Dial Out) c. Configure>Modem (Dial In/Out) The Configure Serial Port window is displayed in Basic Detail mode. For a description of the Modem menu items, see Table 23.
6 7 8 9 10 11
Click OK. To configure the advanced items, select the port configured as a modem. Select Properties from the Action menu. Change the values of template entries, if desired. Click OK to configure the port. Verify that the modem service has been configured.
$ pmadm -l -s ttyn
For information on starting the Solaris Management Console, see Starting the Solaris Management Console in System Administration Guide: Basic Administration.
2 3
Click This Computer icon in the Navigation pane. Click Devices and Hardware>Serial Ports. The Serial Ports menu is displayed.
4 5
Select the port to be initialized. Choose Configure>Initialize Only No Connection. The Serial Port window is displayed in Basic Detail mode. For a description of the Initialize Only menu items, see Table 24.
Click OK.
32
To configure the advanced items, select the port configured as initialize only. Then, select Properties from the Action menu. Change the values of template entries, if desired. Click OK to configure the port. Verify that the modem service has been initialized.
$ pmadm -l -s ttyn
8 9 10
Check with the user. Malfunctions in terminals and modem use are typically reported by a user who has failed to log in or dial in. For this reason, begin troubleshooting by checking for a problem on the desktop. Some common reasons for login failure include:
Login ID or password is incorrect Terminal is waiting for X-ON flow control key (Control-Q) Serial cable is loose or unplugged Terminal configuration is incorrect Terminal is shut off or otherwise has no power
Check the terminal. Continue to troubleshoot by checking the configuration of the terminal or modem. Determine the proper ttylabel for communicating with the terminal or modem. Verify that the terminal or modem settings match the ttylabel settings.
Check the terminal server. If the terminal checks out, continue to search for the source of the problem on the terminal or modem server. Use the pmadm command to verify that a port monitor has been configured to service the terminal or modem and that it has the correct ttylabel associated with it. For example:
$ pmadm -l -t ttymon
Examine the /etc/ttydefs file and doublecheck the label definition against the terminal configuration. Use the sacadmcommand to check the port monitor's status. Use pmadm to check the service associated with the port the terminal uses.
Check the serial connection. If the Service Access Controller is starting the TTY port monitor and the following is true:
33
The pmadm command reports that the service for the terminal's port is enabled. The terminal's configuration matches the port monitor's configuration.
Then, continue to search for the problem by checking the serial connection. A serial connection comprises serial ports, cables, and terminals. Test each of these parts by using one part with two other parts that are known to be reliable. Test all of the following:
Do not use the Serial Ports tool to modify serial port settings if the serial port is being used as a console. Starting with Oracle Solaris 10, invocations of ttymon for the console are managed by SMF. For step-by-step instructions on how to change the console terminal type, see How to Set the ttymon Console Terminal Type on page 42.
For more information on ttymon and SMF, see What's New in Managing Terminals and Modems? on page 21.
34
C H A P T E R
This chapter describes how to manage serial port services using the Service Access Facility (SAF). Also included in this chapter is information on how to perform console administration with the Service Management Facility (SMF).
Note The SAF and SMF are two different tools in the Oracle Solaris OS. Starting with the Oracle Solaris 10, ttymon invocations on the system console are now managed by SMF. The SAF tool is still used to administer terminals, modems, and other network devices.
Using the Service Access Facility on page 36 Overall SAF Administration (sacadm) on page 37 Port Monitor Service Administration (pmadm) on page 38 TTY Monitor and Network Listener Port Monitors on page 40
For information on the step-by-step procedures that are associated with managing serial ports , see the following:
Managing Serial Ports (Task Map) on page 36 Administering ttymon services (Task Map) on page 47
For reference information about the SAF, see Service Access Facility Administration (Reference) on page 51.
35
You might need to perform the following console administration tasks: Set the ttymon console terminal type. Starting with Oracle Solaris 10, you must use the svccfg command to specify the ttymon console terminal type.
How to Set the ttymon Console Terminal Type on page 42 How to Set the Baud Rate Speed on the ttymon Console Terminal on page 43
Set the ttymon console terminal baud rate speed. How to Add a ttymon Port Monitor on page 44 How to View ttymon Port Monitor Status on page 44
View a ttymon port monitor status. Use the sacadm command to view ttymon port monitor status. Stop a ttymon port monitor. Start a ttymon port monitor. Disable a ttymon port monitor. Enable a ttymonport monitor. Remove a ttymon port monitor.
Use the sacadm command to stop a How to Stop a ttymon Port ttymon port monitor. Monitor on page 45 Use the sacadm command to start a How to Start a ttymon Port ttymon port monitor. Monitor on page 45 Use the sacadm command to disable a ttymon port monitor. How to Disable a ttymon Port Monitor on page 46
Use the sacadm command to enable How to Enable a ttymon Port a ttymon port monitor. Monitor on page 46 Use the sacadm command to remove a ttymon port monitor. How to Remove a ttymon Port Monitor on page 46
You administer the services associated with ports through the pmadm command. While services provided through the SAC can differ from network to network, the SAC and its administrative commands, sacadm and pmadm, are network independent. The following table describes the SAF control hierarchy. The sacadm command is used to administer the SAC, which controls the ttymon and listen port monitors. The services of ttymon and listen are in turn controlled by the pmadm command. One instance of ttymon can service multiple ports. One instance of listen can provide multiple services on a network interface.
TABLE 31 Function
Command for adding and removing port monitors SAF's master program Monitors serial port login requests Monitors requests for network services Command for controlling port monitors services Services to which the SAF provides access Console services are managed by the SMF service, svc:/system/console-login:default. This service invokes the ttymon port monitor. Do not use the pmadm or the sacadm command to manage the console. For more information, see ttymon and the Console Port on page 40, How to Set the ttymon Console Terminal Type on page 42, and How to Set the Baud Rate Speed on the ttymon Console Terminal on page 43.
Chapter 3 Managing Serial Ports With the Service Access Facility (Tasks)
37
Interprets the per-service configuration file for the port Creates an /etc/utmpx entry, if required Establishes the service environment Invokes the service associated with the port
After the service terminates, the ttymon port monitor cleans up the /etc/utmpx entry, if this entry exists, and returns the port to its initial state.
Chapter 3 Managing Serial Ports With the Service Access Facility (Tasks)
39
Bidirectional Service
If a port is configured for bidirectional service, the ttymon port monitor does the following:
Allows users to connect to a service. Allows the uucico, cu, or ct commands to use the port for dialing out, if the port is free. Waits to read a character before printing a prompt. Invokes the port's associated service, without sending the prompt message, when a connection is requested, if the connect-on-carrier flag is set.
Monitors ports Sets terminal modes, baud rates, and line disciplines Invokes the login process
The ttymon port monitor provides users the same services that the getty port monitor did under previous versions of SunOS 4.1 software. The ttymon port monitor runs under the SAC program and is configured with the sacadm command. Each instance of ttymon can monitor multiple ports. These ports are specified in the port monitor's administrative file. The administrative file is configured by using the pmadm and ttyadm commands.
defined for any of the properties, then the value is not used for ttymon. However, if the ttymon device value is empty, or not set, then /dev/console is used as the default to enable ttymon to run. The following properties are available under the SMF service, svc:/system/console-login:default: ttymon/nohangup Specifies the nohangup property. If set to true, do not force a line hang up by setting the line speed to zero before setting the default or specified speed. Specifies the prompt string for the console port. Specifies the default terminal type for the console. Specifies the console device. Specifies the TTY label in the /etc/ttydefs line.
Monitors the network for service requests Accepts requests when they arrive Invokes servers in response to those service requests
The listen port monitor is configured by using the sacadm command. Each instance of listen can provide multiple services. These services are specified in the port monitor's administrative file. This administrative file is configured by using the pmadm and nlsadmin commands. The network listener process can be used with any connection-oriented transport provider that conforms to the Transport Layer Interface (TLI) specification. In the Oracle Solaris OS, listen port monitors can provide additional network services not provided by the inetd service.
Chapter 3 Managing Serial Ports With the Service Access Facility (Tasks)
41
where xterm is an example of a terminal type that you might want to use.
42
console. If you do not restart the service instance immediately, the property changes apply at the next login prompt on the console.
How to Set the Baud Rate Speed on the ttymon Console Terminal
This procedure shows how to set the baud rate speed on the ttymon console terminal. Support for console speeds on x86 based systems are dependent on the specific platform. The following are supported console speeds for SPARC based systems:
Become superuser or assume an equivalent role. Roles contain authorizations and privileged commands. For more information about roles, see Configuring RBAC (Task Map) in System Administration Guide: Security Services. Use the eeprom command to set a baud rate speed that is appropriate for your system type.
# eeprom ttya-mode=baud-rate,8,n,1,-
For example, to change the baud rate on an x86 based system's console to 38400, type:
# eeprom ttya-mode=38400,8,n,1,3
Make the following additional changes for your system type. Note that these changes are platform-dependent.
On SPARC based systems: Change the baud rate speed in the /kernel/drv/options.conf file. Use the following command to change the baud rate to 9600:
# 9600 :bd: ttymodes="2502:1805:bd:8a3b:3:1c:7f:15:4:0:0:0:11:13:1a:19:12:f:17:16";
Chapter 3 Managing Serial Ports With the Service Access Facility (Tasks)
43
Use the following command to change the baud rate speed to 19200.
# 19200 :be: ttymodes="2502:1805:be:8a3b:3:1c:7f:15:4:0:0:0:11:13:1a:19:12:f:17:16";
Use the following command to change the baud rate speed to 38400:
# 38400 :bf: ttymodes="2502:1805:bf:8a3b:3:1c:7f:15:4:0:0:0:11:13:1a:19:12:f:17:16";
On x86 based systems: Change the console speed if the BIOS serial redirection is enabled. The method that you use to change the console speed is platform-dependent.
-a -p -t -c -v -y
Specifies the add port monitor option. Specifies the pmtag mbmon as the port monitor tag. Specifies the port monitor type as ttymon. Defines the command string used to start the port monitor. Specifies the version number of the port monitor. Defines a comment to describe this instance of the port monitor.
-l -p
Specifies the list port monitor status flag. Specifies the pmtag mbmon as the port monitor tag.
44
Example 31
Identifies the port monitor name, mbmon. Identifies the port monitor type, ttymon. Indicates whether the following flags are set: d x dash (-) Do not enable the new port monitor. Do not start the new port monitor. No flags are set.
Indicates the return count value. A return count of 0 indicates that the port monitor is not to be restarted if it fails. Indicates the current status of the port monitor. Identifies the command used to start the port monitor. Identifies any comment used to describe the port monitor.
-k -p
Specifies the kill port monitor status flag. Specifies the pmtag mbmon as the port monitor tag.
Chapter 3 Managing Serial Ports With the Service Access Facility (Tasks)
45
-s -p
Specifies the start port monitor status flag. Specifies the pmtag mbmon as the port monitor tag.
Become superuser or assume an equivalent role. Roles contain authorizations and privileged commands. For more information about roles, see Configuring RBAC (Task Map) in System Administration Guide: Security Services.
-d -p
Specifies the disable port monitor status flag. Specifies the pmtag mbmon as the port monitor tag.
-e -p
Specifies the enable port monitor status flag. Specifies the pmtag mbmon as the port monitor tag.
46
Note Port monitor configuration files cannot be updated or changed by using the sacadm
command. To reconfigure a port monitor, remove it and then add a new one.
1
Become superuser or assume an equivalent role. Roles contain authorizations and privileged commands. For more information about roles, see Configuring RBAC (Task Map) in System Administration Guide: Security Services. Remove a ttymon port monitor.
# sacadm -r -p mbmon
-r -p
Specifies the remove port monitor status flag. Specifies the pmtag mbmon as the port monitor tag.
Add a ttymon service. View the Status of a TTY Port Service. Enable a port monitor service. Disable a port monitor service.
Use the pmadm command to add a service. Use the pmadmcommand to view the status of a TTY port.
How to Add a Service on page 47 How to View the Status of a TTY Port Service on page 48
Use the pmadm command with the How to Enable a Port Monitor -e option to enable a port monitor. Service on page 50 Use the pmadm command with the How to Disable a Port Monitor -d option to disable a port monitor. Service on page 51
-a -p -s -i -v -m
Specifies the add port monitor status flag. Specifies the pmtag mbmon as the port monitor tag. Specifies the svctag a as the port monitor service tag. Specifies the identity to be assigned to svctag when the service runs. Specifies the version number of the port monitor. Specifies the ttymon-specific configuration data formatted by ttyadm.
The preceding pmadm command contains an embedded ttyadm command. The options in this embedded command are as follows: -b -i -l -m -d -s Specifies the bidirectional port flag. Specifies the inactive (disabled) response message. Specifies which TTY label in the /etc/ttydefs file to use. Specifies the STREAMS modules to push before invoking this service. Specifies the full path name to the device to use for the TTY port. Specifies the full path name of the service to invoke when a connection request is received. If arguments are required, enclose the command and its arguments in quotation marks ().
Become superuser or assume an equivalent role. Roles contain authorizations and privileged commands. For more information about roles, see Configuring RBAC (Task Map) in System Administration Guide: Security Services.
48
-l -p -s
Example 32
Lists service information on the system. Specifies the pmtag mbmon as the port monitor tag. Specifies the svctag a as the port monitor service tag.
Identifies the port monitor name, mbmon, that is set by using the pmadm -p command. Identifies the port monitor type, ttymon. Indicates the service tag value that is set by using the pmadm -s command. Identifies whether the following flags are set by using the pmadm -f command.
x Do not enable the service. u Create a utmpx entry for the service. dash (-) No flags are set.
ID <PMSPECIFIC> /dev/term/a -
Indicates the identity assigned to the service when it is started. This value is set by using the pmadm -i command. Information Indicates the TTY port path name that is set by using the ttyadm -d command. Indicates whether the following flags are set by using the ttyadm -c -b -h -I -r command.
c Sets the connect on carrier flag for the port. b Sets the port as bidirectional, allowing both incoming and outgoing traffic. h Suppresses an automatic hangup immediately after an incoming call is received. I Initializes the port.
Chapter 3 Managing Serial Ports With the Service Access Facility (Tasks)
49
r Forces ttymon to wait until it receives a character from the port before it prints the login: message. dash (-) No flags are set.
Indicates a value that is set by using the ttyadm -r count option. This option determines when ttymon displays a prompt after receiving data from a port. If count is 0, ttymon waits until it receives any character. If count is greater than 0, ttymon waits until count new lines have been received. No value is set in this example. Identifies the full path name of the service to be invoked when a connection is received. This value is set by using the ttyadm -s command. Identifies the ttyadm -t command's time-out value. This option specifies that ttymon should close a port if the open on the port succeeds, and no input data is received in timeout seconds. There is no time-out value in this example. Identifies the TTY label in the /etc/ttydefs file. This value is set by using the ttyadm -l command. Identifies the STREAMS modules to be pushed. These modules are set by using the ttyadmin -m command. Identifies an inactive message to be displayed when the port is disabled. This message is set by using the ttyadm -i command. Identifies the terminal type, if set, by using the ttyadm -T command. The terminal type is tvi925 in this example. Identifies the software carrier value that is set by using the ttyadm -S command. n turns the software carrier off. y turns the software carrier on. The software carrier is turned on in this example. Identifies any comment specified with the pmadm -y command. There is no comment in this example.
/usr/bin/login
tvi925 y
50
-e -p -s
Specifies the enable flag. Specifies the pmtag mbmon as the port monitor tag. Specifies the svctag a as the port monitor service tag.
-d -p -s
Specifies the disable flag. Specifies the pmtag mbmon as the port monitor tag. Specifies the svctag a as the port monitor service tag.
/etc/saf/_sysconfig /etc/saf/_sactab
Per-system configuration script The SAC's administrative file that contains configuration data for the port monitors that the SAC controls Home directory for port monitor pmtag
/etc/saf/pmtag
Chapter 3 Managing Serial Ports With the Service Access Facility (Tasks)
51
File Name
Description
/etc/saf/pmtag/_config
Per-port monitor configuration script for port monitor pmtag if it exists Port monitor pmtag's administrative file that contains port monitor-specific configuration data for the services pmtag provides Per-service configuration script for service svctag The SAC's log file Directory for files created by pmtag, for example, log files
/etc/saf/pmtag/_pmtab
/etc/saf/_sactab File
The information in the /etc/saf/_sactab file is as follows:
# VERSION=1 zsmon:ttymon::0:/usr/lib/saf/ttymon #
Indicates the Service Access Facility version number. Is the name of the port monitor. Is the type of port monitor. Indicates whether the following two flags are set: d x Do not enable the port monitor. Do not start the port monitor. No flags are set in this example.
0 /usr/lib/saf/ttymon
Indicates the return code value. A return count of 0 indicates that the port monitor is not be restarted if the port monitor fails. Indicates the port monitor path name.
/etc/saf/pmtab/_pmtab File
The /etc/saf/pmtab/_pmtab file, such as /etc/saf/zsmon/_pmtab, is similar to the following:
# VERSION=1 ttya:u:root:reserved:reserved:reserved:/dev/term/a:I::/usr/bin/login::9600: ldterm,ttcompat:ttya login\: ::tvi925:y:#
# VERSION=1
52
ttya x,u
Indicates the service tag. Identifies whether the following flags are set: x u Do not enable the service. Create a utmpx entry for the service.
Indicates the identity assigned to the service tag. This field is reserved for future use. This field is reserved for future use. This field is reserved for future use. Indicates the TTY port path name. Identifies the full path name of the service to be invoked when a connection is received. Indicates whether the following flags are set: c b h I r Sets the connect on carrier flag for the port. Sets the port as bidirectional, allowing both incoming and outgoing traffic. Suppresses an automatic hand-up immediately after an incoming call is received. Initializes the port. Forces ttymon to wait until it receives a character from the port before ttymon prints the login:message.
Identifies the TTY label defined in the /etc/ttydefs file. Identifies the STREAMS modules to be pushed. Identifies the prompt to be displayed. Indicates yes or no response. Identifies any inactive (disabled) response message. Identifies the terminal type. Indicates whether the software carrier is set (y/n).
Chapter 3 Managing Serial Ports With the Service Access Facility (Tasks)
53
Service States
The sacadm command controls the states of services. The following list describes the possible states of services. Enabled Disabled Default state. When the port monitor is added, the service operates. Default state. When the port monitor is removed, the service stops.
Started Enabled
Default state When the port monitor is added, it is automatically started. Default state When the port monitor is added, it is automatically ready to accept requests for service. Default state When the port monitor is removed, it is automatically stopped. Default state When the port monitor is removed, it automatically continues existing services and refuses to add new services. Intermediate state The port monitor is in the process of starting. Intermediate state The port monitor has been manually terminated, but it has not completed its shutdown procedure. The port monitor is on the way to becoming stopped. Inactive state The port monitor has been killed. All ports previously monitored are inaccessible. An external user cannot tell whether a port is disabled or notrunning. Inactive state The port monitor is unable to start and remain running.
Stopped Disabled
Starting Stopping
Notrunning
Failed
To determine the state of any particular port monitor, use the following command:
# sacadm -l -p portmon-name
54
Port States
Ports can be enabled or disabled depending on the state of the port monitor that controls the ports.
State Description
Serial (ttymon) port states Enabled The ttymon port monitor sends a prompt message to the port and provides login service to it. Default state of all ports if ttymon is killed or disabled. If you specify this state, ttymon sends out the disabled message when it receives a connection request.
Disabled
Chapter 3 Managing Serial Ports With the Service Access Facility (Tasks)
55
56
C H A P T E R
This chapter provides a brief description of the system resource management features that are available in the Oracle Solaris OS and a road map to help you manage system resources. Using these features, you can display general system information, monitor disk space, set disk quotas and use accounting programs. You can also schedule the cron and at commands to automatically run routine commands. This section does not cover information on resource management that enables you to allocate, monitor, and control system resources in a flexible way. For information on the procedures that are associated with managing system resources without resource management, see Managing System Resources (Road Map) on page 59. For information on managing system resources with resource management, see Chapter 1, Introduction to Solaris 10 Resource Management, in System Administration Guide: Oracle Solaris Containers-Resource Management and Oracle Solaris Zones.
The firmware device tree root properties that are displayed by using the -b option to the prtconf command are as follows:
To display additional platform- specific output that might be available, use the prtconf -vb command. For more information, see the prtconf(1M) man page and How to Display a System's Product Name on page 67.
Use various commands to display and change system information, such as general system information, the language environment, the date and time, and the system's host name.
Identify how disk space is used and take steps Chapter 6, Managing Disk Use to remove old and unused files. (Tasks) Use UFS file system quotas to manage how much disk space is used by users. Use cron and at jobs to help schedule system routines that can include clean up of old and unused files. Use system accounting to identify how users and applications are using system resources. Use resource manager to control how applications use available system resources and to track and charge resource usage. Chapter 7, Managing UFS Quotas (Tasks) Chapter 8, Scheduling System Tasks (Tasks) Chapter 9, Managing System Accounting (Tasks) Chapter 1, Introduction to Solaris 10 Resource Management, in System Administration Guide: Oracle Solaris Containers-Resource Management and Oracle Solaris Zones
Managing system accounting Managing system resources with Solaris Resource Management
59
60
C H A P T E R
This chapter describes the tasks that are required to display and change the most common system information. For information about the procedures associated with displaying and changing system information, see the following:
Displaying System Information (Task Map) on page 61 Changing System Information (Task Map) on page 70
For overview information about managing system resources, see Chapter 4, Managing System Resources (Overview).
Use the isainfo command to How to Determine Whether a determine whether a system has System Has 32Bit or 64Bit 32bit or 64-bit capabilities Capabilities Enabled on page 63 enabled. For x86 based systems, you can use the isalist command to display this information. Display the contents of the /etc/release file to identify the Oracle Solaris release version. Use the showrev command to display general system information. How to Display Oracle Solaris Release Information on page 65 How to Display General System Information on page 65
61
Task
Description
For Instructions
Display a system's host ID number. Use the hostid command to display your system's host id. Display a system's product name.
Starting with the Solaris 10 1/06 How to Display a System's release, you can use the prtconf -b Product Name on page 67 command to display the product name of a system. Use the prtconf command to display information about your system's installed memory. Use the date command to display your system's date and time. Use the psrinfo -p command to list the total number of physical processors on a system. Use the psrinfo -pv command to list all physical processors on a system and the virtual processors that is associated with each physical processor. How to Display a System's Installed Memory on page 67 How to Display the Date and Time on page 67 How to Display a System's Physical Processor Type on page 68
Display a system's installed memory. Display a system's date and time. Display a system's physical processor type.
Display a system's logical processor Use the psrinfo -v command to type. display a system's logical processor type. Display locales that are installed on Use the localeadm command to a system. display locales that are installed on your system.
How to Display a System's Logical Processor Type on page 68 How to Display Locales Installed on a System on page 69
Determine if a locale is installed on Use the -q option of the localeadm How to Determine If a Locale is a system. command and a locale to Installed on a System on page 69 determine if a locale is installed on your system.
date hostid
date(1) hostid(1)
62
TABLE 51 Command
(Continued)
Man Page
isainfo
The number of bits supported by native applications on the running system, which can be passed as a token to scripts Processor type for x86 based systems Locales installed on the system System configuration information, installed memory, and product name Processor type Host name, host ID, release, kernel architecture, application architecture, hardware provider, domain, and kernel version Operating system name, release, version, node name, hardware name, and processor type
isainfo(1)
psrinfo showrev
psrinfo(1M) showrev(1M)
uname
uname(1)
Enabled
Use the isainfo command to determine whether a system has 32bit or 64-bit capabilities enabled.
# isainfo options
The isainfo command, run without specifying any options, displays the name or names of the native instruction sets for applications supported by the current OS version. -v -b -n -k Prints detailed information about the other options. Prints the number of bits in the address space of the native instruction set. Prints the name of the native instruction set used by portable applications supported by the current version of the OS. Prints the name of the instruction set or sets that are used by the OS kernel components such as device drivers and STREAMS modules.
Note For x86 based systems, the isalist command can also be used to display this
63
Example 51
This output means that this system can support only 32bit applications. The current release of the Oracle Solaris OS only ships a 64bit kernel on SPARC based systems. The isainfo command output for an UltraSPARC system that is running a 64bit kernel is displayed as follows:
$ isainfo -v 64-bit sparcv9 applications 32-bit sparc applications
This output means that this system is capable of supporting both 32bit and 64bit applications. Use the isainfo -b command to display the number of bits supported by native applications on the running system. The output from a SPARC based, x86 based, or UltraSPARC system that is running the 32bit Oracle Solaris OS is displayed as follows:
$ isainfo -b 32
The isainfo command output from a 64bit UltraSPARC system that is running the 64bit Oracle Solaris OS is displayed as follows:
$ isainfo -b 64
The command returns 64 only. Even though a 64bit UltraSPARC system can run both types of applications, 64bit applications are the best kind of applications to run on a 64bit system.
Example 52
This output means that this system can support 64bit applications.
64
Use the isainfo -v command to determine if an x86 based system is capable of running a 32bit kernel.
$ isainfo -v 64-bit amd64 applications fpu tsc cx8 cmov mmx ammx a3dnow a3dnowx fxsr sse sse2 32-bit i386 applications fpu tsc cx8 cmov mmx ammx a3dnow a3dnowx fxsr sse sse2
This output means that this system can support both 64bit and 32bit applications. Use the isainfo -b command to display the number of bits supported by native applications on the running system. The output from an x86 based system that is running the 32bit Oracle Solaris OS is displayed as follows:
$ isainfo -b 32
The isainfo command output from an x86 based system that is running the 64bit Oracle Solaris OS is displayed as follows:
$ isainfo -b 64
You can also use the isalist command to determine whether an x86 based system is running in 32bit or 64bit mode.
$ isalist amd64 pentium_pro+mmx pentium_pro pentium+mmx pentium i486 i386 i86
In the preceding example, amd64 indicates that the system has 64bit capabilities enabled.
Display the contents of the /etc/release file to identify your release version.
$ cat /etc/release Solaris 10 s10_51 SPARC Copyright 2004 Sun Microsystems, Inc. All Rights Reserved. Use is subject to license terms. Assembled 21 January 2004
65
Prints all system revision information available. Prints the revision information about command. Prints only the revision information about patches. Defines the full path name of a directory to use as the root_path. Performs this operation on the specified host name. Prints only the OpenWindows revision information.
You can also use the uname command to display system information. The following example shows the uname command output. The -a option displays the operating system name as well as the system node name, operating system release, operating system version, hardware name, and processor type.
$ uname SunOS $ uname -a SunOS starbug 5.10 Generic sun4u sparc SUNW,Ultra-5_10 $ Example 53
To display the host ID number in hexadecimal format, use the hostid command.
66
$ hostid 80a5d34c
To display the product name for your system, use the prtconf command with the -b option, as follows:
% prtconf -b
Example 55
This example shows sample output from the prtconf -vb command.
$ prtconf -vb name: SUNW,Ultra-5_10 model: SUNW,375-0066 banner-name: Sun Ultra 5/10 UPA/PCI (UltraSPARC-IIi 333MHz) idprom: 01800800.20a6c363.00000000.a6c363a9.00000000.00000000.405555aa.aa555500 openprom model: SUNW,3.15 openprom version: OBP 3.15.2 1998/11/10 10:35
To display the amount of memory that is installed on your system, use the prtconf command.
To display the current date and time according to your system clock, use the date command.
67
Example 57
Use the psrinfo -pv command to display information about each physical processor on a system, and the virtual processor associated with each physical processor.
$ psrinfo -pv The UltraSPARC-IV physical processor has 2 The UltraSPARC-IV physical processor has 2 The UltraSPARC-IV physical processor has 2 The UltraSPARC-IV physical processor has 2 The UltraSPARC-III+ physical processor has The UltraSPARC-III+ physical processor has The UltraSPARC-III+ physical processor has The UltraSPARC-III+ physical processor has virtual processors (8, 520) virtual processors (9, 521) virtual processors (10, 522) virtual processors (11, 523) 1 virtual processor (16) 1 virtual processor (17) 1 virtual processor (18) 1 virtual processor (19)
When you use the psrinfo -pv command on an x86 based system, the following output is displayed:
$ psrinfo -pv The i386 physical processor has 2 virtual processors (0, 2) The i386 physical processor has 2 virtual processors (1, 3)
On an x86 based system, use the isalist command to display the virtual processor type.
$ isalist Example 58
68
$ psrinfo -v Status of virtual processor 0 as of: 04/16/2004 10:32:13 on-line since 03/22/2004 19:18:27. The sparcv9 processor operates at 650 MHz, and has a sparcv9 floating point processor. Example 59
69
Determine if a locale is installed on your system using the localeadm command. The -q option and a locale queries the system to see if that locale is installed on the system. To see if the Central European region (ceu) is installed on your system, for example:
# localeadm -q ceu locale/region name is ceu Checking for Central Europe region (ceu) . . . The Central Europe region (ceu) is installed on this system
Manually set your system's date and time by using the date mmddHHMM[[cc]yy] command-line syntax. Set up a message-of-the-day on your system by editing the /etc/motd file.
Set up a message-of-the-day.
Change your system's host name by How to Change a System's Host editing the following files: Name on page 72 /etc/nodename /etc/hostname.*host-name /etc/inet/hosts
Note If you are running the Solaris 3/05, 1/06, 6/06, or 11/06 releases, you also need to update the /etc/inet/ipnodes file. Starting with Solaris 10 8/07 release, there are no longer two separate hosts files in the OS. The /etc/inet/hosts file is the single hosts file that contains both IPv4 and IPv6 entries.
70
Task
Directions
For Instructions
Use the -r option of the localeadm How to Remove a Locale From a command and the locale to remove System of locale from your system.
mm dd HH MM cc yy
Month, using two digits. Day of the month, using two digits. Hour, using two digits and a 24-hour clock. Minutes, using two digits. Century, using two digits. Year, using two digits.
Verify that you have reset your system's date correctly by using the date command with no options.
Example 510
Become superuser or assume an equivalent role. Roles contain authorizations and privileged commands. For more information about roles, see Configuring RBAC (Task Map) in System Administration Guide: Security Services. Edit the /etc/motd file and add a message of your choice. Edit the text to include the message that will be displayed during user login. Include spaces, tabs, and carriage returns. Verify the changes by displaying the contents of the /etc/motd file.
$ cat /etc/motd Welcome to the UNIX Universe. Have a nice day.
Example 511
Setting Up a Message-Of-The-Day
The default message-of-the-day, which is provided when you install Oracle Solaris software, contains version information.
$ cat /etc/motd Sun Microsystems Inc. SunOS 5.10 Generic May 2004
The following example shows an edited /etc/motd file that provides information about system availability to each user who logs in.
$ cat /etc/motd The system will be down from 7:00 a.m to 2:00 p.m. on Saturday, July 7, for upgrades and maintenance. Do not try to access the system during those hours. Thank you.
72
Become superuser or assume an equivalent role. Roles contain authorizations and privileged commands. For more information about roles, see Configuring RBAC (Task Map) in System Administration Guide: Security Services. Change the system's host name in the following files:
Note Starting with the Solaris 10 8/07 release, there is no longer two separate hosts files. The
/etc/inet/hosts file is the single hosts file that contains both IPv4 and IPv6 entries. You do not need to maintain IPv4 entries in two hosts files that always require synchronization. For backward compatibility, the /etc/inet/ipnodes file is replaced with a symbolic link of the same name to the /etc/inet/hosts file. For more information, see the hosts(4) man page.
3 4
(Optional) If you are using a name service, change the system's host name in the hosts file. Rename the host name directory within the /var/crash directory.
# cd /var/crash # mv old-host-name new-host-name
Add the packages for the locale you want to install on your system using the localeadm command. The -a option and a locale identifies the locale that you want to add. The -d option and a device identifies the device containing the locale packages you want to add. To add the Central European region (ceu) to your system, for example:
# localeadm -a ceu -d /net/install/latest/Solaris/Product locale/region name is ceu Devices are /net/install/latest/Solaris/Product
73
. . . One or more locales have been added. To update the list of locales available at . . .
74
C H A P T E R
This chapter describes how to optimize disk space by locating unused files and large directories. For information on the procedures associated with managing disk use, see Managing Disk Use (Task Map) on page 75.
Display information about files and Display information about how disk space. disk space is used by using the df command. Display the size of files. Display information about the size of files by using the ls command with the -lh option. The ls -s command allows you to sort files by size, in descending order. Locate and display the names of files that exceed a specified size by using the find command with the -size option and the value of the specified size limit.
How to Display Information About Files and Disk Space on page 77 How to Display the Size of Files on page 79 How to Find Large Files on page 80 How to Find Files That Exceed a Specified Size Limit on page 81
Display the size of one or more How to Display the Size of directories, subdirectories, and files Directories, Subdirectories, and by using the du command. Files on page 82
75
Task
Description
For Instructions
Display ownership of local UFS file Display ownership of files by using systems. the quot -a command. List the newest files. Display the most recently created or changed files first, by using the ls -t command.
How to Display the User Ownership of Local UFS File Systems on page 83 How to List the Newest Files on page 85
Use the find command with the How to Find and Remove Old or -atime and -mtime options to Inactive Files on page 86 locate files that have not been accessed for a specified number of days. You can remove these files by using therm cat filename command. Locate temp directories, then use the rm -r * command to remove the entire directory. Find and delete core files by using the find . -name core -exec rm {} \; command. Delete crash dump files that are located in the /var/crash/ directory by using the rm * command. How to Clear Out Temporary Directories on page 87 How to Find and Delete core Files on page 87 How to Delete Crash Dump Files on page 88
df
df(1M)
du
Summarizes disk space allocated to du(1) each subdirectory Searches recursively through a directory based on the size specified with the -size option find(1)
find -size
ls -lh
76
df directory -h -t
Example 61
With no options, lists all mounted file systems and their device names, the number of 512-byte blocks used, and the number of files. Specifies the directory whose file system you want to check. Displays disk space in the power of 1024 scaling. Displays the total blocks as well as the blocks used for all mounted file systems.
Example 62
Displaying File Size Information in 1024 Bytes on a System With a UFS Root File System
In the following example, file system information for a system with a UFS root file system is displayed in 1024 bytes.
$ df -h Filesystem /dev/dsk/c0t0d0s0 /devices ctfs proc mnttab swap objfs /dev/dsk/c0t0d0s6 size 249M 0K 0K 0K 0K 485M 0K 3.2G used avail capacity Mounted on 200M 25M 90% / 0K 0K 0% /devices 0K 0K 0% /system/contract 0K 0K 0% /proc 0K 0K 0% /etc/mnttab 376K 485M 1% /etc/svc/volatile 0K 0K 0% /system/object 2.9G 214M 94% /usr
77
0% 1% 1% 15% 13%
Although /proc and /tmp are local file systems, they are not UFS file systems. /proc is a PROCFS file system, /var/run and /tmp are TMPFS file systems, and /etc/mnttab is an MNTFS file system.
Example 63
Displaying File Size Information in 1024 Bytes on a System With a ZFS Root File System
In the following example, file system information for a system with a Oracle Solaris ZFS root file system is displayed in 1024 bytes.
Filesystem size used avail capacity Mounted on rpool/ROOT/s1008be 67G 4.6G 58G 8% / /devices 0K 0K 0K 0% /devices ctfs 0K 0K 0K 0% /system/contract proc 0K 0K 0K 0% /proc mnttab 0K 0K 0K 0% /etc/mnttab swap 1.9G 1.5M 1.9G 1% /etc/svc/volatile objfs 0K 0K 0K 0% /system/object sharefs 0K 0K 0K 0% /etc/dfs/sharetab /platform/sun4u-us3/lib/libc_psr/libc_psr_hwcap1.so.1 63G 4.6G 58G 8% /platform/sun4u-us3/lib/libc_psr.so.1 /platform/sun4u-us3/lib/sparcv9/libc_psr/libc_psr_hwcap1.so.1 63G 4.6G 58G 8% /platform/sun4u-us3/lib/sparcv9/libc_psr.so.1 fd 0K 0K 0K 0% /dev/fd rpool/ROOT/s1008be/var 67G 73M 58G 1% /var swap 1.9G 32K 1.9G 1% /tmp swap 1.9G 40K 1.9G 1% /var/run rpool/export 67G 20K 58G 1% /export rpool/export/home 67G 18K 58G 1% /export/home Example 64
Displaying Total Number of Blocks and Files Allocated for a File System
The following example shows a list of all mounted file systems, device names, total 512-byte blocks used, and the number of files. The second line of each two-line entry displays the total number of blocks and files that are allocated for the file system.
$ df -t / /devices /system/contract /proc (/dev/dsk/c0t0d0s0 ): total: (/devices ): total: (ctfs ): total: (proc ): total: 101294 509932 0 0 0 0 0 0 blocks 105480 files blocks 129024 files blocks 0 files blocks 113 files blocks 2147483578 files blocks 69 files blocks 1871 files blocks 1916 files
78
/etc/mnttab
): 0 blocks 0 files total: 0 blocks 1 files /etc/svc/volatile (swap ): 992608 blocks 16964 files total: 993360 blocks 17025 files /system/object (objfs ): 0 blocks 2147483530 files total: 0 blocks 117 files /usr (/dev/dsk/c0t0d0s6 ): 503774 blocks 299189 files total: 6650604 blocks 420480 files /dev/fd (fd ): 0 blocks 0 files total: 0 blocks 31 files /var/run (swap ): 992608 blocks 16964 files total: 992688 blocks 17025 files /tmp (swap ): 992608 blocks 16964 files total: 992688 blocks 17025 files /opt (/dev/dsk/c0t0d0s5 ): 23914 blocks 6947 files total: 27404 blocks 7168 files /export/home (/dev/dsk/c0t0d0s7 ): 16810 blocks 7160 files total: 18900 blocks 7168 files
(mnttab
to a directory on a file system with more disk space. Doing so, even as a temporary measure, might cause problems for certain daemon processes and utilities.
1 2
-l -h
Displays a list of files and directories in long format, showing the sizes in bytes. (See the example that follows.) Scales file sizes and directory sizes into Kbytes, Mbytes, Gbytes, or Tbytes when the file or directory size is larger than 1024 bytes. This option also modifies the output displayed by the -o, -n, -@, and -g options to display file or directory sizes in the new format. For more information, see thels(1) man page. Displays a list of the files and directories, showing the sizes in blocks.
-s
79
Example 65
adm uucp adm root adm root adm adm root root root root root adm
adm bin adm other adm root adm sys sys bin sys bin root adm
512 0 512 342K 512 20K 512 512 512 0 512 3.3K 0 19K
Nov Nov Nov Nov Nov Nov Nov Nov Nov Nov Nov Nov Nov Nov
26 26 26 26 26 26 26 26 26 26 26 26 26 26
09:39 09:25 09:25 13:56 09:25 13:55 09:25 09:39 09:49 09:25 09:25 13:56 10:17 13:56
acct/ aculog exacct/ lastlog log/ messages passwd/ sa/ sm.bin/ spellhist streams/ utmpx vold.log wtmpx
The following example shows that the lpsched.1 file uses two blocks.
$ cd /var/lp/logs $ ls -s total 2 0 lpsched
2 lpsched.1
1 2
If the characters or columns for the files are different, use the following command to sort a list of files by block size, from largest to smallest.
$ ls -l | sort +4rn | more
Note that this command sorts files in a list by the character that is in the fourth field, starting from the left.
If the characters or columns for the files are the same, use the following command to sort a list of files by block size, from largest to smallest.
$ ls -s | sort -nr | more
Note that this command sorts files in a list, starting with the left most character.
80
Example 66
Example 67
Identifies the directory that you want to search. Is a number of 512-byte blocks. Files that exceed this size are listed.
81
Example 68
du -a -s -h -H
Displays the size of each directory that you specify, including each subdirectory beneath it. Displays the size of each file and subdirectory, and the total number of blocks that are contained in the specified directory. Displays the total number of blocks that are contained in the specified directory. Displays the size of each directory in 1024byte blocks. Displays the size of each directory in 1000byte blocks.
82
[directory ...]
Identifies one or more directories that you want to check. Separate multiple directories in the command-line syntax with spaces.
Example 69
The following example shows the sizes of two directories and includes the sizes of all the subdirectories and files that are contained within each directory. The total number of blocks that are contained in each directory is also displayed.
$ du /var/adm /var/spool/lp 2 /var/adm/exacct 2 /var/adm/log 2 /var/adm/streams 2 /var/adm/acct/fiscal 2 /var/adm/acct/nite 2 /var/adm/acct/sum 8 /var/adm/acct 2 /var/adm/sa 2 /var/adm/sm.bin 258 /var/adm 4 /var/spool/lp/admins 2 /var/spool/lp/requests/printing.... 4 /var/spool/lp/requests 4 /var/spool/lp/system 2 /var/spool/lp/fifos 24 /var/spool/lp
83
Display users, directories, or file systems, and the number of 1024-byte blocks used.
# quot [-a] [filesystem ...]
-a filesystem
Lists all users of each mounted UFS file system and the number of 1024-byte blocks used. Identifies a UFS file system. Users and the number of blocks used are displayed for that file system.
Note The quot command works only on local UFS file systems.
Example 610
84
-t directory
Example 611
Sorts files by latest time stamp first. Identifies the directory that you want to search.
root other bin adm other other root root sys adm sys bin bin adm adm
315 350700 4464 20088 0 0 11510 0 512 512 512 0 0 512 512
Sep Sep Sep Sep Sep Sep Sep Sep Sep Sep Sep Sep Sep Sep Sep
24 22 22 22 19 12 10 10 10 10 10 10 10 10 10
14:00 11:04 11:04 11:04 03:10 03:10 16:13 16:12 15:33 15:19 15:19 15:17 15:17 15:17 15:17
sulog lastlog utmpx wtmpx messages messages.0 messages.1 vold.log sm.bin acct sa aculog spellhist log passwd
85
Identifies the directory you want to search. Directories below this directory are also searched. Finds files that have not been accessed within the number of days (nnn) that you specify. Finds files that have not been modified within the number of days (nnn) that you specify. Identifies the file that contains the list of inactive files.
where filename identifies the file that was created in the previous step. This file contains the list of inactive files.
Example 612
86
Change to other directories that contain unnecessary, temporary or obsolete subdirectories and files. Delete these subdirectories and files by repeating Step 3.
Example 613
87
Find and remove any core files in this directory and its subdirectories.
# find . -name core -exec rm {} \;
Example 614
Become superuser or assume an equivalent role. Roles contain authorizations and privileged commands. For more information about roles, see Configuring RBAC (Task Map) in System Administration Guide: Security Services. Change to the directory where crash dump files are stored.
# cd /var/crash/system
where system identifies a system that created the crash dump files.
Caution Ensure you are in the correct directory before completing Step 3. Step 3 deletes all files in the current directory. 3
Example 615
88
C H A P T E R
This chapter describes how to set up and administer UFS quotas for disk space and inodes. For information associated with managing UFS quotas, see the following:
Setting Up UFS Quotas (Task Map) on page 92 Maintaining UFS Quotas (Task Map) on page 96
For information about managing Oracle Solaris ZFS quotas, see Setting ZFS Quotas and Reservations in Oracle Solaris ZFS Administration Guide.
The following table describes the commands that you use to set up disk quotas.
TABLE 71 Command
edquota
Sets the hard limits and soft limits on the edquota(1M) number of inodes and the amount of disk space for each user. Examines each mounted UFS file system, quotacheck(1M) comparing the file system's current disk usage against information stored in the file system's disk quota file. Then, resolves inconsistencies. Activates the quotas for the specified file systems. Displays users' UFS disk quotas on mounted file systems to verify that the quotas have been correctly set up. quotaon(1M)
quotacheck
quotaon
quota
quota(1M)
First, configure the UFS file systems for the quotas. Establish quotas for each user, and run the quotacheck command to check for consistency between current disk usage and quota files. Run the quotacheck command periodically if systems are rebooted infrequently.
The quotas you set up with the edquota command are not enforced until you turn them on by using the quotaon command. If you have properly configured the quota files, the quotas are turned on automatically each time a system is rebooted and the file system is mounted.
Chapter 7 Managing UFS Quotas (Tasks) 91
Edit the /etc/vfstab file so that How to Configure File Systems for quotas are activated each time the UFS Quotas on page 92 file system is mounted. Also, create a quotas file. Use the edquota command to How to Set Up UFS Quotas for a create disk quotas and inode quotas User on page 93 for a single user account. How to Set Up UFS Quotas for Multiple Users on page 94
3. (Optional) Set up UFS quotas for Use the edquota command to multiple users. apply prototype quotas to other user accounts. 4. Check for consistency.
Use the quotacheck command to How to Check UFS Quota compare quotas to current disk Consistency on page 94 usage for consistency across one or more file systems. Use the quotaon command to How to Turn On UFS Quotas on initiate UFS quotas on one or more page 95 file systems.
Edit the /etc/vfstab file and add rq to the mount options field for each UFS file system that will have quotas. Change directory to the root of the file system that will have quotas. Create a file named quotas.
# touch quotas
3 4
92
Example 71
The following example line from the /etc/vfstab file shows that the local /work directory is mounted with quotas enabled, signified by the rq entry under the mount options column.
#device device mount FS fsck mount mount #to mount to fsck point type pass at boot options #/dev/dsk/c0t4d0s0 /dev/rdsk/c0t4d0s0 /work ufs 3 yes rq See Also
How to Set Up UFS Quotas for a User on page 93 How to Set Up UFS Quotas for Multiple Users on page 94 How to Check UFS Quota Consistency on page 94 How to Turn On UFS Quotas on page 95
where username is the user for whom you want to set up quotas.
3
Change the number of 1-Kbyte disk blocks, both soft and hard, to the quotas that you specify for each file system. Change the number of inodes, both soft and hard, from the default of 0, to the quotas that you specify for each file system. Verify the user's UFS quota.
# quota -v username
-v
Displays the user's quota information on all mounted file systems where quotas exist.
93
username
Example 72
The following example shows the same line in the temporary file after quotas have been set up.
fs /files blocks (soft = 50, hard = 60) inodes (soft = 90, hard = 100)
Is the user name of the account for which you have set up quotas. Specifies one or more user names of additional accounts. More than one user name is specified by separating each user name with a space.
Example 73
94
Also, keep in mind that running the quotacheck command on large file systems can be time-consuming.
Note To ensure accurate disk data, the file systems being checked should be quiescent when
Become superuser or assume an equivalent role. Roles contain authorizations and privileged commands. For more information about roles, see Configuring RBAC (Task Map) in System Administration Guide: Security Services. Run a consistency check on UFS file systems.
# quotacheck [-va] filesystem
-v -a filesystem
(Optional) Identifies the disk quotas for each user on a particular file system. Checks all file systems with an rq entry in the /etc/vfstab file. Specifies the file system to check.
-v -a
Displays a message for each file system after quotas are turned on. Turns on quotas for all file systems with an rq entry in the /etc/vfstab file.
95
filesystem ...
Turns on quotas for one or more file systems that you specify. More than one file system is specified by separating each file system name with a space.
Example 75
Display the UFS quotas and disk use for individual users on file systems on which UFS quotas have been activated by using the quota command. Display the UFS quotas and disk use for all users on one or more file systems by using the repquota command.
Change the length of time that How to Change the Soft Limit users can exceed their disk space Default on page 99 quotas or inode quotas by using the edquota command. Use the quota editor, edquota, to change quotas for an individual user. Use the quota editor, edquota, to disable quotas for an individual user. Turn off UFS quotas by using the quotaoff command. How to Change UFS Quotas for a User on page 100 How to Disable UFS Quotas for a User on page 101 How to Turn Off UFS Quotas on page 102
96
quota(1M)
Displays user quotas and current disk use, and information about users who are exceeding their quotas Displays quotas, files, and the amount of space that is owned for specified file systems
repquota(1M)
Become superuser or assume an equivalent role. Roles contain authorizations and privileged commands. For more information about roles, see Configuring RBAC (Task Map) in System Administration Guide: Security Services. Display user quotas for mounted file systems where quotas are enabled.
# quota [-v] username
-v username
Example 76
Displays one or more users' quotas on all mounted file systems that have quotas. Is the login name or UID of a user's account.
Is the mount point for the file system. Is the current block usage. Is the soft-block limit.
97
Is the hard-block limit. Is the amount of time, in days, left on the quota timer. Is the current inode usage. Is the soft-inode limit. Is the hard-inode limit. Is the amount of time, in days, left on the quota timer.
Become superuser or assume an equivalent role. Roles contain authorizations and privileged commands. For more information about roles, see Configuring RBAC (Task Map) in System Administration Guide: Security Services.
Display all UFS quotas for one or more file systems, even if there is no usage.
# repquota [-v] -a filesystem
-v -a filesystem
Example 77
Reports on UFS quotas for all users, even those users who do not consume resources. Reports on all file systems. Reports on the specified file system.
98
Is the hard-block limit. Is the amount of time, in days, left on the quota timer. Is the definition of the file limits. Is the current inode usage. Is the soft-inode limit. Is the hard-inode limit. Is the amount of time, in days, left on the quota timer.
edquota
edquota(1M)
Changes the hard limits and soft limits on the number of inodes or amount of disk space for each user. Also, changes the soft limit for each file system with a quota. Turns off quotas for specified file systems.
quotaoff
quotaon(1M)
Become superuser or assume an equivalent role. Roles contain authorizations and privileged commands. For more information about roles, see Configuring RBAC (Task Map) in System Administration Guide: Security Services. Use the quota editor to create a temporary file that contains soft time limits.
# edquota -t
Chapter 7 Managing UFS Quotas (Tasks) 99
where the -t option specifies the editing of the soft time limits for each file system.
3
Change the time limits from 0 (the default) to the time limits that you specify. So, use numbers and the keywords month, week, day, hour, min, or sec.
Note This procedure does not affect current quota violators.
Example 78
The following example shows the same temporary file after the time limit for exceeding the blocks quota has been changed to 2 weeks. Also, the time limit for exceeding the number of files has been changed to 16 days.
fs /export/home blocks time limit = 2 weeks, files time limit = 16 days
where username specifies the user name whose quota you want to change.
Caution You can specify multiple users as arguments to the edquota command. However, the
user that this information belongs to, is not displayed. To avoid confusion, specify only one user name.
3
Specify the number of 1-Kbyte disk blocks, both soft and hard, and the number of inodes, both soft and hard. Verify that a user's UFS quota has been correctly changed.
# quota -v username
100
-v username
Example 79
Displays user UFS quota information on all mounted file systems with quotas enabled. Specifies the user name whose quota you want to check.
The following output shows the same temporary file after quotas have been changed.
fs /files blocks (soft = 0, hard = 500) inodes (soft = 0, hard = 100) Example 710
Where username specifies the user name whose quota you want to disable.
Caution You can specify multiple users as arguments to the edquota command. However, the
user that this information belongs to, is not displayed. To avoid confusion, specify only one user name.
101
3 4
Change the number of 1-Kbyte disk blocks, both soft and hard, to 0. Change the number of inodes, both soft and hard, to 0.
Note Ensure that you change the values to zero. Do not delete the line from the text file.
-v username
Example 711
Displays user UFS quota information on all mounted file systems with quotas enabled. Specifies the user name (UID) whose UFS quota you want to check.
The following example shows the same temporary file after UFS quotas have been disabled.
fs /files blocks (soft = 0, hard = 0) inodes (soft = 0, hard = 0)
-v -a filesystem
Displays a message from each file system when UFS quotas are turned off. Turns off UFS quotas for all file systems. Turns off UFS quotas for one or more file systems that you specify. More than one file system is specified by separating each file system name with a space.
102
Example 712
103
104
C H A P T E R
This chapter describes how to schedule routine or single (one-time) system tasks by using the crontab and at commands. This chapter also explains how to control access to these commands by using the following files:
For information on the procedures that are associated with scheduling system tasks, see the following:
Creating and Editing crontab Files (Task Map) on page 105 Using the at Command (Task Map) on page 118
Create or edit a crontab file. Use the crontab -e command to create or edit a crontab file. Verify that a crontab file exists. Display a crontabfile. Use the ls -l command to verify the contents of the /var/spool/cron/crontabs file. Use the ls -l command to display the crontab file.
How to Create or Edit a crontab File on page 111 How to Verify That a crontab File Exists on page 112 How to Display a crontab File on page 112
105
Task
Description
For Instructions
The crontab file is set up with restrictive permissions Use the crontab -r command, rather than the rm command to remove a crontab file. To deny users access to crontab commands, add user names to the /etc/cron.d/cron.deny file by editing this file. To allow users access to the crontab command, add user names to the /etc/cron.d/cron.allow file.
crontab
/var/spool/cron/crontabs
at
/var/spool/cron/atjobs
/etc/cron.d/at.deny
You can also use the Solaris Management Console's Scheduled Jobs tool to schedule routine tasks. For information on using and starting the Solaris Management Console, see Chapter 2, Working With the Solaris Management Console (Tasks), in System Administration Guide: Basic Administration.
106
Removing files more than a few days old from temporary directories Executing accounting summary commands Taking snapshots of the system by using the df and ps commands Performing daily security monitoring Running system backups
Rebuilding the catman database for use by the man -k command Running the fsck -n command to list any disk problems
Listing files not used during a specific month Producing monthly accounting reports
Additionally, users can schedule crontab commands to execute other routine system tasks, such as sending reminders and removing backup files. For step-by-step instructions on scheduling crontab jobs, see How to Create or Edit a crontab File on page 111.
The cron daemon checks for at jobs at startup and listens for new jobs that are submitted. After the cron daemon executes an at job, the at job's file is removed from the atjobs directory. For more information, see the at(1) man page. For step-by-step instructions on scheduling at jobs, see How to Create an at Job on page 119.
(4)
The following describes the output for each of these command lines:
The first line runs the logadm command at 3:10 a.m. every day. The second line executes the nfsfind script every Sunday at 3:15 a.m. The third line runs a script that checks for daylight savings time (and make corrections, if necessary) at 2:10 a.m. daily. If there is no RTC time zone, nor an /etc/rtc_config file, this entry does nothing.
x86 only The /usr/sbin/rtc script can only be run on an x86 based system.
The fourth line checks for (and removes) duplicate entries in the Generic Security Service table, /etc/gss/gsscred_db, at 3:30 a.m. daily.
For more information about the syntax of lines within a crontab file, see Syntax of crontab File Entries on page 110.
108 System Administration Guide: Advanced Administration September 2010
The crontab files are stored in the /var/spool/cron/crontabs directory. Several crontab files besides root are provided during SunOS software installation. See the following table.
TABLE 82
crontab File
Accounting Printing General system functions and file system cleanup Performance data collection General uucp cleanup
Besides the default crontab files, users can create crontab files to schedule their own system tasks. Other crontab files are named after the user accounts in which they are created, such as bob, mary, smith, or jones. To access crontab files that belong to root or other users, superuser privileges are required. Procedures explaining how to create, edit, display, and remove crontab files are described in subsequent sections.
Checks for new crontab files. Reads the execution times that are listed within the files. Submits the commands for execution at the proper times. Listens for notifications from the crontab commands regarding updated crontab files.
In much the same way, the cron daemon controls the scheduling of at files. These files are stored in the /var/spool/cron/atjobs directory. The cron daemon also listens for notifications from the crontab commands regarding submitted at jobs.
109
Follow these guidelines for using special characters in crontab time fields:
Use a space to separate each field. Use a comma to separate multiple values. Use a hyphen to designate a range of values. Use an asterisk as a wildcard to include all possible values. Use a comment mark (#) at the beginning of a line to indicate a comment or a blank line.
For example, the following crontab command entry displays a reminder in the user's console window at 4 p.m. on the first and fifteenth days of every month.
0 16 1,15 * * echo Timesheets Due > /dev/console
Each command within a crontab file must consist of one line, even if that line is very long. The crontab file does not recognize extra carriage returns. For more detailed information about crontab entries and command options, refer to the crontab(1) man page.
The following example shows how to determine if an editor has been defined, and how to set up vi as the default.
$ which $EDITOR $ $ EDITOR=vi $ export EDITOR
When you create a crontab file, it is automatically placed in the /var/spool/cron/crontabs directory and is given your user name. You can create or edit a crontab file for another user, or root, if you have superuser privileges.
where username specifies the name of the user's account for which you want to create or edit a crontab file. You can create your own crontab file without superuser privileges, but you must have superuser privileges to creating or edit a crontab file for root or another user.
Caution If you accidentally type the crontab command with no option, press the interrupt character for your editor. This character allows you to quit without saving changes. If you instead saved changes and exited the file, the existing crontab file would be overwritten with an empty file. 2
Add command lines to the crontab file. Follow the syntax described in Syntax of crontab File Entries on page 110. The crontab file will be placed in the /var/spool/cron/crontabs directory. Verify your crontab file changes.
# crontab -l [username]
Example 81
The following command entry added to a new crontab file automatically removes any log files from the user's home directory at 1:00 a.m. every Sunday morning. Because the command entry does not redirect output, redirect characters are added to the command line after *.log. Doing so ensures that the command executes properly.
# This command helps clean up user accounts. 1 0 * * 0 rm /home/jones/*.log > /dev/null 2>&1
Verify the contents of user's crontab file by using the crontab -l command as described in How to Display a crontab File on page 112.
112
where username specifies the name of the user's account for which you want to display a crontab file. Displaying another user's crontab file requires superuser privileges.
Caution If you accidentally type the crontab command with no option, press the interrupt character for your editor. This character allows you to quit without saving changes. If you instead saved changes and exited the file, the existing crontab file would be overwritten with an empty file.
Example 82
Example 83
Example 84
113
where username specifies the name of the user's account for which you want to remove a crontab file. Removing crontab files for another user requires superuser privileges.
Caution If you accidentally type the crontab command with no option, press the interrupt character for your editor. This character allows you to quit without saving changes. If you instead saved changes and exited the file, the existing crontab file would be overwritten with an empty file. 2
Example 85
114
If cron.allow exists, only the users who are listed in this file can create, edit, display, or remove crontab files. If cron.allow does not exist, all users can submit crontab files, except for users who are listed in cron.deny. If neither cron.allow nor cron.deny exists, superuser privileges are required to run the crontab command.
Superuser privileges are required to edit or create the cron.deny and cron.allow files. The cron.deny file, which is created during SunOS software installation, contains the following user names:
$ cat /etc/cron.d/cron.deny daemon bin smtp nuucp listen nobody noaccess
None of the user names in the default cron.deny file can access the crontab command. You can edit this file to add other user names that will be denied access to the crontab command. No default cron.allow file is supplied. So, after Oracle Solaris software installation, all users (except users who are listed in the default cron.deny file) can access the crontab command. If you create a cron.allow file, only these users can access the crontab command.
Edit the /etc/cron.d/cron.deny file and add user names, one user per line. Include users who will be denied access to the crontab commands.
daemon bin smtp nuucp listen nobody noaccess username1 username2 username3 . . .
2 3
Create the /etc/cron.d/cron.allow file. Add the root user name to the cron.allow file. If you do not add root to the file, superuser access to crontab commands will be denied.
Add the user names, one user name per line. Include users that will be allowed to use the crontab command.
root username1 username2 username3 . . .
116
Example 86
The following example shows a cron.allow file. The users root, jones, lp, and smith are the only users who can access the crontab command.
$ cat /etc/cron.d/cron.allow root jones lp smith
If the user can access the crontab command, and already has created a crontab file, the file is displayed. Otherwise, if the user can access the crontab command but no crontab file exists, a message similar to the following message is displayed:
crontab: cant open your crontab file
Either this user either is listed in the cron.allow file (if the file exists), or the user is not listed in the cron.deny file. If the user cannot access the crontab command, the following message is displayed whether or not a previous crontab file exists:
crontab: you are not authorized to use cron. Sorry.
This message means that either the user is not listed in the cron.allow file (if the file exists), or the user is listed in the cron.deny file.
Chapter 8 Scheduling System Tasks (Tasks) 117
Create an at job.
Use the atcommand to do the following: Start the at utility from the command line. Type the commands or scripts that you want to execute, one per line. Exit the at utility and save the job. User the atq command to display the at queue.
Use the atq command to confirm How to Verify an at Job on that at jobs that belong to a specific page 121 user have been submitted to the queue. Use the at -l[job-id to display at jobs. that have been submitted to the queue. How to Display at Jobs on page 121
Display at jobs.
Use the at -r [job-id] command to How to Remove at Jobs on remove at jobs from the queue. page 121 To deny users access to the atcommand, edit the /etc/cron.d/at.deny file. How to Deny Access to the at Command on page 122
Schedule jobs (command and scripts) for execution at a later time How to display and remove these jobs How to control access to the at command
By default, users can create, display, and remove their own at job files. To access at files that belong to root or other users, you must have superuser privileges. When you submit an at job, it is assigned a job identification number along with the .a extension. This designation becomes the job's file name, as well as its queue number.
118 System Administration Guide: Advanced Administration September 2010
file for later examination. For example, the following at job removes core files from the user account smith near midnight on the last day of July.
$ at 11:45pm July 31 at> rm /home/smith/*core* at> Press Control-d commands will be executed using /bin/csh job 933486300.a at Tue Jul 31 23:45:00 2004
With superuser privileges, you can edit the at.deny file to add other user names whose at command access you want to restrict.
-m time
Sends you email after the job is completed. Specifies the hour that you want to schedule the job. Add am or pm if you do not specify the hours according to the 24-hour clock. Acceptable keywords are midnight, noon, and now. Minutes are optional. Specifies the first three or more letters of a month, a day of the week, or the keywords today or tomorrow.
date
At the at prompt, type the commands or scripts that you want to execute, one per line. You may type more than one command by pressing Return at the end of each line.
Exit the at utility and save the at job by pressing Control-D. Your at job is assigned a queue number, which is also the job's file name. This number is displayed when you exit the at utility.
Example 87
Creating an at Job
The following example shows the at job that user jones created to remove her backup files at 7:30 p.m. She used the -m option so that she would receive an email message after her job completed.
$ at -m 1930 at> rm /home/jones/*.backup at> Press Control-D job 897355800.a at Thu Jul 12 19:30:00 2004
She received a email message which confirmed the execution of her at job.
Your at job rm /home/jones/*.backup completed.
The following example shows how jones scheduled a large at job for 4:00 a.m. Saturday morning. The job output was directed to a file named big.file.
$ at 4 am Saturday at> sort -r /usr/dict/words > /export/home/jones/big.file
This command displays status information about the at jobs that you have created.
120
where the -l job-id option identifies the identification number of the job whose status you want to display.
Example 88
Displaying at Jobs
The following example shows output from the at -l command, which provides information on the status of all jobs submitted by a user.
$ at -l 897543900.a 897355800.a 897732000.a Sat Jul 14 23:45:00 2004 Thu Jul 12 19:30:00 2004 Tue Jul 17 04:00:00 2004
The following example shows the output that is displayed when a single job is specified with the at -l command.
$ at -l 897732000.a 897732000.a Tue Jul 17 04:00:00 2004
Remove the at job from the queue before the job is executed.
$ at -r [job-id]
121
where the -r job-id option specifies the identification number of the job you want to remove.
2
Verify that the at job is removed by using the at -l (or the atq) command. The at -l command displays the jobs remaining in the at queue. The job whose identification number you specified should not appear.
$ at -l [job-id]
Example 89
Removing at Jobs
In the following example, a user wants to remove an at job that was scheduled to execute at 4 a.m. on July 17th. First, the user displays the at queue to locate the job identification number. Next, the user removes this job from the at queue. Finally, the user verifies that this job has been removed from the queue.
$ at -l 897543900.a Sat Jul 14 23:45:00 2003 897355800.a Thu Jul 12 19:30:00 2003 897732000.a Tue Jul 17 04:00:00 2003 $ at -r 897732000.a $ at -l 897732000.a at: 858142000.a: No such file or directory
122
Example 810
Denying at Access
The following example shows an at.deny file that has been edited so that the users smith and jones cannot access the at command.
$ cat at.deny daemon bin smtp nuucp listen nobody noaccess jones smith
Likewise, if the user tries to submit an at job, the following message is displayed:
$ at 2:30pm at: you are not authorized to use at. Sorry.
This message confirms that the user is listed in the at.deny file. If at command access is allowed, then the at -l command returns nothing.
123
124
C H A P T E R
This chapter describes how to set up and maintain system accounting. This is a list of the overview information in this chapter.
What is System Accounting? on page 126 Setting Up System Accounting on page 131
For information on using extended accounting, see Chapter 4, Extended Accounting (Overview), in System Administration Guide: Oracle Solaris Containers-Resource Management and Oracle Solaris Zones. For information on the step-by-step procedures that are associated with system accounting, see System Accounting (Task Map) on page 130. For reference information about the various system accounting reports, see Chapter 10, System Accounting (Reference).
Switching to microstate accounting provides substantially more accurate data about user processes and the amount of time they spend in various states. In addition, this information is used to generate more accurate load averages and statistics from the /proc file system. For more information, see the proc(4) man page.
Monitor system usage Locate and correct performance problems Maintain system security
After you set up the system accounting programs, they run mostly on their own.
Connect Accounting
Connect accounting enables you to determine the following information:
The length of time a user was logged in How the tty lines are being used The number of reboots on your system How many times the accounting software was turned off and on
To provide this information on connect sessions, the system stores the following data
Record of time adjustments Boot times Number of times the accounting software was turned off and on Changes in run levels The creation of user processes (login processes and init processes) The terminations of processes
These records are produced from the output of system programs such as date, init, login, ttymon, and acctwtmp. They are stored in the /var/adm/wtmpx file. Entries in the wtmpx file can contain the following information:
Login name Device name Process ID Entry type Time stamp that denotes when the entry was made
Process Accounting
Process accounting enables you to keep track of the following data about each process that runs on your system:
User IDs and group IDs of users using the process Beginning times and elapsed times of the process CPU time for the process (user time and system time) Amount of memory used by the process Commands run by the process The tty that controls the process
127
Every time a process terminates, the exit program collects this information and writes it to the /var/adm/pacct file.
Disk Accounting
Disk accounting enables you to gather and format the following data about the files each user has on disks:
User name and user ID of the user Number of blocks that are used by the user's files
This data is collected by the /usr/lib/acct/dodisk shell script at intervals that are determined by the entry you add to the /var/spool/cron/crontabs/root file. In turn, the dodisk script invokes the acctdisk and acctdusg commands. These commands gather disk usage by login name.
Caution Information gathered by running the dodisk script is stored in the /var/adm/acct/nite/disktacct file. This information is overwritten the next time the dodisk script is run. Therefore, avoid running the dodisk script twice in the same day.
The acctdusg command might overcharge for files that are written randomly, which can create holes in the files. This problem occurs because the acctdusg command does not read the indirect blocks of a file when determining the file size. Rather, the acctdusg command determines the file size by checking the current file size value in the file's inode.
Fee Calculations
The chargefee utility stores charges for special services that are provided to a user in the /var/adm/fee file. A special service, for example, is file restoration. Each entry in the file consists of a user login name, user ID, and the fee. This file is checked by the runacct script every day, and new entries are merged into the accounting records. For instructions on running the chargefee script to bill users, see How to Bill Users on page 133.
File in /var/adm
Information Stored
Written By
Format
wtmpx
login, init date acctwtmp shutacct Kernel (when the process ends)
pacctn
Processes
turnacct switch Binary (which creates a new file when the old file reaches 500 blocks) fee acct/nite/disktacct Special charges Disk space used chargefee dodisk ASCII Binary
3. The turnacct script, invoked with the -on option, begins process accounting. Specifically, the turnacct script executes the accton program with the /var/adm/pacct argument. 4. The remove shell script cleans up the saved pacct and wtmpx files that are left in the sum directory by the runacct script. 5. The login and init programs record connect sessions by writing records into the /var/adm/wtmpx file. Date changes (using date with an argument) are also written to the /var/adm/wtmpx file. Reboots and shutdowns using the acctwtmp command are also recorded in the /var/adm/wtmpx file. 6. When a process ends, the kernel writes one record per process, using the acct.h format, in the /var/adm/pacct file. Every hour, the cron command executes the ckpacct script to check the size of the /var/adm/pacct file. If the file grows beyond 500 blocks (default), the turnacct switch command is executed. (The program moves the pacct file to the pacctn file and creates a new file.) The advantage of having several smaller pacct files becomes apparent when you try to restart the runacct script if a failure occurs when processing these records. 7. The runacct script is executed by the cron command each night. The runacct script processes the accounting files to produce command summaries and usage summaries by user name. These accounting files are processed: /var/adm/pacctn, /var/adm/wtmpx, /var/adm/fee, and /var/adm/acct/nite/disktacct. 8. The /usr/lib/acct/prdaily script is executed on a daily basis by the runacct script to write the daily accounting information in the /var/adm/acct/sum/rprtMMDD files.
129
9. The monacct script should be executed on a monthly basis (or at intervals you determine, such as at the end of every fiscal period). The monacct script creates a report that is based on data stored in the sum directory that has been updated daily by the runacct script. After creating the report, the monacct script cleans up the sum directory to prepare the directory's files for the new runacct data.
Set up system accounting by performing the following tasks: Create the /etc/rc0.d/K22acct and /etc/rc2.d/S22acct files.
Modify the /var/spool/cron/crontabs/adm and /var/spool/cron/crontabs/root crontab files. How to Bill Users on page 133 How to Fix a Corrupted wtmpx File on page 134 How to Fix tacct Errors on page 135
Run the /usr/lib/acct/chargefee username amount command. Convert the wtmpx file from binary to ASCII format. Run the prtacct script to check the /var/adm/acct/sum/tacctprev file. Then, patch the latest/var/adm/acct/sum/tacctMMDD file. You will need to re-create the /var/adm/acct/sum/tacct file. Remove the lastdate file and any lock files. Then, manually restart the runacct script. Edit theadm crontab file to stop the ckpacct, runacct, and monacct programs from running. Delete the entries for the ckpacct, runacct, and monacct programs in the adm and crontab files.
Restart the runacct script. Disable system accounting temporarily. Disable system accounting permanently.
How to Restart the runacct Script on page 136 How to Temporarily Stop System Accounting on page 137 How to Permanently Disable System Accounting on page 137
130
Checks the size of the ckpacct /usr/adm/pacct log file and makes sure that it does not get too large. Processes connect, disk, runacct and fee accounting information. You can remove from this script the commands for the accounting features you do not want processed. Generates fiscal accounting monacct summary reports on a monthly basis. You can determine how often this script is run. You can remove from this script the commands for the accounting features you do not want to use.
acctsh(1M)
Periodically
runacct(1M)
Daily
acctsh(1M)
On a fiscal basis
You can choose which accounting scripts run by default. After these entries have been added to the crontab files, system accounting should run automatically.
If necessary, install the SUNWaccr and SUNWaccu packages on your system by using the pkgadd command. Install /etc/init.d/acct as the startup script for Run Level 2.
# ln /etc/init.d/acct /etc/rc2.d/S22acct
Add the following lines to the adm crontab file to start the ckpacct, runacct, and monacct scripts automatically.
# EDITOR=vi; export EDITOR # crontab -e adm 0 * * * * /usr/lib/acct/ckpacct 30 2 * * * /usr/lib/acct/runacct 2> /var/adm/acct/nite/fd2log 30 7 1 * * /usr/lib/acct/monacct
Add the following line to the root crontab file to start the dodisk script automatically.
# crontab -e 30 22 * * 4 /usr/lib/acct/dodisk
Edit /etc/acct/holidays to include national holidays and local holidays. For more information, see the holidays(4) man page and the example that follows. Reboot the system, or start system accounting manually by typing:
# /etc/init.d/acct start
Example 91
Example 92
132
Billing Users
# 10 15 30 30 Example 93
Prime/Nonprime Table for UNIX Accounting System Curr Year Prime Start Non-Prime Start
2004 0800 1800 * * only the first column (month/day) is significant. * * month/day Company * Holiday * 1/1 New Years Day 7/4 Indep. Day 12/25 Christmas
Billing Users
If you provide special user services by request, you might want to bill users by running the chargefee utility. Special services include restoring files or remote printing. The chargefee utility records charges in the /var/adm/fee file. Each time the runacct utility is executed, new entries are merged into the total accounting records. See the acctsh(1M) man page for more information.
username
amount
Specifies the number of units to bill the user. This value is an arbitrary unit that you set to charge users based on some task such as printing or restoring a file. You would have to write a script that invokes the chargefee utility and charges a user for a specific task.
Example 94
Billing Users
In the following example, the user print_customer is charged 10 units.
# /usr/lib/acct/chargefee print_customer 10
2 3
134
4 5
Edit the wtmpx.ascii file to delete the corrupted records. Convert the wtmpx.ascii file back to a binary file.
# /usr/lib/acct/fwtmp -ic < wtmpx.ascii > wtmpx
2 3
MMDD is pair of two-digit numbers that represent the month and day.
4 5
Edit the xtacct file, removing corrupted records and writing duplicate records to another file. Convert the xtacct file from ASCII format to binary format.
# /usr/lib/acct/acctmerg -i < xtacct > tacctMMDD
Merge the files tacctprev and tacct.MMDD into the tacct file.
# /usr/lib/acct/acctmerg < tacctprev tacctMMDD > tacct
135
A system crash The /var directory is running out of space A corrupted wtmpx file
If the active.MMDD file exists, check it first for error messages. If the active and lock files exist, check the fd2log file for any relevant messages. Run without arguments, the runacct script assumes that this invocation is the first invocation of the day. The argument MMDD is necessary if the runacct script is being restarted and specifies the month and day for which the runacct script reruns the accounting. The entry point for processing is based on the contents of the statefile file. To override the statefile file, include the desired state on the command line. For a description of the available states, see the runacct(1M) man page.
Caution When you run the runacct program manually, be sure to run it as user adm.
The lastdate file contains the date that the runacct program was last run. Restarting the runacct script in the next step re-creates this file.
3
MMDD Is the month and day specified by two-digit numbers. state Specifies a state, or starting point, where the runacct script processing should begin.
136
Edit the root crontab file to stop the dodisk program from running by commenting out the appropriate line.
# crontab -e #30 22 * * 4 /usr/lib/acct/dodisk
5 6
(Optional) Remove the newly added comment symbols from the crontab files. Restart the system accounting program to re-enable system accounting.
# /etc/init.d/acct start
137
Edit the root crontab file and delete the entries for the dodisk program.
# crontab -e
138
10
C H A P T E R
1 0
This chapter provides reference information about system accounting. This is a list of the reference information in this chapter. runacct Script on page 139 Daily Accounting Reports on page 142 System Accounting Files on page 149
For more information about system accounting tasks, see Chapter 9, Managing System Accounting (Tasks).
runacct Script
The main daily accounting script, runacct, is normally invoked by the cron command outside of normal business hours. The runacct script processes connect, fee, disk, and process accounting files. This script also prepares daily and cumulative summary files for use by the prdaily and monacct scripts for billing purposes. The runacct script takes care not to damage files if errors occur. A series of protection mechanisms that are used to perform the following tasks:
Recognize an error Provide intelligent diagnostics Complete processing in such a way that the runacct script can be restarted with minimal intervention
This script records its progress by writing descriptive messages to the active file. Files used by the runacct script are assumed to be in the /var/adm/acct/nite directory, unless otherwise noted. All diagnostic output during the execution of the runacct script is written to the fd2log file.
139
runacct Script
When the runacct script is invoked, it creates the lock and lock1 files. These files are used to prevent simultaneous execution of the runacct script. The runacct program prints an error message if these files exist when it is invoked. The lastdate file contains the month and day the runacct script was last invoked, and is used to prevent more than one execution per day. If the runacct script detects an error, the following occurs:
A message is written to the console Email is sent to root and adm Locks might be removed Diagnostics are saved Execution is ended
For instructions on how to restart the runacct script, see How to Restart the runacct Script on page 136. To allow the runacct script to be restarted, processing is broken down into separate re-entrant states. The statefile file is used to track the last state completed. When each state is completed, the statefile file is updated to reflect the next state. After processing for the state is complete, the statefile file is read and the next state is processed. When the runacct script reaches the CLEANUP state, it removes the locks and ends. States are executed as shown in the following table.
TABLE 101 State
SETUP
The turnacct switch command is executed to create a new pacct file. The /var/adm/pacctn process accounting files (except for the pacct file) are moved to the /var/adm/Spacctn.MMDD files. The /var/adm/wtmpx file is moved to the /var/adm/acct/nite/wtmp.MMDD file (with the current time record added on the end) and a new /var/adm/wtmp file is created. The closewtmp and utmp2wtmp programs add records to the wtmp.MMDD file and the new wtmpx file to account for users who are currently logged in. The wtmpfix program checks the wtmp.MMDD file in the nite directory for accuracy. Because some date changes cause the acctcon program to fail, the wtmpfix program attempts to adjust the time stamps in the wtmpx file if a record of a date change appears. This program also deletes any corrupted entries from the wtmpx file. The fixed version of the wtmp.MMDD file is written to the tmpwtmp file. The acctcon program is used to record connect accounting records in the file ctacct.MMDD. These records are in tacct.h format. In addition, the acctcon program creates the lineuse and reboots files. The reboots file records all the boot records found in the wtmpx file.
WTMPFIX
CONNECT
140
runacct Script
(Continued)
PROCESS
The acctprc program is used to convert the /var/adm/Spacctn.MMDD process accounting files into complete accounting records in the ptacctn.MMDD files. The Spacct and ptacct files are correlated by number so that if the runacct script fails, the Spacct files are not processed. The acctmerg program merges the process accounting records with the connect accounting records to form the daytacct file. The acctmerg program merges ASCII tacct records from the fee file into the daytacct file. The dodisk script produces the disktacct file. If the dodisk script has been run, which produces the disktacct file, the DISK program merges the file into the daytacct file and moves the disktacct file to the /tmp/disktacct.MMDD file. The acctmerg program merges the daytacct file with the sum/tacct file, the cumulative total accounting file. Each day, the daytacct file is saved in the sum/tacct.MMDD file so that the sum/tacct file can be re-created if it is corrupted or lost. The acctcms program is run several times. This program is first run to generate the command summary by using the Spacctn files and write the data to the sum/daycms file. The acctcms program is then run to merge the sum/daycms file with the sum/cms cumulative command summary file. Finally, the acctcms program is run to produce nite/daycms and nite/cms, the ASCII command summary files from the sum/daycms and sum/cms files, respectively. The lastlogin program is used to create the /var/adm/acct/sum/loginlog log file. This file reports when each user last logged in. If the runacct script is run after midnight, the dates showing the time last logged in by some users will be incorrect by one day. Any installation-dependent (local) accounting program can be run at this point. The runacct script expects this program to be called the /usr/lib/acct/runacct.local program. This state cleans up temporary files, runs the prdaily script and saves its output in the sum/rpt.MMDD file, removes the locks, and then exits.
MERGE
FEES
DISK
MERGETACCT
CMS
USEREXIT
CLEANUP
Caution When restarting the runacct script in the CLEANUP state, remove the last ptacct file
141
Daily Report on page 142 Daily Usage Report on page 143 Daily Command Summary on page 144
Shows terminal line utilization by tty number. Indicates usage of system resources by users (listed in order of user ID). Indicates usage of system resources by commands, listed in descending order of memory use. In other words, the command that used the most memory is listed first. This same information is reported for the month in the monthly command summary. A cumulative summary that reflects the data accumulated since the last invocation of the monacct program. Shows the last time each user logged in (listed in chronological order).
Monthly Command Summary on page 145 Last Login Report on page 146
Daily Report
This report gives information about each terminal line used. The following is a sample Daily Report:
Jan 16 02:30 2004 DAILY REPORT FOR venus Page 1 from Mon Jan 15 02:30:02 2004 to Tue Oan 16 02:30:01 2004 1 runacct 1 acctcon TOTAL DURATION IS 1440 MINUTES LINE MINUTES PERCENT # SESS # ON # OFF console 868 60 1 1 2 TOTALS 868 -1 1 2
The from and to lines specify the time period reflected in the report. This time period covers the time the last Daily Report was generated to the time the current Daily Report was generated. Then, the report presents a log of system reboots, shutdowns, power failure recoveries, and any other record written to the /var/adm/wtmpx file by the acctwtmp program. For more information, see the acct(1M) man page. The second part of the report is a breakdown of terminal line utilization. The TOTAL DURATION tells how long the system was in multiuser mode (accessible through the terminal lines). The following list describes the data provided by the Daily Report.
142 System Administration Guide: Advanced Administration September 2010
The terminal line or access port. The number of minutes that the line was in use during the accounting period. The TOTAL DURATION divided by the number of MINUTES. The number of times this line or port was accessed for a login session. Same as SESS. (This column no longer has meaning. Previously, this column listed the number of times that a line or port was used to log in a user.) The number of times a user logs out and any interrupts that occur on that line. Generally, interrupts occur on a port when ttymon is first invoked after the system is brought to multiuser mode. If the # OFF exceeds the # SESS by a large factor, the multiplexer, modem, or cable is probably going bad. Or, a bad connection exists somewhere. The most common cause is an unconnected cable dangling from the multiplexer.
During real time, you should monitor the /var/adm/wtmpx file because it is the file from which the connect accounting is derived. If the wtmpx file grows rapidly, execute the following command to see which tty line is the noisiest.
# /usr/lib/acct/acctcon -l file < /var/adm/wtmpx
If interruption is occurring frequently, general system performance will be affected. Additionally, the wtmp file might become corrupted. To correct this problem, see How to Fix a Corrupted wtmpx File on page 134.
UID 0 0 4 101
The following table describes the data provided by the Daily Usage Report.
143
User ID number. Login (or user) name of the user. Identifies a user who has multiple login names. Amount of time, in minutes, that the user's process used the central processing unit. Divided into PRIME and NPRIME (nonprime) utilization. The accounting system's version of this data is located in the /etc/acct/holidays file. A cumulative measure of the amount of memory in Kbyte segments per minute that a process uses while running. Divided into PRIME and NPRIME utilization. Amount of time, in minutes, that the a user was logged in to the system, or real time. Divided into PRIME and NPRIME utilization. If these numbers are high while the # OF PROCS is low, you can conclude that the user logs in first thing in the morning and hardly touches the terminal the rest of the day. Output from the acctdusg program, which runs the disk accounting programs and merges the accounting records (daytacct). For accounting purposes, a block is 512 bytes. Number of processes invoked by the user. If large numbers appear, a user might have a shell procedure that has run out of control. Number of times that a user logged in to the system. Number of times that disk accounting was run to obtain the average number of DISK BLOCKS. Often unused field that represents the total accumulation of units charged against the user by the chargefee script.
CPU (MINS)
KCORE-MINS
CONNECT (MINS)
DISK BLOCKS
# OF PROCS
FEE
NUMBER CMDS
TOTAL COMMAND SUMMARY TOTAL TOTAL TOTAL MEAN MEAN HOG CHARS BLOCKS KCOREMIN CPU-MIN REAL-MIN SIZE-K CPU-MIN FACTOR TRNSFD READ 0.10 0.00 397338982 419448
The following list describes the data provided by the Daily Command Summary. COMMAND NAME Name of the command. All shell procedures are lumped together under the name sh because only object modules are reported by the process accounting system. You should monitor the frequency of programs called a.out or core, or any other unexpected name. You can use the acctcom program to determine who executed an oddly named command and if superuser privileges were used. Total number of times this command was run. Total cumulative measurement of the Kbyte segments of memory used by a process per minute of run time. Total processing time this program accumulated. Total real-time (wall-clock) minutes this program accumulated. Mean (average) of the TOTAL KCOREMIN over the number of invocations reflected by the NUMBER CMDS. Mean (average) derived from the NUMBER CMDS and the TOTAL CPU-MIN. Total CPU time divided by elapsed time. Shows the ratio of system availability to system utilization, providing a relative measure of total available CPU time consumed by the process during its execution. Total number of characters transferred by the read and write system calls. Might be negative due to overflow. Total number of the physical block reads and writes that a process performed.
NUMBER CMDS TOTAL KCOREMIN TOTAL CPU-MIN TOTAL REAL-MIN MEAN SIZE-K MEAN CPU-MIN HOG FACTOR
145
while the monthly summary reports on the start of the fiscal period to the current date. In other words, the monthly report is a cumulative summary that reflects the data accumulated since the last invocation of the monacct program. A sample Monthly Command Summary follows.
Jan 16 02:30 2004 MONTHLY TOTAL COMMAND SUMMARY Page 1 TOTAL COMMAND SUMMARY TOTAL TOTAL TOTAL MEAN MEAN HOG CHARS KCOREMIN CPU-MIN REAL-MIN SIZE-K CPU-MIN FACTOR TRNSFD
COMMAND NAME TOTALS netscape adeptedi acroread dtmail dtaction soffice. dtwm
NUMBER CMDS
BLOCKS READ
42718 4398793.50 361.92 956039.00 12154.09 0.01 789 3110437.25 121.03 84 1214419.00 50.20 145 165297.78 7.01 2 64208.90 6.35 800 47602.28 11.26 13 35506.79 0.97 2 20350.98 3.17 79101.12 4174.65 18180.74 20557.14 15.37 9.23 20557.14 25699.58 24193.62 23566.84 10112.43 4226.93 36510.84 6419.87 0.15 0.60 0.05 3.17 0.01 0.07 1.59
0.00 16100942848 825171 0.00 0.01 0.00 0.00 0.73 0.11 0.00 3930527232 890216640 1900504064 250445824 640057536 134754320 190636032 302486 107237 26053 43280 8095 5712 14049
For a description of the data provided by the Monthly Command Summary, see Daily Command Summary on page 144.
# acctcom COMMAND NAME #accton turnacct mv utmp_upd utmp_upd utmp_upd utmp_upd utmp_upd utmp_upd closewtm
USER root adm adm adm adm adm adm adm adm adm
TTYNAME ? ? ? ? ? ? ? ? ? ?
START TIME 02:30:01 02:30:01 02:30:01 02:30:01 02:30:01 02:30:01 02:30:01 02:30:01 02:30:01 02:30:01
END TIME 02:30:01 02:30:01 02:30:01 02:30:01 02:30:01 02:30:01 02:30:01 02:30:01 02:30:01 02:30:01
REAL CPU MEAN (SECS) (SECS) SIZE(K) 0.03 0.01 304.00 0.42 0.01 320.00 0.07 0.01 504.00 0.03 0.01 712.00 0.01 0.01 824.00 0.01 0.01 912.00 0.01 0.01 920.00 0.01 0.01 1136.00 0.01 0.01 576.00 0.10 0.01 664.00
The following list describes each field: COMMAND NAME USER TTYNAME START TIME END TIME REAL (SECS) CPU (SECS) MEAN SIZE (K) Command name (pound (#) sign if the command was executed with superuser privileges) User name tty name (listed as ? if unknown) Command execution starting time Command execution ending time Real time (in seconds) CPU time (in seconds) Mean size (in Kbytes)
You can obtain the following information by using acctcom command options.
State of the fork/exec flag (1 for fork without exec) System exit status Hog factor Total kcore minutes CPU factor Characters transferred Blocks read
The following list describes the acctcom command options. -a -b -f Shows average statistics about the processes selected. The statistics are printed after the output is recorded. Reads the files backward, showing latest commands first. This option has no effect if reading standard input. Prints the fork/exec flag and system exit status columns. The output is an octal number.
147
-h
Instead of mean memory size, shows the hog factor, which is the fraction of total available CPU time consumed by the process during its execution. Hog factor = total-CPU-time/elapsed-time. Prints columns that contains the I/O counts in the output. Shows total kcore minutes instead of memory size. Shows mean core size. This size is the default. Prints average statistics, not output records. Shows CPU factor: user-time/(system-time + user-time). Shows separate system and user CPU times. Excludes column headings from the output. Shows only processes with total CPU time (system plus user) that exceeds sec seconds. Shows processes existing at or before time, given in the format hr[:min[:sec]]. Shows processes starting at or before time, given in the format hr[:min[:sec]]. Using the same time for both -S and -E, shows processes that existed at the time. Shows only processes that belong to group. Shows only processes that exceed factor, where factor is the hog factor (see the -h option). Shows only processes that transferred more characters than the cutoff number specified by chars. Show only processes that belong to the terminal /dev/line. Shows only commands that match pattern (a regular expression except that + means one or more occurrences). Instead of printing the records, copies them in acct.h format to ofile. Shows only processes with CPU system time that exceeds sec seconds. Show processes existing at or after time, given in the format hr[:min[:sec]]. Show processes starting at or after time, given in the format hr[:min[:sec]]. Shows only processes that belong to user.
-i -k -m -q -r -t -v -C sec -e time -E time -g group -H factor -I chars -l line -n pattern -o ofile -O sec -s time -S time -u user
148
The /var/adm/acct directory contains the nite, sum, and fiscal directories. These directories contain the actual data collection files. For example, the nite directory contains files that are reused daily by the runacct script. A brief summary of the files in the /var/adm/acct/nite directory follows.
TABLE 104 File
active
Used by the runacct script to record progress and print warning and error messages Same as the active file after the runacct script detects an error ASCII total command summary used by the prdaily script Connect accounting records in tacct.h format Output of acctcon1 program, which consists of connect session records in ctmp.h format (acctcon1 and acctcon2 are provided for compatibility purposes) ASCII daily command summary used by the prdaily script Total accounting records for one day in tacct.h format Disk accounting records in tacct.h format, created by the dodisk script Diagnostic output during execution of the runacct script Last day the runacct script executed (in date +%m%d format) tty line usage report used by the prdaily script Used to control serial use of the runacct script Diagnostic output from the acctcon program
149
(Continued)
Same as the log file after the runacct script detects an error Previous day's wtmpx file Beginning and ending dates from the wtmpx file, and a listing of reboots Used to record current state during execution of the runacct script wtmpx file corrected by the wtmpfix program Contains wtmpfix error messages Same as the wtmperror file after the runacct script detects an error The runacct script's copy of the wtmpx file
The sum directory contains the cumulative summary files updated by the runacct script and used by the monacct script. The following table summarizes the files in the /var/adm/acct/sum directory.
TABLE 105 File
Total command summary file for current fiscal period in binary format Command summary file without latest update Command summary file for the day's usage in internal summary format Record of last date each user logged in; created by the lastlogin script and used in the prdaily script Saved output of prdaily script Cumulative total accounting file for current fiscal period Same as the tacct file without latest update Total accounting file for MMDD
The fiscal directory contains periodic summary files that are created by the monacct script. The following table summarizes the files in the /var/adm/acct/fiscal directory.
TABLE 106 File
cmsn
Total command summary file for fiscal period n in internal summary format
150
(Continued)
fiscrptn tacctn
Report similar to rprtn for fiscal period n Total accounting file for fiscal period n
nite/daytacct nite/lineuse
The total accounting file for the day in tacct.h format. The runacct script calls the acctcon program to gather data on terminal line usage from the /var/adm/acct/nite/tmpwtmp file and writes the data to the /var/adm/acct/nite/lineuse file. The prdaily script uses this data to report line usage. This report is especially useful for detecting bad lines. If the ratio between the number of logouts to logins is greater than three to one, the line is very likely failing. This file is the accumulation of each day's command summaries. The accumulation restarts when the monacct script is executed. The ASCII version is the nite/cms file. The runacct script calls the acctcms program to process the commands used during the day to create the Daily Command Summary report and stores the data in the /var/adm/acct/sum/daycms file. The ASCII version is the /var/adm/acct/nite/daycms file. The runacct script calls the lastlogin script to update the last date logged in for the logins in the /var/adm/acct/sum/loginlog file. The lastlogin command also removes from this file any logins that are no longer valid. Each execution of the runacct script saves a copy of the daily report that was printed by the prdaily script. Contains the accumulation of each day's nite/daytacct data and is used for billing purposes. The monacct script restarts accumulating this data each month or fiscal period.
sum/cms
sum/daycms
sum/loginlog
sum/rprt.MMDD
sum/tacct
151
152
11
C H A P T E R
1 1
Achieving good performance from a computer or network is an important part of system administration. This chapter provides an overview of some factors that contribute to managing the performance of the computer systems in your care. This is a list of the overview information in this chapter.
What's New in Managing System Performance? on page 153 Where to Find System Performance Tasks on page 154 System Performance and System Resources on page 155 Processes and System Performance on page 155 About Monitoring System Performance on page 157
153
For simple measurements, you can even omit the counter configuration, as shown in the following example:
# cputrack -c Cycle_cnt ls -d . time lwp event pic0 . 0.016 1 exit 850736 pic1
For more information on using the cpustat command, see the cpustat(1M) man page. For more information on using the cputrack command, see the cputrack(1) man page.
Manage processes Monitor system performance Change tunable parameters Manage System Performance Tasks
Chapter 12, Managing System Processes (Tasks) Chapter 13, Monitoring System Performance (Tasks) Oracle Solaris Tunable Parameters Reference Manual Chapter 2, Projects and Tasks (Overview), in System Administration Guide: Oracle Solaris Containers-Resource Management and Oracle Solaris Zones Chapter 8, Fair Share Scheduler (Overview), in System Administration Guide: Oracle Solaris Containers-Resource Management and Oracle Solaris Zones
154
The CPU processes instructions by fetching instructions from memory and executing them. I/O devices transfer information into and out of the computer. Such a device could be a terminal and keyboard, a disk drive, or a printer. Physical (or main) memory is the amount of random access memory (RAM) on the system.
Memory
Chapter 13, Monitoring System Performance (Tasks), describes the tools that display statistics about the system's activity and performance.
Process Terminology
Description
Process
Any system activity or job. Each time you boot a system, execute a command, or start an application, the system activates one or more processes. A virtual CPU or execution resource. LWPs are scheduled by the kernel to use available CPU resources based on their scheduling class and priority. LWPs include a kernel thread and an LWP. A kernel thread contains information that has to be in memory all the time. An LWP contains information that is swappable. A series of instructions with a separate stack that can execute independently in a user's address space. Application threads can be multiplexed on top of LWPs.
Application thread
155
A process can consist of multiple LWPs and multiple application threads. The kernel schedules a kernel-thread structure, which is the scheduling entity in the SunOS environment. Various process structures are described in the following table.
TABLE 112 Structure
Process Structures
Description
proc
Contains information that pertains to the whole process and must be in main memory all the time Contains information that pertains to one LWP and must be in main memory all the time Contains the per process information that is swappable Contains the per LWP process information that is swappable
kthread
user klwp
The following figure illustrates the relationships among these process structures.
FIGURE 111
Main Memory (non-swappable) process (proc structure) per process user (user structure) Swappable kernel thread (kthread structure) per LWP LWP (klwp structure)
Most process resources are accessible to all the threads in the process. Almost all process virtual memory is shared. A change in shared data by one thread is available to the other threads in the process.
156
Central processing unit (CPU) utilization Buffer usage Disk and tape input/output (I/O) activity Terminal device activity System call activity Context switching File access Queue activity Kernel tables Interprocess communication Paging Free memory and swap space Kernel memory allocation (KMA)
Monitoring Tools
The Oracle Solaris software provides several tools to help you track how your system is performing. The following table describes these tools.
TABLE 113 Command
cpustat and cputrack commands netstat and nfsstat commands ps and prstat commands sar and sadc commands Sun Enterprise SyMON
Monitors performance of a system or a process using CPU performance counters. Displays information about network performance. Displays information about active processes. Collects and reports on system activity data. Collects system activity data on Sun's enterprise-level systems.
netstat(1M) and nfsstat(1M) Chapter 12, Managing System Processes (Tasks) Chapter 13, Monitoring System Performance (Tasks) Sun Enterprise SyMON 2.0.1 Software User's Guide
157
(Continued)
For More Information
swap command
Chapter 20, Configuring Additional Swap Space (Tasks), in System Administration Guide: Devices and File Systems
vmstat and iostat commands cputrack and cpustat commands kstat and mpstat commands
Summarizes system activity data, such as Chapter 13, Monitoring System virtual memory statistics, disk usage, and Performance (Tasks) CPU activity. Assists in accessing hardware performance counter facilities provided by microprocessors. Examines the available kernel statistics, or kstats, on the system and reports those statistics which match the criteria specified on the command line. The mpstat command reports processor statistics in tabular form. cputrack(1) and cpustat(1M) man pages kstat(1M) and mpstat(1M) man pages.
158
12
C H A P T E R
1 2
This chapter describes the procedures for managing system processes. For information on the procedures associated with managing system processes, see the following: Managing System Processes (Task Map) on page 159 Managing Process Class Information (Task Map) on page 169
For overview information about managing system processes, see the following:
Commands for Managing System Processes on page 160 Managing Process Class Information on page 170
Use the ps command to list all the processes on a system. Use the pgrep command to obtain the process IDs for processes that you want to display more information about.
How to List Processes on page 163 How to Display Information About Processes on page 164
Control processes.
Locate processes by using the How to Control Processes on pgrep command. Then, use the page 166 appropriate pcommand (/proc) to control the process. See Table 123 for a description of the (/proc) commands.
159
Task
Description
For Instructions
Kill a process.
Locate a process, either by process name or process ID. You can use either the pkill or kill commands to terminate the process.
How to Terminate a Process (pkill) on page 167 How to Terminate a Process (kill) on page 168
Checks the status of active ps(1), pgrep(1), andprstat(1M) processes on a system, as well as displays detailed information about the processes. Functions identically to pgrep but pgrep(1), and pkill(1) finds or signals processes by name kill(1) or other attribute and terminates the process. Each matching process is signaled as if by the kill command, instead of having its process ID printed. Assists with processes debugging. Lists default process scheduling policies. Assigns processes to a priority class and manages process priorities. Changes the priority of a timesharing process. Binds specific process groups to a group of processors rather than to just a single processor. pargs(1), and preap(1) dispadmin(1M)
pkill
priocntl
priocntl(1)
nice
nice(1)
psrset
psrset(1M)
The Solaris Management Console's Processes tool enables you to manage processes with a user-friendly interface. For information on using and starting the Solaris Management Console, see Chapter 2, Working With the Solaris Management Console (Tasks), in System Administration Guide: Basic Administration.
160 System Administration Guide: Advanced Administration September 2010
Current status of the process Process ID Parent process ID User ID Scheduling class Priority Address of the process Memory used CPU time used
The following table describes some fields that are reported by the ps command. Which fields are displayed depend on which option you choose. For a description of all available options, see the ps(1) man page.
TABLE 122 Field
The effective user ID of the process's owner. The process ID. The parent process ID. The processor xutilization for scheduling. This field is not displayed when the -c option is used. The scheduling class to which the process belongs such as real-time, system, or timesharing. This field is included only with the -c option. The kernel thread's scheduling priority. Higher numbers indicate a higher priority. The process's nice number, which contributes to its scheduling priority. Making a process nicer means lowering its priority. The address of the proc structure. The virtual address size of the process. The address of an event or lock for which the process is sleeping. The starting time of the process in hours, minutes, and seconds.
CLS
PRI
NI
161
(Continued)
TTY
The terminal from which the process, or its parent, was started. A question mark indicates that there is no controlling terminal. The total amount of CPU time used by the process since it began. The command that generated the process.
TIME CMD
Process Command
Displays process credential information Reports fstat and fcntl information for open files in a process Prints /proc tracing flags, pending signals and held signals, and other status information Lists the dynamic libraries that are linked into a process Prints the address space map of each process Lists the signal actions and handlers of each process Starts each process Prints a hex+symbolic stack trace for each lwp in each process Stops each process Times a process by using microstate accounting Displays the process trees that contain the process Displays status information after a process terminates Displays the current working directory for a process
pldd pmap psig prun pstack pstop ptime ptree pwait pwdx
For more information, see proc(1). The process tools are similar to some options of the ps command, except that the output that is provided by these commands is more detailed.
162 System Administration Guide: Advanced Administration September 2010
Display more information about processes, such as fstat and fcntl, working directories, and trees of parent and child processes. Provide control over processes by allowing users to stop or resume them.
Setting xwatchpoints on local variables on the stack due to SPARC based system register windows. Setting xwatchpoints on multithreaded processes.
For more information, see the proc(4), and mdb(1) man pages.
ps -ef -c
Displays only the processes that are associated with your login session. Displays full information about all the processes that are being executed on the system. Displays process scheduler information.
163
Example 121
Listing Processes
The following example shows output from the ps command when no options are used.
$ ps PID TTY 1664 pts/4 2081 pts/4 TIME COMD 0:06 csh 0:00 ps
The following example shows output from the ps -ef command. This output shows that the first process that is executed when the system boots is sched (the swapper) followed by the init process, pageout, and so on.
$ ps -ef UID root root root root root root root root root root root root root root root root root root daemon root root root root . . . PID PPID C 0 0 0 1 0 0 2 0 0 3 0 0 374 367 0 367 1 0 126 1 0 54 1 0 59 1 0 178 1 0 129 1 0 213 1 0 154 1 0 139 1 0 191 1 0 208 1 0 193 1 0 174 1 0 175 1 0 376 1 0 226 1 0 315 1 0 237 1 0 STIME Dec 20 Dec 20 Dec 20 Dec 20 Dec 20 Dec 20 Dec 20 Dec 20 Dec 20 Dec 20 Dec 20 Dec 20 Dec 20 Dec 20 Dec 20 Dec 20 Dec 20 Dec 20 Dec 20 Dec 20 Dec 20 Dec 20 Dec 20 TTY ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? TIME 0:17 0:00 0:00 4:20 0:00 0:00 0:00 0:00 0:00 0:03 0:00 0:00 0:00 0:00 0:00 0:02 0:00 0:00 0:00 0:00 0:00 0:00 0:00 CMD sched /etc/init pageout fsflush /usr/lib/saf/ttymon /usr/lib/saf/sac -t 300 /usr/sbin/rpcbind /usr/lib/sysevent/syseventd /usr/lib/picl/picld /usr/lib/autofs/automountd /usr/sbin/keyserv /usr/lib/lpsched /usr/sbin/inetd -s /usr/lib/netsvc/yp/ypbind ... /usr/sbin/syslogd /usr/sbin/nscd /usr/sbin/cron /usr/lib/nfs/lockd /usr/lib/nfs/statd /usr/lib/ssh/sshd /usr/lib/power/powerd /usr/lib/nfs/mountd /usr/lib/utmpd
where process is the name of the process you want to display more information about. The process ID is displayed in the first column of the output.
164
pcommand pid
Example 122
Is the (/proc) command that you want to run. Table 123 lists and describes these commands. Identifies the process ID.
1. 2. 3. 4.
Obtains the process ID for the cron process Displays the current working directory for the cron process Displays the process tree that contains the cron process Displays fstat and fcntl information
165
where process is the name of the process you want to control. The process ID displayed in the first column of the output.
2
pcommand pid
3
Is the process (/proc) command that you want to run. Table 123 lists and describes these commands. Identifies the process ID.
Example 123
Controlling Processes
The following example shows how to use process command to stop and restart the dtpad process.
# pgrep dtpad 2921 # pstop 2921 # prun 2921 1 2 3
1. Obtains the process ID for the dtpad process 2. Stops the dtpad process 3. Restarts the dtpad process
166
where process is the name of the process that you want to terminate. For example:
$ pgrep netscape 587 566
signal
When no signal is included in the pkill command-line syntax, the default signal that is used is 15 (SIGKILL). Using the 9 signal (SIGTERM) with the pkill command ensures that the process terminates promptly. However, the 9 signal should not be used to kill certain processes, such as a database process, or an LDAP server process. The result is that data might be lost. Is the name of the process to stop.
process
Tip When using the pkill command to terminate a process, first try using the command by itself, without including a signal option. Wait a few minutes to see if the process terminates before using the pkill command with the -9 signal. 4
167
The process you terminated should no longer be listed in the output of the pgrep command.
where user is the user that you want to display processes for. The process ID is displayed in the first column of the output.
3
signal
When no signal is included in the kill command-line syntax, the default signal that is used is 15 (SIGKILL). Using the 9 signal (SIGTERM) with the kill command ensures that the process terminates promptly. However, the 9 signal should not be used to kill certain processes, such as a database process, or an LDAP server process. The result is that data might be lost. Is the process ID of the process that you want to terminate.
pid
Tip When using the kill command to stop a process, first try using the command by itself, without including a signal option. Wait a few minutes to see if the process terminates before using the kill command with the -9 signal. 4
The process you terminated should no longer be listed in the output of the pgrep command.
168
consume system resources if they are numerous. You can use the pargs and preap commands to examine any process that you have the privileges to examine. As superuser, you can examine any process. For information on using the preap command, see the preap(1) man page. For information on the using the pargs command, see the pargs(1) man page. See also, the proc(1) man page.
EXAMPLE 124
The pargs command solves a long-standing problem of being unable to display with the ps command all the arguments that are passed to a process. The following example shows how to use the pargs command in combination with the pgrep command to display the arguments that are passed to a process.
# pargs pgrep ttymon 579: /usr/lib/saf/ttymon -g -h -p system-name console login: -T sun -d /dev/console -l argv[0]: /usr/lib/saf/ttymon argv[1]: -g argv[2]: -h argv[3]: -p argv[4]: system-name console login: argv[5]: -T argv[6]: sun argv[7]: -d argv[8]: /dev/console argv[9]: -l argv[10]: console argv[11]: -m argv[12]: ldterm,ttcompat 548: /usr/lib/saf/ttymon argv[0]: /usr/lib/saf/ttymon
The following example shows how to use the pargs -e command to display the environment variables that are associated with a process.
$ pargs -e 6763 6763: tcsh envp[0]: DISPLAY=:0.0
Use the priocntl -l command. to How to Display Basic Information Display process scheduling classes About Process Classes (priocntl) and priority ranges. on page 171
169
Task
Description
For Instructions
Use the ps -ecl command to display the global priority of a process. Start a process with a designated priority by using the priocntl -e -c command.
How to Display the Global Priority of a Process on page 171 How to Designate a Process Priority (priocntl) on page 172
Change scheduling parameters of a Use the priocntl -s -m command How to Change Scheduling timesharing process. to change scheduling parameters in Parameters of a Timesharing a timesharing process. Process (priocntl) on page 173 Change the class of a process. Change the priority of a process. Use the priocntl -s -c command How to Change the Class of a to change the class of a process. Process (priocntl) on page 173 Use the /usr/bin/nice command with the appropriate options to lower or raise the priority of a process. How to Change the Priority of a Process (nice) on page 175
Fair share (FSS) Fixed (FX) System (SYS) Interactive (IA) Real-time (RT) Timesharing (TS)
The user-supplied priority ranges from -60 to +60. The priority of a process is inherited from the parent process. This priority is referred to as the user-mode priority. The system looks up the user-mode priority in the timesharing dispatch parameter table. Then, the system adds in any nice or priocntl (user-supplied) priority and ensures a 059 range to create a global priority.
170
Example 125
Example 126
-e -c class
Executes the command. Specifies the class within which to run the process. The valid classes are TS (timesharing), RT (real time), IA (interactive), FSS (fair share), and FX (fixed priority). When you use the -p option, specifies the maximum amount you can raise or lower your priority, Lets you specify the relative priority in the RT class for a real-time thread. For a timesharing process, the -p option lets you specify the user-supplied priority, which ranges from -60 to +60.
Example 127
172
Lets you set the upper limit on the user priority range and change the current priority. When you use the -p option, specifies the maximum amount you can raise or lower the priority. Allows you to designate a priority. Uses a combination of xidtype and xidlist to identify the process or processes. The xidtype specifies the type of ID, such as the process ID or the user ID. Use xidlist to identify a list of process IDs or user IDs.
Example 128
1 2
-s
Lets you set the upper limit on the user priority range and change the current priority.
173
Specifies the class, TS for time-sharing or RT for real-time, to which you are changing the process. Uses a combination of xidtype and xidlist to identify the process or processes. The xidtype specifies the type of ID, such as the process ID or user ID. Use xidlist to identify a list of process IDs or user IDs.
Note You must be superuser or working in a real-time shell to change a process from, or to, a real-time process. If, as superuser, you change a user process to the real-time class, the user cannot subsequently change the real-time scheduling parameters by using the priocntl -s command. 3
Example 129
174
A user can lower the priority of a process by increasing its user-supplied priority. However, only superuser can lower a nice number to increase the priority of a process. This restriction prevents users from increasing the priorities of their own processes, thereby monopolizing a greater share of the CPU. The nice numbers range from 0 to +39, with 0 representing the highest priority. The default nice value for each timesharing process is 20. Two versions of the command are available: the standard version, /usr/bin/nice, and the C shell built-in command.
Determine whether you want to change the priority of a process, either as a user or as superuser. Then, select one of the following:
As a user, follow the examples in Step 2 to lower the priority of a command. As a superuser, follow the examples in Step 3 to raise or lower priorities of a command.
As a user, lower the priority of a command by increasing the nice number. The following nice command executes command-name with a lower priority by raising the nice number by 5 units.
$ /usr/bin/nice -5 command-name
In the preceding command, the minus sign designates that what follows is an option. This command could also be specified as follows:
% /usr/bin/nice -n 5 command-name
The following nice command lowers the priority of command-name by raising the nice number by the default increment of 10 units, but not beyond the maximum value of 39.
% /usr/bin/nice command-name
175
As superuser or assuming an equivalent role, raise or lower the priority of a command by changing the nice number. The following nice command raises the priority of command-name by lowering the nice number by 10 units, but not below the minimum value of 0.
# /usr/bin/nice --10 command-name
In the preceding command, the first minus sign designates that what follows is an option. The second minus sign indicates a negative number. The following nice command lowers the priority of command-name by raising the nice number by 5 units, but not beyond the maximum value of 39.
# /usr/bin/nice -5 command-name See Also
Look for several identical jobs that are owned by the same user. This problem might occur because of a running script that starts a lot of background jobs without waiting for any of the jobs to finish. Look for a process that has accumulated a large amount of CPU time. You can identify this problem by checking the TIME field in the ps output. Possibly, the process is in an endless loop. Look for a process that is running with a priority that is too high. Use the ps -c command to check the CLS field, which displays the scheduling class of each process. A process executing as a real-time (RT) process can monopolize the CPU. Or, look for a timesharing (TS) process with a high nice number. A user with superuser privileges might have increased the priority of a process. The system administrator can lower the priority by using the nice command. Look for a runaway process. A runaway process progressively uses more and more CPU time. You can identify this problem by looking at the time when the process started (STIME) and by watching the cumulation of CPU time (TIME) for a while.
176
13
C H A P T E R
1 3
This chapter describes procedures for monitoring system performance by using the vmstat, iostat, df, and sar commands. For information on the procedures that are associated with monitoring system performance, see the following:
Displaying System Performance Information (Task Map) on page 177 Monitoring System Activities (Task Map) on page 185
Collect virtual memory statistics by How to Display Virtual Memory using the vmstat command. Statistics (vmstat) on page 179 Display system event information How to Display System Event by using the vmstat command with Information (vmstat -s) on the -s option. page 180 Use the vmstat command with the -S option to display swapping statistics. Use the vmstat command with the -i option to show the number of interrupts per device. How to Display Swapping Statistics (vmstat -S) on page 180 How to Display Interrupts Per Device (vmstat -i) on page 181
Use the iostat command to report How to Display Disk Utilization disk input and output statistics. Information (iostat) on page 181
177
Task
Description
For Instructions
Use the iostat command with the -xtcoption to display extended disk statistics. The df -k command displays disk space information in Kbytes.
How to Display Extended Disk Statistics (iostat -xtc) on page 183 How to Display Disk Space Information (df -k) on page 184
procs r b
Reports on the following: The number of kernel threads in the dispatch queue The number of blocked kernel threads that are waiting for resources The number of swapped out LWPs that are waiting for processing resources to finish Reports on usage of real memory and virtual memory: swap free Available swap space Size of the free list Reports on page faults and paging activity, in units per second: re mf pi po fr de Pages reclaimed Minor faults and major faults Kbytes paged in Kbytes paged out Kbytes freed Anticipated memory that is needed by recently swapped-in processes
memory
page
178
(Continued)
Description
sr
Pages scanned by the page daemon not currently in use. If sr does not equal zero, the page daemon has been running. Reports the number of disk operations per second, showing data on up to four disks Reports the trap/interrupt rates per second:
disk
faults in sy cs cpu us sy id
Interrupts per second System calls per second CPU context switch rate Reports on the use of CPU time: User time System time Idle time
For a more detailed description of this command, see the vmstat(1M) man page.
The swapping statistics fields are described in the following list. For a description of the other fields, see Table 131. si so
180
Average number of LWPs that are swapped in per second Number of whole processes that are swapped out
Note The vmstat command truncates the output of si and so fields. Use the sar command to display a more accurate accounting of swap statistics.
Example 132
181
The first line of output shows the statistics since the last time the system was booted. Each subsequent line shows the interval statistics. The default is to show statistics for the terminal (tty), disks (fd and sd), and CPU (cpu).
Example 133
The following table describes the fields in the output of the iostat n command.
Device Type Field Name Description
Terminal
Device Type tin Number of characters in the terminal input queue Number of characters in the terminal output queue
tout Disk Device Type bps tps serv CPU Device Type us sy
Blocks per second Transactions per second Average service time, in milliseconds
182
Device Type
Field Name
Description
wt id
The iostat -xtc command displays a line of output for each disk. The output fields are described in the following list. r/s w/s kr/s kw/s wait actv svc_t %w %b Reads per second Writes per second Kbytes read per second Kbytes written per second Average number of transactions that are waiting for service (queue length) Average number of transactions that are actively being serviced Average service time, in milliseconds Percentage of time that the queue is not empty Percentage of time that the disk is busy
The percentage of disk space actually reported by the df command is used space divided by usable space. If the file system exceeds 90 percent capacity, you could transfer files to a disk that is not as full by using the cp command. Alternately, you could transfer files to a tape by using the tar or cpio commands. Or, you could remove the files. For a detailed description of this command, see the df(1M) man page.
Example 134
Total size of usable space in the file system Amount of space used Amount of space available for use Amount of space used, as a percentage of the total capacity
184
Field Name
Description
mounted on
Mount point
Check file access. Check buffer activity. Check system call statistics. Check disk activity. Check page-out and memory. Check kernel memory allocation.
Display file access operation status by using the sar command with the -a option. Display buffer activity statistics by using the sar command with the -b option. Display system call statistics by using the sar command with the -c option. Check disk activity by using the sar command with the -d option. Use the sar command with the -g option to display page-out memory freeing activities.
How to Check File Access (sar -a) on page 186 How to Check Buffer Activity (sar -b) on page 187 How to Check System Call Statistics (sar -c) on page 189 How to Check Disk Activity (sar -d) on page 190 How to Check Page-Out and Memory (sar -g) on page 191
The kernel memory allocation (KMA) allows a How to Check Kernel Memory kernel subsystem to allocate and free memory, as Allocation (sar -k) on needed. Use the sar command with the -k option page 193 to check KMA. Use the sar command with the -m option to report interprocess communication activities. Use the sar command with the -p option to report page-in activity. How to Check Interprocess Communication (sar -m) on page 194 How to Check Page-In Activity (sar -p) on page 195
Use the sar command with the -q option to check How to Check Queue Activity the following: (sar -q) on page 196 Average queue length while queue is occupied Percentage of time that the queue is occupied
Check unused memory. Use the sar command with the -r option to How to Check Unused report the number of memory pages and swap file Memory (sar -r) on page 197 disk blocks that are currently used. Check CPU utilization. Use the sar command with the -u option to display CPU utilization statistics. How to Check CPU Utilization (sar -u) on page 198
185
Task
Description
For Instructions
Use the sar command with the -v option to report status on the following system tables: Process Inode File Shared memory record
Check swapping activity. Check terminal activity. Check overall system performance. Set up automatic data collection.
Use the sar command with the -w option to check How to Check Swapping swapping activity. Activity (sar -w) on page 200 Use the sar command with the -y option to monitor terminal device activity. The sar -A command displays statistics from all options to provide overall system performance information. How to Check Terminal Activity (sar -y) on page 202 How to Check Overall System Performance (sar -A) on page 203
To set up your system to collect data How to Set Up Automatic Data automatically and to run the sar commands, do Collection on page 206 the following: Run the svcadm enable system/sar:default command Edit the /var/spool/cron/crontabs/sys file
Organize and view data about system activity. Access system activity data on a special request basis. Generate automatic reports to measure and monitor system performance, as well as special request reports to pinpoint specific performance problems. For information on how to set up the sar command to run on your system, as well as a description of these tools, see Collecting System Activity Data Automatically (sar) on page 203.
For a detailed description of this command, see the sar(1) man page.
186
00:00:00 iget/s namei/s dirbk/s 01:00:00 0 3 0 02:00:00 0 3 0 03:00:00 0 3 0 04:00:00 0 3 0 05:00:00 0 3 0 06:00:00 0 3 0 07:00:00 0 3 0 08:00:00 0 3 0 08:20:01 0 3 0 08:40:00 0 3 0 09:00:00 0 3 0 09:20:01 0 10 0 09:40:01 0 1 0 10:00:02 0 5 0 Average 0 4 0
The following list describes the field names and description of operating system routines that are reported by the sar -a command. iget/s namei/s The number of requests made for inodes that were not in the directory name look-up cache (DNLC). The number of file system path searches per second. If namei does not find a directory name in the DNLC, it calls iget to get the inode for either a file or directory. Hence, most igets are the result of DNLC misses. The number of directory block reads issued per second.
dirbk/s
The larger the reported values for these operating system routines, the more time the kernel is spending to access user files. The amount of time reflects how heavily programs and applications are using the file systems. The -a option is helpful for viewing how disk-dependent an application is.
Example 135
00:00:04 bread/s lread/s %rcache bwrit/s lwrit/s %wcache pread/s pwrit/s 01:00:00 0 0 100 0 0 94 0 0 02:00:01 0 0 100 0 0 94 0 0 03:00:00 0 0 100 0 0 92 0 0 04:00:00 0 1 100 0 1 94 0 0 05:00:00 0 0 100 0 0 93 0 0 06:00:00 0 0 100 0 0 93 0 0 07:00:00 0 0 100 0 0 93 0 0 08:00:00 0 0 100 0 0 93 0 0 08:20:00 0 1 100 0 1 94 0 0 08:40:01 0 1 100 0 1 93 0 0 09:00:00 0 1 100 0 1 93 0 0 09:20:00 0 1 100 0 1 93 0 0 09:40:00 0 2 100 0 1 89 0 0 10:00:00 0 9 100 0 5 92 0 0 10:20:00 0 0 100 0 0 68 0 0 10:40:00 0 1 98 0 1 70 0 0 11:00:00 0 1 100 0 1 75 0 0 Average 0 1 100 0 1 91 0 0
The following table describes the buffer activities that are displayed by the -b option.
Field Name Description
bread/s
Average number of reads per second that are submitted to the buffer cache from the disk Average number of logical reads per second from the buffer cache Fraction of logical reads that are found in the buffer cache (100 % minus the ratio of bread/s to lread/s) Average number of physical blocks (512 blocks) that are written from the buffer cache to disk, per second Average number of logical writes to the buffer cache, per second Fraction of logical writes that are found in the buffer cache (100 % minus the ratio of bwrit/s to lwrit/s) Average number of physical reads, per second, that use character device interfaces Average number of physical write requests, per second, that use character device interfaces
lread/s %rcache
bwrit/s
lwrit/s %wcache
pread/s
pwrit/s
188
The most important entries are the cache hit ratios %rcache and %wcache. These entries measure the effectiveness of system buffering. If %rcache falls below 90 percent, or if %wcache falls below 65 percent, it might be possible to improve performance by increasing the buffer space.
Example 136
00:00:04 scall/s sread/s swrit/s fork/s exec/s rchar/s wchar/s 01:00:00 89 14 9 0.01 0.00 2906 2394 02:00:01 89 14 9 0.01 0.00 2905 2393 03:00:00 89 14 9 0.01 0.00 2908 2393 04:00:00 90 14 9 0.01 0.00 2912 2393 05:00:00 89 14 9 0.01 0.00 2905 2393 06:00:00 89 14 9 0.01 0.00 2905 2393 07:00:00 89 14 9 0.01 0.00 2905 2393 08:00:00 89 14 9 0.01 0.00 2906 2393 08:20:00 90 14 9 0.01 0.01 2914 2395 08:40:01 90 14 9 0.01 0.00 2914 2396 09:00:00 90 14 9 0.01 0.01 2915 2396 09:20:00 90 14 9 0.01 0.01 2915 2396 09:40:00 880 207 156 0.08 0.08 26671 9290 10:00:00 2020 530 322 0.14 0.13 57675 36393 10:20:00 853 129 75 0.02 0.01 10500 8594 10:40:00 2061 524 450 0.08 0.08 579217 567072 11:00:00 1658 404 350 0.07 0.06 1152916 1144203 Average 302 66 49 0.02 0.01 57842 55544
The following table describes the system call categories that are reported by the -c option. Typically, reads and writes account for about half of the total system calls. However, the percentage varies greatly with the activities that are being performed by the system.
Field Name Description
scall/s
The number of all types of system calls per second, which is generally about 30 per second on a system with 4 to 6 users.
189
Field Name
Description
The number of read system calls per second. The number of write system calls per second. The number of fork system calls per second, which is about 0.5 per second on a system with 4 to 6 users. This number increases if shell scripts are running. The number of exec system calls per second. If exec/s divided by fork/s is greater than 3, look for inefficient PATH variables. The number of characters (bytes) transferred by read system calls per second. The number of characters (bytes) transferred by write system calls per second.
exec/s
rchar/s
wchar/s
Example 137
190
0 0 0
7 0 7
0 0 0
The following table describes the disk device activities that are reported by the -d option.
Field Name Description
Name of the disk device that is being monitored. Portion of time the device was busy servicing a transfer request. Average number of requests during the time the device was busy servicing a transfer request. Number of read-and-write transfers to the device, per second. Number of 512-byte blocks that are transferred to the device, per second. Average time, in milliseconds, that transfer requests wait idly in the queue. This time is measured only when the queue is occupied. Average time, in milliseconds, for a transfer request to be completed by the device. For disks, this value includes seek times, rotational latency times, and data transfer times.
r+w/s blks/s
avwait
avserv
Note that queue lengths and wait times are measured when something is in the queue. If %busy is small, large queues and service times probably represent the periodic efforts by the system to ensure that altered blocks are promptly written to the disk.
The output displayed by the sar -g command is a good indicator of whether more memory might be needed. Use the ps -elf command to show the number of cycles that are used by the page daemon. A high number of cycles, combined with high values for the pgfree/s and pgscan/s fields, indicates a memory shortage. The sar -g command also shows whether inodes are being recycled too quickly and causing a loss of reusable pages.
Example 138
00:00:00 pgout/s ppgout/s pgfree/s pgscan/s %ufs_ipf 01:00:00 0.00 0.00 0.00 0.00 0.00 02:00:00 0.01 0.01 0.01 0.00 0.00 03:00:00 0.00 0.00 0.00 0.00 0.00 04:00:00 0.00 0.00 0.00 0.00 0.00 05:00:00 0.00 0.00 0.00 0.00 0.00 06:00:00 0.00 0.00 0.00 0.00 0.00 07:00:00 0.00 0.00 0.00 0.00 0.00 08:00:00 0.00 0.00 0.00 0.00 0.00 08:20:01 0.00 0.00 0.00 0.00 0.00 08:40:00 0.00 0.00 0.00 0.00 0.00 09:00:00 0.00 0.00 0.00 0.00 0.00 09:20:01 0.05 0.52 1.62 10.16 0.00 09:40:01 0.03 0.44 1.47 4.77 0.00 10:00:02 0.13 2.00 4.38 12.28 0.00 10:20:03 0.37 4.68 12.26 33.80 0.00 Average 0.02 0.25 0.64 1.97 0.00
pgout/s ppgout/s
The number of page-out requests per second. The actual number of pages that are paged-out, per second. A single page-out request might involve paging-out multiple pages. The number of pages, per second, that are placed on the free list. The number of pages, per second, that are scanned by the page daemon. If this value is high, the page daemon is spending a lot of time checking for free memory. This situation implies that more memory might be needed. The percentage of ufs inodes taken off the free list by iget that had reusable pages associated with them. These pages are flushed and cannot be reclaimed by processes. Thus, this field represents the percentage of igets with page flushes. A high value indicates that the free list of inodes is page-bound, and that the number of ufs inodes might need to be increased.
pgfree/s pgscan/s
%ufs_ipf
192
Rather than statically allocating the maximum amount of memory it is expected to require under peak load, the KMA divides requests for memory into three categories:
Small (less than 256 bytes) Large (512 bytes to 4 Kbytes) Oversized (greater than 4 Kbytes)
The KMA keeps two pools of memory to satisfy small requests and large requests. The oversized requests are satisfied by allocating memory from the system page allocator. If you are checking a system that is being used to write drivers or STREAMS that use KMA resources, then the sar -k command will likely prove useful. Otherwise, you will probably not need the information it provides. Any driver or module that uses KMA resources, but does not specifically return the resources before it exits, can create a memory leak. A memory leak causes the amount of memory that is allocated by KMA to increase over time. Thus, if the alloc fields of the sar -k command increase steadily over time, there might be a memory leak. Another indication of a memory leak is failed requests. If this problem occurs, a memory leak has probably caused KMA to be unable to reserve and allocate memory. If it appears that a memory leak has occurred, you should check any drivers or STREAMS that might have requested memory from KMA and not returned it.
Example 139
alloc fail lg_mem alloc fail ovsz_alloc fail 4852865 0 60243968 54334808 156 9666560 4853057 0 60243968 54336088 156 9666560 4853297 0 60243968 54335760 156 9666560 4857673 0 60252160 54375280 156 9666560 4858097 0 60252160 54376240 156 9666560 4858289 0 60252160 54375608 156 9666560 4858793 0 60252160 54442424 156 9666560
08:00:00 08:20:00 08:40:01 09:00:00 09:20:00 09:40:00 10:00:00 10:20:00 10:40:00 11:00:00
6119744 6119744 6119744 6119744 6119744 6127936 6545728 6545728 6734144 6996288
4858985 4858169 4857345 4859433 4858633 5262064 5823137 5758997 6035759 6394872
0 0 0 0 0 0 0 0 0 0
60252160 60252160 60252160 60252160 60252160 60530688 62996480 62996480 64389120 65437696
54474552 54377400 54376880 54539752 54410920 55619816 58391136 57907400 59743064 60935936
156 156 156 156 156 156 156 156 156 156 156
9666560 9666560 9666560 9666560 9666560 9666560 9666560 9666560 10493952 10493952 9763900
0 0 0 0 0 0 0 0 0 0 0
0 61138340 55609004
sml_mem
The amount of memory, in bytes, that the KMA has available in the small memory request pool. In this pool, here a small request is less than 256 bytes. The amount of memory, in bytes, that the KMA has allocated from its small memory request pool to small memory requests. The number of requests for small amounts of memory that failed. The amount of memory, in bytes, that the KMA has available in the large memory request pool. In this pool, a large request is from 512 bytes to 4 Kbytes. The amount of memory, in bytes, that the KMA has allocated from its large memory request pool to large memory requests. The number of failed requests for large amounts of memory. The amount of memory that is allocated for oversized requests, which are requests that are greater than 4 Kbytes. These requests are satisfied by the page allocator. Thus, there is no pool. The number of failed requests for oversized amounts of memory.
alloc
fail
lg_mem
alloc
fail ovsz_alloc
fail
These figures are usually zero (0.00), unless you are running applications that use messages or semaphores.
194 System Administration Guide: Advanced Administration September 2010
The following list describes the output from the -m option. msg/s sema/s
Example 1310
The number of message operations (sends and receives) per second The number of semaphore operations per second
Example 1311
00:00:04 atch/s pgin/s ppgin/s pflt/s vflt/s slock/s 01:00:00 0.09 0.00 0.00 0.78 2.02 0.00 02:00:01 0.08 0.00 0.00 0.78 2.02 0.00 03:00:00 0.09 0.00 0.00 0.81 2.07 0.00 04:00:00 0.11 0.01 0.01 0.86 2.18 0.00 05:00:00 0.08 0.00 0.00 0.78 2.02 0.00 06:00:00 0.09 0.00 0.00 0.78 2.02 0.00 07:00:00 0.08 0.00 0.00 0.78 2.02 0.00 08:00:00 0.09 0.00 0.00 0.78 2.02 0.00 08:20:00 0.11 0.00 0.00 0.87 2.24 0.00
195
The following table describes the reported statistics from the -p option.
Field Name Description
atch/s
The number of page faults, per second, that are satisfied by reclaiming a page currently in memory (attaches per second). Instances include reclaiming an invalid page from the free list and sharing a page of text that is currently being used by another process. An example is two or more processes that are accessing the same program text. The number of times, per second, that file systems receive page-in requests. The number of pages paged in, per second. A single page-in request, such as a soft-lock request (see slock/s) or a large block size, might involve paging-in multiple pages. The number of page faults from protection errors. Instances of protection faults indicate illegal access to a page and copy-on-writes. Generally, this number consists primarily of copy-on-writes. The number of address translation page faults, per second. These faults are known as validity faults. Validity faults occur when a valid process table entry does not exist for a given virtual address. The number of faults, per second, caused by software lock requests that require physical I/O. An example of the occurrence of a soft-lock request is the transfer of data from a disk to memory. The system locks the page that is to receive the data so that the page cannot be claimed and used by another process.
pgin/s
ppgin/s
pflt/s
vflt/s
slock/s
196
The following list describes the output from the -q option. runq-sz The number of kernel threads in memory that are waiting for a CPU to run. Typically, this value should be less than 2. Consistently higher values mean that the system might be CPU-bound. The percentage of time that the dispatch queues are occupied. Swap queue of processes for the sar command. Swap queue of processes for the sar command.
The following list describes the output from the -r option: freemem The average number of memory pages that are available to user processes over the intervals sampled by the command. Page size is machine-dependent.
197
freeswap
Example 1313
The number of 512-byte disk blocks that are available for page swapping.
The sar command without any options is equivalent to the sar -u command. At any given moment, the processor is either busy or idle. When busy, the processor is in either user mode or system mode. When idle, the processor is either waiting for I/O completion or sitting still with no work to do. The following list describes output from the -u option: %usr %sys %wio Lists the percentage of time that the processor is in user mode. Lists the percentage of time that the processor is in system mode. Lists the percentage of time that the processor is idle and waiting for I/O completion.
198
%idle
Lists the percentage of time that the processor is idle and not waiting for I/O.
A high %wio value generally means that a disk slowdown has occurred.
Example 1314
Example 1315
199
SunOS balmyday 5.10 s10_51 sun4u 00:00:04 proc-sz 01:00:00 69/8010 02:00:01 69/8010 03:00:00 69/8010 04:00:00 69/8010 05:00:00 69/8010 06:00:00 69/8010 07:00:00 69/8010 08:00:00 69/8010 08:20:00 69/8010 08:40:01 69/8010 09:00:00 69/8010 09:20:00 69/8010 09:40:00 74/8010 10:00:00 75/8010 10:20:00 72/8010 10:40:00 71/8010 11:00:00 77/8010 ov 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
03/18/2004 ov lock-sz 0 0/0 0 0/0 0 0/0 0 0/0 0 0/0 0 0/0 0 0/0 0 0/0 0 0/0 0 0/0 0 0/0 0 0/0 0 0/0 0 0/0 0 0/0 0 0/0 0 0/0
inod-sz ov file-sz 3476/34703 0 0/0 3476/34703 0 0/0 3476/34703 0 0/0 3494/34703 0 0/0 3494/34703 0 0/0 3494/34703 0 0/0 3494/34703 0 0/0 3494/34703 0 0/0 3494/34703 0 0/0 3494/34703 0 0/0 3494/34703 0 0/0 3494/34703 0 0/0 3494/34703 0 0/0 4918/34703 0 0/0 4918/34703 0 0/0 5018/34703 0 0/0 5018/34703 0 0/0
proc-sz
The number of process entries (proc structures) that are currently being used, or allocated, in the kernel. The total number of inodes in memory compared to the maximum number of inodes that are allocated in the kernel. This number is not a strict high watermark. The number can overflow. The size of the open system file table. The sz is given as 0, because space is allocated dynamically for the file table. The overflows that occur between sampling points for each table. The number of shared memory record table entries that are currently being used, or allocated, in the kernel. The sz is given as 0 because space is allocated dynamically for the shared memory record table.
inod-sz
file-sz
ov
lock-sz
200
The following list describes target values and observations related to the sar -w command output. swpin/s bswin/s swpot/s bswot/s pswch/s The number of LWP transfers into memory per second. The number of blocks transferred for swap-ins per second. /* (float)PGTOBLK(xx->cvmi.pgswapin) / sec_diff */. The average number of processes that are swapped out of memory per second. If the number is greater than 1, you might need to increase memory. The number of blocks that are transferred for swap-outs per second. The number of kernel thread switches, per second.
Example 1316
00:00:04 swpin/s bswin/s swpot/s bswot/s pswch/s 01:00:00 0.00 0.0 0.00 0.0 132 02:00:01 0.00 0.0 0.00 0.0 133 03:00:00 0.00 0.0 0.00 0.0 133 04:00:00 0.00 0.0 0.00 0.0 134 05:00:00 0.00 0.0 0.00 0.0 133 06:00:00 0.00 0.0 0.00 0.0 133 07:00:00 0.00 0.0 0.00 0.0 132 08:00:00 0.00 0.0 0.00 0.0 131 08:20:00 0.00 0.0 0.00 0.0 133 08:40:01 0.00 0.0 0.00 0.0 132 09:00:00 0.00 0.0 0.00 0.0 132 09:20:00 0.00 0.0 0.00 0.0 132 09:40:00 0.00 0.0 0.00 0.0 335 10:00:00 0.00 0.0 0.00 0.0 601 10:20:00 0.00 0.0 0.00 0.0 353 10:40:00 0.00 0.0 0.00 0.0 747 11:00:00 0.00 0.0 0.00 0.0 804 Average 0.00 0.0 0.00 0.0 198
201
If you have a lot of terminal I/O, you can use this report to determine if any bad lines exist. The activities recorded are defined in the following list. rawch/s canch/s outch/s rcvin/s xmtin/s mdmin/s Input characters (raw queue) per second. Input characters that are processed by canon (canonical queue) per second. Output characters (output queue) per second. Receiver hardware interrupts per second. Transmitter hardware interrupts per second. Modem interrupts per second.
The number of modem interrupts per second (mdmin/s) should be close to zero. The receive and transmit interrupts per second (xmtin/s and rcvin/s) should be less than or equal to the number of incoming or outgoing characters, respectively. If not, check for bad lines.
Example 1317
00:00:04 rawch/s canch/s outch/s rcvin/s xmtin/s mdmin/s 01:00:00 0 0 0 0 0 0 02:00:01 0 0 0 0 0 0 03:00:00 0 0 0 0 0 0 04:00:00 0 0 0 0 0 0 05:00:00 0 0 0 0 0 0 06:00:00 0 0 0 0 0 0 07:00:00 0 0 0 0 0 0 08:00:00 0 0 0 0 0 0 08:20:00 0 0 0 0 0 0 08:40:01 0 0 0 0 0 0 09:00:00 0 0 0 0 0 0 09:20:00 0 0 0 0 0 0 09:40:00 0 0 1 0 0 0 10:00:00 0 0 37 0 0 0 10:20:00 0 0 0 0 0 0 10:40:00 0 0 3 0 0 0 11:00:00 0 0 3 0 0 0
202
Average
The command samples n times with an interval of t seconds, which should be greater than five seconds between samples. This command then writes to the binary ofile file, or to standard output.
203
The first two crontab entries cause a record to be written to the /var/adm/sa/sadd file every 20 minutes from 8 a.m. to 5 p.m., Monday through Friday, and every hour on the hour otherwise. The third entry writes a record to the /var/adm/sa/sardd file hourly, Monday through Friday, and includes all sar options.
The following sar command samples cumulative activity counters in the operating system every t seconds, n times. The t should be five seconds or greater. Otherwise, the command itself might affect the sample. You must specify a time interval in which to take the samples. Otherwise, the command operates according to the second format. The default value of n is 1. The following example takes two samples separated by 10 seconds. If the -o option were specified, samples are saved in binary format.
204
$ sar -u 10 2
Other important information about the sar command includes the following:
With no sampling interval or number of samples specified, the sar command extracts data from a previously recorded file. This file is either the file specified by the -f option or, by default, the standard daily activity file, /var/adm/sa/sadd, for the most recent day. The -s and -e options define the starting time and the ending time for the report. Starting and ending times are of the form hh[:mm[:ss]], where hh, mm, and ss represent hours, minutes, and seconds. The -i option specifies, in seconds, the intervals between record selection. If the -i option is not included, all intervals that are found in the daily activity file are reported.
The following table lists the sar options and their actions.
TABLE 132 Option
-a -b -c -d -g -k -m -nv -p -q -r -u -w -y -A
Checks file access operations Checks buffer activity Checks system calls Checks activity for each block device Checks page-out and memory freeing Checks kernel memory allocation Checks interprocess communication Checks system table status Checks swap and dispatch activity Checks queue activity Checks unused memory Checks CPU utilization Checks swapping and switching volume Checks terminal activity Reports overall system performance, which is the same as entering all options.
Using no option is equivalent to calling the sar command with the -u option.
205
# crontab -e sys 4
206
14
C H A P T E R
1 4
This chapter provides a general overview of troubleshooting software problems, including information on troubleshooting system crashes and viewing system messages. This is a list of information in this chapter. What's New in Troubleshooting? on page 207 Where to Find Software Troubleshooting Tasks on page 209 Troubleshooting a System Crash on page 210 Troubleshooting a System Crash Checklist on page 211
Dynamic Tracing Facility on page 208 kmdb Replaces kadb as Standard Solaris Kernel Debugger on page 208
For a complete listing of new features and a description of Oracle Solaris releases, see Oracle Solaris 10 9/10 Whats New.
Typically, the container is not visible. However, there are two instances when you might need to interact with the container daemon:
It is possible that another application might attempt to use a network port that is reserved for the common agent container. In the event that a certificate store is compromised, you might have to regenerate the common agent container certificate keys.
For information about how to troubleshoot these problems, see Troubleshooting Common Agent Container Problems in the Oracle Solaris OS on page 247.
x86: SMF Boot Archive Service Might Fail During System Reboot
Solaris 10 1/06: If a system crash occurs in the GRUB based boot environment, it is possible that the SMF service svc:/system/boot-archive:default might fail when the system is rebooted. If this problem occurs, reboot the system and select the failsafe archive in the GRUB boot menu. Follow the prompts to rebuild the boot archive. After the archive is rebuilt, reboot the system. To continue the boot process, you can use the svcadm command to clear the svc:/system/boot-archive:default service. For more information on GRUB based booting, see Booting an x86 Based System by Using GRUB (Task Map) in System Administration Guide: Basic Administration.
kmdb brings all the power and flexibility of mdb to live kernel debugging. kmdb supports the following:
Debugger commands (dcmds) Debugger modules (dmods) Access to kernel type data Kernel execution control Inspection Modification
For more information, see the kmdb(1) man page. For step-by-step instructions on using kmdb to troubleshoot a system, see How to Boot the System With the Kernel Debugger (kmdb) in System Administration Guide: Basic Administration and How to Boot a System With the Kernel Debugger in the GRUB Boot Environment (kmdb) in System Administration Guide: Basic Administration.
Manage system crash information Manage core files Troubleshoot software problems such as reboot failures and backup problems Troubleshoot file access problems Troubleshoot printing problems
Chapter 17, Managing System Crash Information (Tasks) Chapter 16, Managing Core Files (Tasks) Chapter 18, Troubleshooting Miscellaneous Software Problems (Tasks) Chapter 19, Troubleshooting File Access Problems (Tasks) Chapter 13, Troubleshooting Printing Problems in the Oracle Solaris OS (Tasks), in System Administration Guide: Printing Chapter 20, Resolving UFS File System Inconsistencies (Tasks) Chapter 21, Troubleshooting Software Package Problems (Tasks)
209
If the system fails to reboot successfully after a system crash, see Chapter 18, Troubleshooting Miscellaneous Software Problems (Tasks). Check to see if a system crash dump was generated after the system crash. System crash dumps are saved by default. For information about crash dumps, see Chapter 17, Managing System Crash Information (Tasks).
210
This is important because a reproducible test case is often essential for debugging really hard problems. By reproducing the problem, the service provider can build kernels with special instrumentation to trigger, diagnose, and fix the bug. Drivers run in the same address space as the kernel, with all the same privileges, so they can cause system crashes if they have bugs. If the system was doing anything unusual like running a new stress test or experiencing higher-than-usual load, that might have led to the crash. Sometimes the system will show signs of distress before it actually crashes; this information is often useful. Sometimes tuning parameters, such as increasing shared memory segments so that the system tries to allocate more than it has, can cause the system to crash. If so, did the onset of problems coincide with any changes to the system, for example, new drivers, new software, different workload, CPU upgrade, or a memory upgrade.
What was the system doing just before it crashed? Were there any unusual console messages right before the crash? Did you add any tuning parameters to the /etc/system file? Did the problem start recently?
Is a system crash dump available? Identify the operating system release and appropriate software application release levels. Identify system hardware. Include prtdiag output for sun4u systems. Include Explorer output for other systems. Are patches installed? If so, include showrev -p output. Is the problem reproducible? Does the system have any third-party drivers?
211
Item
Your Data
What was the system doing before it crashed? Were there any unusual console messages right before the system crashed? Did you add any parameters to the /etc/system file? Did the problem start recently?
212
15
C H A P T E R
1 5
This chapter describes system messaging features in the Oracle Solaris OS.
If the message originated in the kernel, the kernel module name is displayed. For example:
Oct 1 14:07:24 mars ufs: [ID 845546 kern.notice] alloc: /: file system full
When a system crashes, it might display a message on the system console like this:
panic: error message
Less frequently, this message might be displayed instead of the panic message:
Watchdog reset !
The error logging daemon, syslogd, automatically records various system warnings and errors in message files. By default, many of these system messages are displayed on the system console and are stored in the /var/adm directory. You can direct where these messages are stored by setting up system message logging. For more information, see Customizing System Message Logging on page 216. These messages can alert you to system problems, such as a device that is about to fail. The /var/adm directory contains several message files. The most recent messages are in /var/adm/messages file (and in messages.*), and the oldest are in the messages.3 file. After a
213
period of time (usually every ten days), a new messages file is created. The messages.0 file is renamed messages.1, messages.1 is renamed messages.2, and messages.2 is renamed messages.3. The current /var/adm/messages.3 file is deleted. Because the /var/adm directory stores large files containing messages, crash dumps, and other data, this directory can consume lots of disk space. To keep the /var/adm directory from growing too large, and to ensure that future crash dumps can be saved, you should remove unneeded files periodically. You can automate this task by using the crontab file. For more information on automating this task, see How to Delete Crash Dump Files on page 88 and Chapter 8, Scheduling System Tasks (Tasks).
Or, use the more command to display one screen of messages at a time.
$ more /var/adm/messages
Example 151
See Also
214
In this example, the Apache access_log file is rotated when it reaches 100 MB in size, with a .0, .1, (and so on) suffix, keeping 10 copies of the old access_log file. The error_log is rotated when it reaches 10 MB in size with the same suffixes and number of copies as the access_log file. The /etc/logadm.conf entries for the preceding Apache log rotation examples look similar to the following:
# cat /etc/logadm.conf . . . /var/apache/logs/error_log -s 10m /var/apache/logs/access_log -s 100m
For more information, see logadm(1M). You can use the logadm command as superuser or by assuming an equivalent role (with Log Management rights). With role-based access control (RBAC), you can grant non-root users the privilege of maintaining log files by providing access to the logadm command. For example, add the following entry to the /etc/user_attr file to grant user andy the ability to use the logadm command:
andy::::profiles=Log Management
Or, you can set up a role for log management by using the Solaris Management Console. For more information about setting up a role, see Role-Based Access Control (Overview) in System Administration Guide: Security Services.
Chapter 15 Managing System Messages 215
facility.level
A facility or system source of the message or condition. May be a comma-separated listed of facilities. Facility values are listed in Table 151. A level, indicates the severity or priority of the condition being logged. Priority levels are listed in Table 152. Do not put two entries for the same facility on the same line, if the entries are for different priorities. Putting a priority in the syslog file indicates that all messages of that all messages of that priority or higher are logged, with the last message taking precedence. For a given facility and level, syslogd matches all messages for that level and all higher levels.
action
The following example shows sample lines from a default /etc/syslog.conf file.
user.err user.err user.alert user.emerg /dev/sysmsg /var/adm/messages root, operator *
User errors are printed to the console and also are logged to the /var/adm/messages file. User messages requiring immediate action (alert) are sent to the root and operator users. User emergency messages are sent to individual users.
Note Placing entries on separate lines might cause messages to be logged out of order if a log
target is specified more than once in the /etc/syslog.conf file. Note that you can specify multiple selectors in a single line entry, each separated by a semi-colon. The most common error condition sources are shown in the following table. The most common priorities are shown in Table 152 in order of severity.
216
The kernel Authentication All daemons Mail system Spooling system User processes
Note The number of syslog facilities that can be activated in the /etc/syslog.conf file is
unlimited.
TABLE 152 Priority
System emergencies Errors requiring immediate correction Critical errors Other errors Informational messages Output used for debugging This setting doesn't log output
Edit the /etc/syslog.conf file, adding or changing message sources, priorities, and message locations according to the syntax described in syslog.conf(4). Exit the file, saving the changes.
Chapter 15 Managing System Messages 217
Example 152
The consadm command enables you to select a serial device as an auxiliary (or remote) console. Using the consadm command, a system administrator can configure one or more serial ports to display redirected console messages and to host sulogin sessions when the system transitions between run levels. This feature enables you to dial in to a serial port with a modem to monitor console messages and participate in init state transitions. (For more information, see sulogin(1M) and the step-by-step procedures that follow.) While you can log in to a system using a port configured as an auxiliary console, it is primarily an output device displaying information that is also displayed on the default console. If boot scripts or other applications read and write to and from the default console, the write output displays on all the auxiliary consoles, but the input is only read from the default console. (For more information on using the consadm command during an interactive login session, see Using the consadm Command During an Interactive Login Session on page 220.)
Console output now consists of kernel and syslog messages written to a new pseudo device, /dev/sysmsg. In addition, rc script startup messages are written to /dev/msglog. Previously, all of these messages were written to /dev/console. Scripts that direct console output to /dev/console need to be changed to /dev/msglog if you want to see script messages displayed on the auxiliary consoles. Programs referencing /dev/console should be explicitly modified to use syslog() or strlog() if you want messages to be redirected to an auxiliary device.
The consadm command runs a daemon to monitor auxiliary console devices. Any display device designated as an auxiliary console that disconnects, hangs up or loses carrier, is removed from the auxiliary console device list and is no longer active. Enabling one or more auxiliary consoles does not disable message display on the default console; messages continue to display on /dev/console.
218
Input cannot come from an auxiliary console if user input is expected for an rc script that is run when a system is booting. The input must come from the default console. The sulogin program, invoked by init to prompt for the superuser password when transitioning between run levels, has been modified to send the superuser password prompt to each auxiliary device in addition to the default console device. When the system is in single-user mode and one or more auxiliary consoles are enabled using the consadm command, a console login session runs on the first device to supply the correct superuser password to the sulogin prompt. When the correct password is received from a console device, sulogin disables input from all other console devices. A message is displayed on the default console and the other auxiliary consoles when one of the consoles assumes single-user privileges. This message indicates which device has become the console by accepting a correct superuser password. If there is a loss of carrier on the auxiliary console running the single-user shell, one of two actions might occur:
If the auxiliary console represents a system at run level 1, the system proceeds to the default run level. If the auxiliary console represents a system at run level S, the system displays the ENTER RUN LEVEL (0-6, s or S): message on the device where the init s or shutdown command had been entered from the shell. If there isn't any carrier on that device either, you will have to reestablish carrier and enter the correct run level. The init or shutdown command will not redisplay the run-level prompt.
If you are logged in to a system using a serial port, and an init or shutdown command is issued to transition to another run level, the login session is lost whether this device is the auxiliary console or not. This situation is identical to releases without auxiliary console capabilities. Once a device is selected as an auxiliary console using the consadm command, it remains the auxiliary console until the system is rebooted or the auxiliary console is unselected. However, the consadm command includes an option to set a device as the auxiliary console across system reboots. (See the following procedure for step-by-step instructions.)
219
If you use the terminal for an interactive login session while the auxiliary console is active, the console messages are sent to the /dev/sysmsg or /dev/msglog devices. While you issue commands on the terminal, input goes to your interactive session and not to the default console (/dev/console). If you run the init command to change run levels, the remote console software kills your interactive session and runs the sulogin program. At this point, input is accepted only from the terminal and is treated like it's coming from a console device. This allows you to enter your password to the sulogin program as described in Using Auxiliary Console Messaging During Run Level Transitions on page 219. Then, if you enter the correct password on the (auxiliary) terminal, the auxiliary console runs an interactive sulogin session, locks out the default console and any competing auxiliary console. This means the terminal essentially functions as the system console.
From here you can change to run level 3 or go to another run level. If you change run levels, sulogin runs again on all console devices. If you exit or specify that the system should come up to run level 3, then all auxiliary consoles lose their ability to provide input. They revert to being display devices for console messages. As the system is coming up, you must provide information to rc scripts on the default console device. After the system comes back up, the login program runs on the serial ports and you can log back into another interactive session. If you've designated the device to be an auxiliary console, you will continue to get console messages on your terminal, but all input from the terminal goes to your interactive session.
1 2
220
Example 153
1 2
1 2
Verify that the device has been added to the list of persistent auxiliary consoles.
# consadm
Example 154
1 2
or b. Disable the auxiliary console and remove it from the list of persistent auxiliary consoles.
# consadm -p -d devicename 3
Example 155
222
16
C H A P T E R
1 6
This chapter describes how to manage core files with the coreadm command. For information on the procedures associated with managing core files, see Managing Core Files (Task Map) on page 223.
1. Display the current core dump configuration. 2. Modify the core dump configuration.
Display the current core dump configuration How to Display the Current by using the coreadm command. Core Dump Configuration on page 226 Modify the core dump configuration to do one of the following: Set a core file name pattern. Enable a per-process core file path. Enable a global core file path. How to Set a Core File Name Pattern on page 226 How to Enable a Per-Process Core File Path on page 227 How to Enable a Global Core File Path on page 227 Examining Core Files on page 228
223
A per-process core file path, which defaults to core and is enabled by default. If enabled, the per-process core file path causes a core file to be produced when the process terminates abnormally. The per-process path is inherited by a new process from its parent process. When generated, a per-process core file is owned by the owner of the process with read/write permissions for the owner. Only the owning user can view this file.
A global core file path, which defaults to core and is disabled by default. If enabled, an additional core file with the same content as the per-process core file is produced by using the global core file path. When generated, a global core file is owned by superuser with read/write permissions for superuser only. Non-privileged users cannot view this file.
When a process terminates abnormally, it produces a core file in the current directory by default. If the global core file path is enabled, each abnormally terminating process might produce two files, one in the current working directory, and one in the global core file location. By default, a setuid process does not produce core files using either the global or per-process path.
%d %f
Executable file directory name, up to a maximum of MAXPATHLEN characters Executable file name, up to a maximum of MAXCOMLEN characters
224
Variable Name
Variable Definition
%g %m %n %p %t %u %z %%
Effective group ID Machine name (uname -m) System node name (uname -n) Process ID Decimal value of time(2) Effective user ID Name of the zone in which process is executed (zonename) Literal %
For example, if the global core file path is set to: /var/core/core.%f.%p and a sendmail process with PID 12345 terminates abnormally, it produces the following core file: /var/core/core.sendmail.12345
The following coreadm command sets the per-process core file name pattern for any processes:
$ coreadm -p /var/core/core.%f.%p $$
The $$ symbols represent a placeholder for the process ID of the currently running shell. The per-process core file name pattern is inherited by all child processes. Once a global or per-process core file name pattern is set, it must be enabled with the coreadm -e command. See the following procedures for more information. You can set the core file name pattern for all processes run during a user's login session by putting the command in a user's $HOME/.profile or .login file.
Chapter 16 Managing Core Files (Tasks) 225
If the global setuid option is enabled, a global core file path allows all setuid programs on a system to produce core files. If the per-process setuid option is enable, a per-process core file path allows specific setuid processes to produce core files.
By default, both flags are disabled. For security reasons, the global core file path must be a full pathname, starting with a leading /. If superuser disables per-process core files, individual users cannot obtain core files. The setuid core files are owned by superuser with read/write permissions for superuser only. Regular users cannot access them even if the process that produced the setuid core file was owned by an ordinary user. For more information, see the coreadm(1M) man page.
226
b. Become superuser or assume an equivalent role. Roles contain authorizations and privileged commands. For more information about roles, see Configuring RBAC (Task Map) in System Administration Guide: Security Services. c. Set a global file name pattern.
# coreadm -g /var/corefiles/%f.%p
Display the current process core file path to verify the configuration.
$ coreadm $$ 1180: /home/kryten/corefiles/%f.%p
Display the current process core file path to verify the configuration.
# coreadm global core file pattern: /var/core/core.%f.%p global core file content: default init core file pattern: core init core file content: default global core dumps: enabled per-process core dumps: enabled global setid core dumps: disabled per-process setid core dumps: disabled global core dump logging: disabled
227
Cause You have an obsolete parameter that allows setuid core files in your /etc/system file. Solution Remove allow_setid_core=1 from the /etc/system file. Then use the coreadm command to enable global setuid core file paths.
$ ./a.out Segmentation Fault(coredump) $ /usr/proc/bin/pstack ./core core ./core of 19305: ./a.out 000108c4 main (1, ffbef5cc, ffbef5d4, 20800, 0, 0) + 1c 00010880 _start (0, 0, 0, 0, 0, 0) + b8
228
17
C H A P T E R
1 7
This chapter describes how to manage system crash information in the Oracle Solaris OS. For information on the procedures associated with managing system crash information, see Managing System Crash Information (Task Map) on page 230.
1. Display the current crash dump configuration. 2. Modify the crash dump configuration.
Display the current crash dump configuration by using the dumpadm command.
Use the dumpadm command to specify the How to Modify a Crash Dump type of data to dump, whether or not the Configuration on page 234 system will use a dedicated dump device, the directory for saving crash dump files, and the amount of space that must remain available after crash dump files are written. Use the mdb command to view crash dump files. How to Examine a Crash Dump on page 236 How to Recover From a Full Crash Dump Directory (Optional) on page 237
4. (Optional) Recover from a The system crashes, but no room is available full crash dump directory. in the savecore directory, and you want to save some critical system crash dump information. 5. (Optional) Disable or enable the saving of crash dump files.
Use the dumpadm command to disable or How to Disable or Enable enable the saving the crash dump files. Saving Crash Dumps on Saving crash dump files is enabled by default. page 238
resides in the swap are that is to be overwritten by the crash dump. For systems that have an Oracle Solaris ZFS root file system, dedicated ZFS volumes are used for swap and dump areas. See Oracle Solaris ZFS Support for Swap Area and Dump Devices on page 231 for more information.
Oracle Solaris ZFS Support for Swap Area and Dump Devices
If you select an Oracle Solaris ZFS root file system during an initial software installation, or if you use the Oracle Solaris Live Upgrade to migrate from a UFS root file system to a ZFS root file system, a swap area is created on a ZFS volume in the ZFS root pool. Swap volume size is calculated as half the size of physical memory, but no more than 2 Gbytes and no less than 512 Mbytes. Dump volume size is calculated by the kernel based on dumpadm information and the size of physical memory. You can adjust the sizes of your swap and dump volumes in a JumpStart profile or during an initial installation to sizes of your choosing as long as the new sizes support system operation. For more information, see ZFS Support for Swap and Dump Devices in Oracle Solaris ZFS Administration Guide. If you need to modify your ZFS swap area or dump area after installation, use the swap or dumpadm commands, as in previous releases. For information about managing dump devices in this document, see Managing System Crash Dump Information on page 234.
Crash dump files are saved in a predetermined directory, which by default, is /var/crash/hostname. In previous releases, crash dump files were overwritten when a system rebooted, unless you manually enabled the system to save the images of physical memory in a crash dump file. Now, the saving of crash dump files is enabled by default. System crash information is managed with the dumpadm command. For more information, see The dumpadm Command on page 232.
The dumpadm command enables you to configure crash dumps of the operating system. The dumpadm configuration parameters include the dump content, dump device, and the directory in which crash dump files are saved. Dump data is stored in compressed format on the dump device. Kernel crash dump images can be as big as 4 Gbytes or more. Compressing the data means faster dumping and less disk space needed for the dump device. Saving crash dump files is run in the background when a dedicated dump device, not the swap area, is part of the dump configuration. This means a booting system does not wait for the savecore command to complete before going to the next step. On large memory systems, the system can be available before savecore completes. System crash dump files, generated by the savecore command, are saved by default. The savecore -L command is a new feature which enables you to get a crash dump of the live running the Oracle Solaris OS. This command is intended for troubleshooting a running system by taking a snapshot of memory during some bad state, such as a transient performance problem or service outage. If the system is up and you can still run some commands, you can execute the savecore -L command to save a snapshot of the system to the dump device, and then immediately write out the crash dump files to your savecore directory. Because the system is still running, you can only use the savecore -L command if you have configured a dedicated dump device.
Dump Parameter
Description
dump device
The device that stores dump data temporarily as the system crashes. When the dump device is not the swap area, savecore runs in the background, which speeds up the boot process. The directory that stores system crash dump files. Type of memory data to dump. Minimum amount of free space required in the savecore directory after saving crash dump files. If no minimum free space has been configured, the default is one Mbyte.
For more information, see dumpadm(1M). Dump configuration parameters are managed by the dumpadm command.
233
You must be superuser or assume an equivalent role to access and manage system crash information. Do not disable the option of saving system crash dumps. System crash dump files provide an invaluable way to determine what is causing the system to crash. Do not remove important system crash information until it has been sent to your customer service representative.
The dump content is kernel memory pages. Kernel memory will be dumped on a swap device, /dev/dsk/c0t3d0s1. You can identify all your swap areas with the swap -l command. System crash dump files will be written in the /var/crash/venus directory. Saving crash dump files is enabled. Save crash dumps in compressed format.
234
This output identifies the default dump configuration for a system running the Oracle Solaris 10 release.
3
-c content
Specifies the type of data to dump. Use kernel to dump of all kernel memory, all to dump all of memory, or curproc, to dump kernel memory and the memory pages of the process whose thread was executing when the crash occurred. The default dump content is kernel memory. Specifies the device that stores dump data temporarily as the system crashes. The primary swap device is the default dump device. Specifies the minimum free disk space for saving crash dump files by creating a minfree file in the current savecore directory. This parameter can be specified in Kbytes (nnnk), Mbytes (nnnm) or file system size percentage (nnn%). The savecore command consults this file prior to writing the crash dump files. If writing the crash dump files, based on their size, would decrease the amount of free space below the minfree threshold, the dump files are not written and an error message is logged. For information on recovering from this scenario, see How to Recover From a Full Crash Dump Directory (Optional) on page 237. Specifies that savecore should not be run when the system reboots. This dump configuration is not recommended. If system crash information is written to the swap device, and savecore is not enabled, the crash dump information is overwritten when the system begins to swap. Specifies an alternate directory for storing crash dump files. The default directory is /var/crash/hostname where hostname is the output of the uname -n command. Forcibly updates the kernel dump configuration based on the contents of the /etc/dumpadm.conf file.
-n
-s
-u
235
-y
Modifies the dump configuration to automatically execute the savecore command upon reboot, which is the default for this dump setting. Modifies the dump configuration to control the operation of the savecore command upon reboot. The on setting enables the saving of core file in a compressed format. The off setting automatically uncompresses the crash dump file. Because crash dump files can be extremely large and therefore require less file system space if they are saved in a compressed forma, the default is on.
-z on | off
Example 171
-k crashdump-file
Specifies kernel debugging mode by assuming the file is an operating system crash dump file. Specifies the operating system crash dump file.
236
Example 172
1 2
After the system reboots, log in as superuser or assume an equivalent role. Clear out the savecore directory, usually /var/crash/hostname, by removing existing crash dump files that have already been sent to your service provider.
Alternatively, you can manually run the savecore command to specify an alternate directory that has sufficient disk space.
# savecore [ directory ]
237
Example 173
Example 174
238
18
C H A P T E R
1 8
This chapter describes miscellaneous software problems that might occur occasionally and are relatively easy to fix. Troubleshooting miscellaneous software problems includes solving problems that aren't related to a specific software application or topic, such as unsuccessful reboots and full file systems. Resolving these problems are described in the following sections. This is a list of the information in this chapter.
What to Do If Rebooting Fails on page 239 x86: What to Do If the SMF Boot Archive Service Fails During a System Reboot on page 243 What to Do If a System Hangs on page 244 What to Do If a File System Fills Up on page 245 What to Do If File ACLs Are Lost After Copy or Restore on page 246 Troubleshooting Backup Problems on page 246 Troubleshooting Common Agent Container Problems in the Oracle Solaris OS on page 247
If the system does not reboot completely, or if it reboots and then crashes again, there might be a software or hardware problem that is preventing the system from booting successfully.
239
You may need to change the boot-device setting in the PROM on a SPARC based system. For information on changing the default boot device, see How to Change the Default Boot Device by Using the Boot PROM in System Administration Guide: Basic Administration. Oracle Solaris 10: Boot the system by using the Configuration Assistant/boot diskette and select the disk from which to boot. Solaris 10 1/06: Boot the failsafe archive.
Oracle Solaris 10: There is no default boot device on an x86 based system. The message displayed is: Not a UFS filesystem. Solaris 10 1/06: The GRUB boot archive has become corrupted. Or, the SMF boot archive service has failed. An error message is displayed if you run the svcs -x command. There's an invalid entry in the /etc/passwd file.
For information on recovering from an invalid passwd file, see Chapter 12, Booting an Oracle Solaris System (Tasks), in System Administration Guide: Basic Administration.
Check the hardware connections: Make sure the equipment is plugged in. Make sure all the switches are set properly. Look at all the connectors and cables, including the Ethernet cables. If all this fails, turn off the power to the system, wait 10 to 20 seconds, and then turn on the power again.
If none of the above suggestions solve the problem, contact your local service provider.
Stop the system by using the keyboard stop sequence. Oracle Solaris 10: Boot the system from a boot server or an install server, or from a local CD-ROM. Mount the root (/) file system. Remove the root password from the /etc/shadow file.
240
If you forget the root password and you cannot log into the system, you will have to do the following:
Stop the system by using the keyboard stop sequence. Starting with Solaris 10 1/06 release: On x86 based systems, boot the system in the Solaris failsafe archive. Oracle Solaris 10: Boot the system from a boot server or an install server, or from a local CD-ROM. Mount the root (/) file system. Remove the root password from the /etc/shadow file. Reboot the system. Log in and set root's password.
These procedures are fully described in Chapter 12, Booting an Oracle Solaris System (Tasks), in System Administration Guide: Basic Administration.
Note GRUB based booting is not available on SPARC based systems in this release.
The following examples describe how to recover from a forgotten root password on both SPARC and x86 based systems.
EXAMPLE 181
The following example shows how to recover when you forget the root password by booting from the network. This example assumes that the boot server is already available. Be sure to apply a new root password after the system has rebooted.
(Use keyboard abort sequence--Press Stop A keys to stop the system) ok boot net -s # mount /dev/dsk/c0t3d0s0 /a # cd /a/etc # TERM=vt100 # export TERM # vi shadow (Remove roots encrypted password string) # cd / # umount /a # init 6
EXAMPLE 182
x86: Performing a GRUB Based Boot When You Have Forgotten the Root Password
This example assumes that the boot server is already available. Be sure to apply a new root password after the system has rebooted.
Chapter 18 Troubleshooting Miscellaneous Software Problems (Tasks) 241
EXAMPLE 182
x86: Performing a GRUB Based Boot When You Have Forgotten the Root Password
(Continued) GNU GRUB version 0.95 (637K lower / 3144640K upper memory) +-------------------------------------------------------------------+ | be1 | be1 failsafe | be3 | be3 failsafe | be2 | be2 failfafe +------------------------------------------------------------------+ Use the ^ and v keys to select which entry is highlighted. Press enter to boot the selected OS, e to edit the commands before booting, or c for a command-line. Searching for installed OS instances... An out of sync boot archive was detected on /dev/dsk/c0t0d0s0. The boot archive is a cache of files used during boot and should be kept in sync to ensure proper system operation. Do you wish to automatically update this boot archive? [y,n,?] n Searching for installed OS instances... Multiple OS instances were found. To check and mount one of them read-write under /a, select it from the following list. To not mount any, select q. 1 pool10:13292304648356142148 2 rpool:14465159259155950256 ROOT/be10 ROOT/be01
Please select a device to be mounted (q for none) [?,??,q]: 1 mounting /dev/dsk/c0t0d0s0 on /a starting shell. . . . # cd /a/etc # vi shadow (Remove roots encrypted password string) # cd / # umount /a # reboot
EXAMPLE 183
x86: Booting a System When You Have Forgotten the Root Password
Oracle Solaris 10: The following example shows how to recover when you forget root's password by booting from the network. This example assumes that the boot server is already available. Be sure to apply a new root password after the system has rebooted.
Press any key to reboot. Resetting... . . .
242 System Administration Guide: Advanced Administration September 2010
x86: What to Do If the SMF Boot Archive Service Fails During a System Reboot
EXAMPLE 183
x86: Booting a System When You Have Forgotten the Root Password
(Continued)
Initializing system Please wait... <<< Current Boot Parameters >>> Boot path: /pci@0,0/pci-ide@7,1/ide@0/cmdk@0,0:a Boot args: Type or or b [file-name] [boot-flags] <ENTER> i <ENTER> <ENTER> <<< timeout in 5 seconds >>> Select (b)oot or (i)nterpreter: b -s SunOS Release 5.10 Version amd64-gate-2004-09-30 32-bit Copyright 1983-2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. DEBUG enabled Booting to milestone "milestone/single-user:default". Hostname: venus NIS domain name is example.com Requesting System Maintenance Mode SINGLE USER MODE Root password for system maintenance (control-d to bypass): xxxxxx Entering System Maintenance Mode . . . # mount /dev/dsk/c0t0d0s0 /a . . . # cd /a/etc # vi shadow (Remove roots encrypted password string) # cd / # umount /a # init 6 to boot with options to enter boot interpreter to boot with defaults
x86: What to Do If the SMF Boot Archive Service Fails During a System Reboot
Note This procedure applies to systems that are running the Oracle Solaris 10 release only.
Solaris 10 1/06: If the system crashes, the boot archive SMF service, svc:/system/boot-archive:default, might fail when the system is rebooted. If the boot archive service has failed, a message similar to the following is displayed when you run the svcs -x command:
Chapter 18 Troubleshooting Miscellaneous Software Problems (Tasks) 243
svc:/system/boot-archive:default (check boot archive content) State: maintenance since Fri Jun 03 10:24:52 2005 Reason: Start method exited with $SMF_EXIT_ERR_FATAL. See: http://sun.com/msg/SMF-8000-KS See: /etc/svc/volatile/system-boot-archive:default.log Impact: 48 dependent services are not running. (Use -v for list.) svc:/network/rpc/gss:default (Generic Security Service) State: uninitialized since Fri Jun 03 10:24:51 2005 Reason: Restarter svc:/network/inetd:default is not running. See: http://sun.com/msg/SMF-8000-5H See: gssd(1M) Impact: 10 dependent services are not running. (Use -v for list.) svc:/application/print/server:default (LP print server) State: disabled since Fri Jun 03 10:24:51 2005 Reason: Disabled by an administrator. See: http://sun.com/msg/SMF-8000-05 See: lpsched(1M) Impact: 1 dependent service is not running. (Use -v for list.)
To correct the problem, take the following action: 1. Reboot the system and select the failsafe archive option from the GRUB boot menu. 2. Answer y when prompted by the system to rebuild the boot archive. After the boot archive is rebuilt, the system is ready to boot. 3. To continue booting, clear the SMF boot archive service by using the following command.
# svcadm clear boot-archive
Note that you must become superuser or the equivalent to run this command. For more information on rebuilding the GRUB boot archive, see How to Boot an x86 Based System in Failsafe Mode in System Administration Guide: Basic Administration and the bootadm(1M) man page.
Make sure the pointer is in the window where you are typing the commands. Press Control-q in case the user accidentally pressed Control-s, which freezes the screen. Control-s freezes only the window, not the entire screen. If a window is frozen, try using another window.
244
If possible, log in remotely from another system on the network. Use the pgrep command to look for the hung process. If it looks like the window system is hung, identify the process and kill it.
2. Press Control-\ to force a quit in the running program and (probably) write out a core file. 3. Press Control-c to interrupt the program that might be running. 4. Log in remotely and attempt to identify and kill the process that is hanging the system. 5. Log in remotely, become superuser or assume an equivalent role and reboot the system. 6. If the system still does not respond, force a crash dump and reboot. For information on forcing a crash dump and booting, see Forcing a Crash Dump and Reboot of the System in System Administration Guide: Basic Administration. 7. If the system still does not respond, turn the power off, wait a minute or so, then turn the power back on. 8. If you cannot get the system to respond at all, contact your local service provider for help.
There are several reasons why a file system fills up. The following sections describe several scenarios for recovering from a full file system. For information on routinely cleaning out old and unused files to prevent full file systems, see Chapter 6, Managing Disk Use (Tasks).
Someone accidentally copied a file or directory to the Log in as superuser or assume an equivalent role and wrong location. This also happens when an application use the ls -tl command in the specific file system to crashes and writes a large core file into the file system. identify which large file is newly created and remove it. For information on removing core files, see How to Find and Delete core Files on page 87.
245
A TMPFS File System is Full Because the System Ran Out of Memory
Reason Error Occurred How to Fix the Problem
This can occur if TMPFS is trying to write more than it is For information on recovering from tmpfs-related allowed or some current processes are using a lot of error messages, see the tmpfs(7FS) man page. memory.
If files or directories with ACLs are copied or restored into the /tmp directory, the ACL attributes are lost. The /tmp directory is usually mounted as a temporary file system, which doesn't support UFS file system attributes such as ACLs.
The root (/) File System Fills Up After You Back Up a File System
You back up a file system, and the root (/) file system fills up. Nothing is written to the media, and the ufsdump command prompts you to insert the second volume of media.
Reason Error Occurred How to Fix the Problem
If you used an invalid destination device name with Use the ls -tl command in the /dev directory to the -f option, the ufsdump command wrote to a file in identify which file is newly created and abnormally the /dev directory of the root (/) file system, filling it large, and remove it. up. For example, if you typed /dev/rmt/st0 instead of /dev/rmt/0, the backup file /dev/rmt/st0 was created on the disk rather than being sent to the tape drive.
246
Interactive Commands
When you use the interactive command, a ufsrestore> prompt is displayed, as shown in this example:
# ufsrestore ivf /dev/rmt/0 Verify volume and initialize maps Media block size is 126 Dump date: Fri Jan 30 10:13:46 2004 Dumped from: the epoch Level 0 dump of /export/home on starbug:/dev/dsk/c0t0d0s7 Label: none Extract directories from tape Initialize symbol table. ufsrestore >
JMX port (TCP) = 11162 SNMPAdaptor port (UDP) = 11161 SNMPAdaptor port for traps (UDP) = 11162 Commandstream Adaptor port (TCP) = 11163 RMI connector port (TCP) = 11164
Note If you are troubleshooting an installation of Oracle Solaris Cluster, the port assignments are different.
If your installation already reserves any of these port numbers, change the port numbers that are occupied by the common agent container, as described in the following procedure.
For example, to change the port occupied by the SNMPAdaptor from the default of 11161 to 11165, type:
# /usr/sbin/cacaoadm set-param snmp-adaptor-port=11165 4
248
249
250
19
C H A P T E R
1 9
This chapter provides information on resolving file access problems such as those related to incorrect permissions and search paths. This is a list of troubleshooting topics in this chapter. Solving Problems With Search Paths (Command not found) on page 251 Solving File Access Problems on page 253 Recognizing Problems With Network Access on page 254
Users frequently experience problems, and call on a system administrator for help, because they cannot access a program, a file, or a directory that they could previously use. Whenever you encounter such a problem, investigate one of three areas:
The user's search path may have been changed, or the directories in the search path may not be in the proper order. The file or directory may not have the proper permissions or ownership. The configuration of a system accessed over the network may have changed.
This chapter briefly describes how to recognize problems in each of these three areas and suggests possible solutions.
The command is not available on the system. The command directory is not in the search path.
To fix a search path problem, you need to know the pathname of the directory where the command is stored.
251
If the wrong version of the command is found, a directory that has a command of the same name is in the search path. In this case, the proper directory may be later in the search path or may not be present at all. You can display your current search path by using the echo $PATH command. For example:
$ echo $PATH /home/kryten/bin:/sbin:/usr/sbin:/usr/bin:/usr/dt:/usr/dist/exe
Use the which command to determine whether you are running the wrong version of the command. For example:
$ which acroread /usr/doctools/bin/acroread Note The which command looks in the .cshrc file for path information. The which command
might give misleading results if you execute it from the Bourne or Korn shell and you have a .cshrc file than contains aliases for the which command. To ensure accurate results, use the which command in a C shell, or, in the Korn shell, use the whence command.
Is the search path correct? Is the search path listed before other search paths where another version of the command is found? Is the command in one of the search paths?
$HOME/.profile
252
Shell
File
Syntax
Notes
$HOME/.cshrc or $HOME/.login
hostname% set path=(~bin /sbin /usr/local/bin ...) A blank space separates path names.
Example 191
If you cannot find a command, look at the man page for its directory path. For example, if you cannot find the lpsched command (the lp printer daemon), the lpsched(1M) man page tells you the path is /usr/lib/lp/lpsched.
253
254
C H A P T E R
20
2 0
This chapter describes the fsck error messages and the possible responses you can make to resolve the error messages. This is a list of the information in this chapter:
General fsck Error Messages on page 257 Initialization Phase fsck Messages on page 259 Phase 1: Check Blocks and Sizes Messages on page 262 Phase 1B: Rescan for More DUPS Messages on page 266 Oracle Solaris 10: Oracle Solaris 10: Phase 1B: Rescan for More DUPS Messages on page 266 Phase 2: Check Path Names Messages on page 267 Phase 3: Check Connectivity Messages on page 274 Phase 4: Check Reference Counts Messages on page 276 Phase 5: Check Cylinder Groups Messages on page 279 Oracle Solaris 10: Phase 5: Check Cylinder Groups Messages on page 280 fsck Summary Messages on page 281 Oracle Solaris 10: Cleanup Phase Messages on page 281
For information about the fsck command and how to use it to check file system integrity, see Chapter 21, Checking UFS File System Consistency (Tasks), in System Administration Guide: Devices and File Systems.
Initialization Phase 1 Check Blocks and Sizes Phase 2a Check Duplicated Names Phase 2b Check Pathnames Phase 3 Check Connectivity Phase 3b Verify Shadows/ACLs Phase 4 Check Reference Counts Phase 5 Check Cylinder Groups
The next sections describe the error conditions that might be detected in each phase, the messages and prompts that result, and possible responses you can make. Messages that might appear in more than one phase are described in General fsck Error Messages on page 257. Otherwise, messages are organized alphabetically by the phases in which they occur. The following table lists many of the abbreviations included in the fsck error messages.
256
Block number Duplicate block number Directory name Cylinder group Time file was last modified Unreferenced
Many of the messages also include variable fields, such as inode numbers, which are represented in this book by an italicized term, such as inode-number. For example, this screen message:
INCORRECT BLOCK COUNT I=2529
is shown as follows:
INCORRECT BLOCK COUNT I=inode-number
Cause A request to move to the specified block number, disk-block-number, in the file system failed. This message indicates a serious problem, probably a hardware failure. Oracle Solaris 10: A request to move to the specified block number, block-number, in the file system failed. This message indicates a serious problem, probably a hardware failure. If you want to continue the file system check, fsck will retry the move and display a list of sector numbers that could not be moved. If the block was part of the virtual memory buffer cache, fsck will terminate with a fatal I/O error message.
Chapter 20 Resolving UFS File System Inconsistencies (Tasks) 257
Action If the disk is experiencing hardware problems, the problem will persist. Run fsck again to recheck the file system. If the recheck fails, contact your local service provider or another qualified person.
CANNOT READ: DISK BLOCK disk-block-number: I/O ERROR CONTINUE?
Cause A request to read the specified block number, disk-block-number, in the file system failed. The message indicates a serious problem, probably a hardware failure. Oracle Solaris 10: A request to read a specified block number, block-number, in the file system failed. The message indicates a serious problem, probably a hardware failure. If you want to continue the file system check, fsck will retry the read and display a list of sector numbers that could not be read. If the block was part of the virtual memory buffer cache, fsck will terminate with a fatal I/O error message. If fsck tries to write back one of the blocks on which the read failed, it will display the following message: WRITING ZEROED BLOCK sector-numbers TO DISK Action If the disk is experiencing hardware problems, the problem will persist. Run fsck again to recheck the file system. If the recheck fails, contact your local service provider or another qualified person.
CANNOT WRITE: BLK disk-block-number (CONTINUE)
Cause A request to write the specified block number, disk-block-number, in the file system failed. If you continue the file system check, fsck will retry the write and display a list of sector numbers that could not be written. If the block was part of the virtual memory buffer cache, fsck will terminate with a fatal I/O error message. Oracle Solaris 10: A request to write a specified block number, block-number, in the file system failed.
258 System Administration Guide: Advanced Administration September 2010
If you continue the file system check, fsck will retry the write and display a list of sector numbers that could not be written. If the block was part of the virtual memory buffer cache, fsck will terminate with a fatal I/O error message. Action The disk might be write-protected. Check the write-protect lock on the drive. If the disk has hardware problems, the problem will persist. Run fsck again to recheck the file system. If the write-protect is not the problem or the recheck fails, contact your local service provider or another qualified person.
Cause fsck was unable to flush the transaction log of a logging UFS file system prior to checking the file system for errors. Action Answering yes means the file system operations that were in the log, but had not been applied to the file system, are lost. In this case, fsck runs the same checks it always runs and asks the following question in phase 5:
FREE BLK COUNT(S) WRONG IN SUPERBLK (SALVAGE)
Answering yes at this point reclaims the blocks that were used for the log. The next time the file system is mounted with logging enabled, the log will be recreated. Answering no preserves the log and exits, but the file system isn't mountable.
bad inode number inode-number to ginode
Cause An internal error occurred because of a nonexistent inode inode-number. fsck exits. Action Contact your local service provider or another qualified person.
Chapter 20 Resolving UFS File System Inconsistencies (Tasks) 259
size-of-block map bytes for blockmap size-of-free map bytes for freemap size-of-state map bytes for statemap size-of-lncntp bytes for lncntp
Cause Request for memory for its internal tables failed. fsck terminates. This message indicates a serious system failure that should be handled immediately. This condition might occur if other processes are using a very large amount of system resources. Action Killing other processes might solve the problem. If not, contact your local service provider or another qualified person.
Cant open checklist file: filename
Cause The file system checklist file filename (usually /etc/vfstab) cannot be opened for reading. fsck terminates. Action Check if the file exists and if its access modes permit read access.
Cant open filename
Cause fsck cannot open file system filename. When running interactively, fsck ignores this file system and continues checking the next file system given. Action Check to see if read and write access to the raw device file for the file system is permitted.
Cant stat root
Cause fsck request for statistics about the root directory failed. fsck terminates. Action This message indicates a serious system failure. Contact your local service provider or another qualified person.
Cant stat filename Cant make sense out of name filename
Cause fsck request for statistics about the file system filename failed. When running interactively, fsck ignores this file system and continues checking the next file system given. Action Check if the file system exists and check its access modes.
filename: (NO WRITE)
260 System Administration Guide: Advanced Administration September 2010
Cause Either the -n option was specified or fsck could not open the file system filename for writing. When fsck is running in no-write mode, all diagnostic messages are displayed, but fsck does not attempt to fix anything. Action If -n was not specified, check the type of the file specified. It might be the name of a regular file.
IMPOSSIBLE MINFREE=percent IN SUPERBLOCK (SET TO DEFAULT)
Cause The superblock minimum space percentage is greater than 99 percent or less than 0 percent. Action To set the minfree parameter to the default 10 percent, type y at the default prompt. To ignore the error condition, type n at the default prompt.
filename: BAD SUPER BLOCK: message USE AN ALTERNATE SUPER-BLOCK TO SUPPLY NEEDED INFORMATION; e.g., fsck[-f ufs] -o b=# [special ...] where # is the alternate superblock. See fsck_ufs(1M)
Cause The superblock has been corrupted. Action One of the following messages might be displayed:
CPG OUT OF RANGE FRAGS PER BLOCK OR FRAGSIZE WRONG INODES PER GROUP OUT OF RANGE INOPB NONSENSICAL RELATIVE TO BSIZE MAGIC NUMBER WRONG NCG OUT OF RANGE NCYL IS INCONSISTENT WITH NCG*CPG NUMBER OF DATA BLOCKS OUT OF RANGE NUMBER OF DIRECTORIES OUT OF RANGE ROTATIONAL POSITION TABLE SIZE OUT OF RANGE SIZE OF CYLINDER GROUP SUMMARY AREA WRONG SIZE TOO LARGE BAD VALUES IN SUPERBLOCK
Try to rerun fsck with an alternative superblock. Specifying block 32 is a good first choice. You can locate an alternative copy of the superblock by running the newfs -N command on the slice. Be sure to specify the -N option; otherwise, newfs overwrites the existing file system.
UNDEFINED OPTIMIZATION IN SUPERBLOCK (SET TO DEFAULT)
Action To minimize the time to perform operations on the file system, type y at the SET TO DEFAULT prompt. To ignore this error condition, type n.
Checking inode types Setting up the zero-link-count table Examining inode block numbers for bad or duplicate blocks Checking inode size Checking inode format
All errors in this phase except INCORRECT BLOCK COUNT, PARTIALLY TRUNCATED INODE, PARTIALLY ALLOCATED INODE, and UNKNOWN FILE TYPE terminate fsck when it is preening a file system. These messages (in alphabetical order) might occur in phase 1:
block-number BAD I=inode-number
Cause Inode inode-number contains a block number block-number with a number lower than the number of the first data block in the file system or greater than the number of the last block in the file system. This error condition might generate the EXCESSIVE BAD BLKS error message in phase 1 if inode inode-number has too many block numbers outside the file system range. This error condition generates the BAD/DUP error message in phases 2 and 4. Action N/A
BAD MODE: MAKE IT A FILE?
Cause The status of a given inode is set to all 1s, indicating file system damage. This message does not indicate physical disk damage, unless it is displayed repeatedly after fsck -y has been run. Action Type y to reinitialize the inode to a reasonable value.
BAD STATE state-number TO BLKERR
Cause An internal error has scrambled the fsck state map so that it shows the impossible value state-number. fsck exits immediately.
262 System Administration Guide: Advanced Administration September 2010
Cause Inode inode-number contains a block number fragment-number, which is already claimed by the same or another inode. This error condition might generate the EXCESSIVE DUP BLKS error message in phase 1 if inode inode-number has too many block numbers claimed by the same or another inode. This error condition invokes phase 1B and generates the BAD/DUP error messages in phases 2 and 4. Oracle Solaris 10: Inode inode-number contains a block number block-number, which is already claimed by the same or another inode. This error condition might generate the EXCESSIVE DUP BLKS error message in phase 1 if inode inode-number has too many block numbers claimed by the same or another inode. This error condition invokes phase 1B and generates the BAD/DUP error messages in phases 2 and 4. Action N/A
DUP TABLE OVERFLOW (CONTINUE)
Cause fsck could not allocate memory to track duplicate fragments. If the -o p option is specified, the program terminates. Oracle Solaris 10: There is no more room in an internal table in fsck containing duplicate block numbers. If the -o p option is specified, the program terminates. Action To continue the program, type y at the CONTINUE prompt. When this error occurs, a complete check of the file system is not possible. If another duplicate fragment is found, this error condition repeats. Increase the amount of virtual memory available (by killing some processes, increasing swap space) and run fsck again to recheck the file system. To terminate the program, type n. Oracle Solaris 10: To continue the program, type y at the CONTINUE prompt. When this error occurs, a complete check of the file system is not possible. If another duplicate block is found, this error condition repeats. Increase the amount of virtual memory available (by killing some processes, increasing swap space) and run fsck again to recheck the file system. To terminate the program, type n.
EXCESSIVE BAD FRAGMENTS I=inode-number (CONTINUE)
Chapter 20 Resolving UFS File System Inconsistencies (Tasks) 263
Cause Too many (usually more than 10) fragments indicate an invalid disk address. If the -o p (preen) option is specified, the program terminates. Oracle Solaris 10: Too many (usually more than 10) blocks have a number lower than the number of the first data block in the file system or greater than the number of the last block in the file system associated with inode inode-number. If the -o p (preen) option is specified, the program terminates. Action To continue the program, type y at the CONTINUE prompt. When this error occurs, a complete check of the file system is not possible. You should run fsck again to recheck the file system. To terminate the program, type n.
EXCESSIVE DUP BLKSDUPLICATE FRAGMENTS I=inode-number (CONTINUE)
Cause Too many (usually more than 10) fragments are claimed by the same or another inode or by a free-list. If the -o p option is specified, the program terminates. Oracle Solaris 10: Too many (usually more than 10) blocks are claimed by the same or another inode or by a free-list. If the -o p option is specified, the program terminates. Action To continue the program, type y at the CONTINUE prompt. When this error occurs, a complete check of the file system is not possible. You should run fsck again to recheck the file system. To terminate the program, type n.
INCORRECT DISK BLOCK COUNT I=inode-number (number-of-BAD-DUP-or-missing-blocks should be number-of-blocks-in-filesystem) (CORRECT)
Cause The disk block count for inode inode-number is incorrect.. When preening, fsck corrects the count.
264
Oracle Solaris 10: The block count for inode inode-number is number-of-BAD-DUP-or-missing-blocks, but should be number-of-blocks-in-filesystem. When preening, fsck corrects the count. Action To correct the disk block count of inode inode-number by number-of-blocks-in-file, type y at the CORRECT prompt. . Oracle Solaris 10: To replace the block count of inode inode-number by number-of-blocks-in-filesystem, type y at the CORRECT prompt. To terminate the program, type n.
LINK COUNT TABLE OVERFLOW (CONTINUE)
Cause There is no more room in an internal table for fsck containing allocated inodes with a link count of zero. If the -o p (preen) option is specified, the program exits and fsck has to be completed manually. Action To continue the program, type y at the CONTINUE prompt. If another allocated inode with a zero-link count is found, this error condition repeats. When this error occurs, a complete check of the file system is not possible. You should run fsck again to recheck the file system. Increase the virtual memory available by killing some processes or increasing swap space, then run fsck again. To terminate the program, type n.
PARTIALLY ALLOCATED INODE I=inode-number (CLEAR)
Cause Inode inode-number is neither allocated nor unallocated. If the -o p (preen) option is specified, the inode is cleared. Action To deallocate the inode inode-number by zeroing out its contents, type y. This might generate the UNALLOCATED error condition in phase 2 for each directory entry pointing to this inode. To ignore the error condition, type n. A no response is appropriate only if you intend to take other measures to fix the problem.
PARTIALLY TRUNCATED INODE I=inode-number (SALVAGE)
Cause fsck has found inode inode-number whose size is shorter than the number of fragments allocated to it. This condition occurs only if the system crashes while truncating a file. When preening the file system, fsck completes the truncation to the specified size. Oracle Solaris 10: fsck has found inode inode-number whose size is shorter than the number of blocks allocated to it. This condition occurs only if the system crashes while truncating a file. When preening the file system, fsck completes the truncation to the specified size.
Chapter 20 Resolving UFS File System Inconsistencies (Tasks) 265
Action To complete the truncation to the size specified in the inode, type y at the SALVAGE prompt. To ignore this error condition, type n.
UNKNOWN FILE TYPE I=inode-number (CLEAR)
Cause The mode word of the inode inode-number shows that the inode is not a pipe, character device, block device, regular file, symbolic link, FIFO file, or directory inode. If the -o p option is specified, the inode is cleared. Oracle Solaris 10: The mode word of the inode inode-number shows that the inode is not a pipe, special character inode, special block inode, regular inode, symbolic link, FIFO file, or directory inode. If the -o p option is specified, the inode is cleared. Action To deallocate the inode inode-number by zeroing its contents, which results in the UNALLOCATED error condition in phase 2 for each directory entry pointing to this inode, type y at the CLEAR prompt. To ignore this error condition, type n.
Oracle Solaris 10: Phase 1B: Rescan for More DUPS Messages
This sections contains phase 1B fsck messages in the current release. When a duplicate fragment is found in the file system, this message is displayed:
fragment DUP I=inode-number
Cause Inode inode-number contains a fragment number fragment-number that is already claimed by the same or another inode. This error condition generates the BAD/DUP error message in phase 2. Inodes that have overlapping fragments might be determined by examining this error condition and the DUP error condition in phase 1. This is simplified by the duplicate fragment report produced at the fsck run. Action When a duplicate block is found, the file system is rescanned to find the inode that previously claimed that block.
Cause Inode inode-number contains a block number block-number that is already claimed by the same or another inode. This error condition generates the BAD/DUP error message in phase 2. Inodes that have overlapping blocks might be determined by examining this error condition and the DUP error condition in phase 1. Action When a duplicate block is found, the file system is rescanned to find the inode that previously claimed that block.
Incorrect root inode mode and status Directory inode pointers out of range Directory entries pointing to bad inodes Directory integrity checks
When the file system is being preened (-o -poption), all errors in this phase terminate fsck, except those related to directories not being a multiple of the block size, duplicate and bad blocks, inodes out of range, and extraneous hard links. These messages (in alphabetical order) might occur in phase 2:
BAD INODE state-number TO DESCEND
Cause An fsck internal error has passed an invalid state state-number to the routine that descends the file system directory structure. fsck exits. Action If this error message is displayed, contact your local service provider or another qualified person.
BAD INODE NUMBER FOR . I=inode-number OWNER=UID MODE=file-mode SIZE=file-size MTIME=modification-time DIR=filename (FIX)
Cause A directory inode-number has been found whose inode number for . does not equal inode-number. Action To change the inode number for . to be equal to inode-number, type y at the FIX prompt To leave the inode numbers for . unchanged, type n.
Chapter 20 Resolving UFS File System Inconsistencies (Tasks) 267
BAD INODE NUMBER FOR .. I=inode-number OWNER=UID MODE=file-mode SIZE=file-size MTIME=modification-time DIR=filename (FIX)
Cause A directory inode-number has been found whose inode number for .. does not equal the parent of inode-number. Action To change the inode number for .. to be equal to the parent of inode-number, type y at the FIX prompt. (Note that ..'' in the root inode points to itself.) To leave the inode number for .. unchanged, type n.
BAD RETURN STATE state-number FROM DESCEND
Cause An fsck internal error has returned an impossible state state-number from the routine that descends the file system directory structure. fsck exits. Action If this message is displayed, contact your local service provider or another qualified person.
BAD STATE state-number FOR ROOT INODE
Cause An internal error has assigned an impossible state state-number to the root inode. fsck exits. Action If this error message is displayed, contact your local service provider or another qualified person.
BAD STATE state-number FOR INODE=inode-number
Cause An internal error has assigned an impossible state state-number to inode inode-number. fsck exits. Action If this error message is displayed, contact your local service provider or another qualified person.
DIRECTORY TOO SHORT I=inode-number OWNER=UID MODE=file-mode SIZE=file-size MTIME=modification-time DIR=filename (FIX)
Cause A directory filename has been found whose size file-size is less than the minimum directory size. The owner UID, mode file-mode, size file-size, modify time modification-time, and directory name filename are displayed. Action To increase the size of the directory to the minimum directory size, type y at the FIX prompt. To ignore this directory, type n.
268 System Administration Guide: Advanced Administration September 2010
Cause A directory filename has been found with size file-size that is not a multiple of the directory block size disk-block-size. Oracle Solaris 10: A directory filename has been found with size file-size that is not a multiple of the directory block size block-number. Action To round up the length to the appropriate disk block size, type y. When preening the file system (-o p option), fsck only displays a warning and adjusts the directory. To ignore this condition, type n. Oracle Solaris 10: To round up the length to the appropriate block size, type y. When preening the file system (-o p option), fsck only displays a warning and adjusts the directory. To ignore this condition, type n.
DIRECTORY CORRUPTED I=inode-number OWNER=UID MODE=file-mode SIZE=file-size MTIME=modification-time DIR=filename (SALVAGE)
Cause A directory with an inconsistent internal state has been found. Action To throw away all entries up to the next directory boundary (usually a 512-byte boundary), type y at the SALVAGE prompt. This drastic action can throw away up to 42 entries. Take this action only after other recovery efforts have failed. To skip to the next directory boundary and resume reading, but not modify the directory, type n.
DUP/BAD I=inode-number OWNER=O MODE=M SIZE=file-size MTIME=modification-time TYPE=filename (REMOVE)
Cause Phase 1 or phase 1B found duplicate fragments or bad fragments associated with directory or file entry filename, inode inode-number. The owner UID, mode file-mode, size file-size, modification time modification-time, and directory or file name filename are displayed. If the -op (preen) option is specified, the duplicate/bad fragments are removed. Oracle Solaris 10:
Chapter 20 Resolving UFS File System Inconsistencies (Tasks) 269
Phase 1 or phase 1B found duplicate blocks or bad blocks associated with directory or file entry filename, inode inode-number. The owner UID, mode file-mode, size file-size, modification time modification-time, and directory or file name filename are displayed. If the -op (preen) option is specified, the duplicate/bad blocks are removed. Action To remove the directory or file entry filename, type y at the REMOVE prompt. To ignore this error condition, type n.
DUPS/BAD IN ROOT INODE (REALLOCATE)
Cause Phase 1 or phase 1B has found duplicate fragments or bad fragments in the root inode, ( inode number 20, of the file system. Oracle Solaris 10: Phase 1 or phase 1B has found duplicate blocks or bad blocks in the root inode (usually inode number 2 of the file system. Action To clear the existing contents of the root inode and reallocate it, type y at the REALLOCATE prompt. The files and directories usually found in the root inode will be recovered in phase 3 and put into the lost+found directory. If the attempt to allocate the root fails, fsck will exit with: CANNOT ALLOCATE ROOT INODE. Type n to get the CONTINUE prompt. Type: y to respond to the CONTINUE prompt, and ignore the DUPS/BAD error condition in the root inode and continue running the file system check. If the root inode is not correct, this might generate many other error messages. Type n to terminate the program.
EXTRA . ENTRY I=inode-number OWNER=UID MODE=file-mode SIZE=file-size MTIME=modification-time DIR=filename (FIX)
Cause A directory inode-number has been found that has more than one entry for .. Action To remove the extra entry for . type y at the FIX prompt. To leave the directory unchanged, type n.
EXTRA .. ENTRY I=inode-number OWNER=UID MODE=file-mode SIZE=file-size MTIME=modification-time DIR=filename (FIX)
Cause A directory inode-number has been found that has more than one entry for .. (the parent directory). Action To remove the extra entry for ..' (the parent directory), type y at the FIX prompt. To leave the directory unchanged, type n.
270 System Administration Guide: Advanced Administration September 2010
Cause fsck has found an extraneous hard link hard-link-number to a directory filename. When preening (-o p option), fsck ignores the extraneous hard links. Action To delete the extraneous entry hard-link-number type y at the REMOVE prompt. To ignore the error condition, type n.
inode-number OUT OF RANGE I=inode-number NAME=filename (REMOVE)
Cause A directory entry filename has an inode number inode-number that is greater than the end of the inode list. If the -p (preen) option is specified, the inode will be removed automatically. Action To delete the directory entry filename type y at the REMOVE prompt. To ignore the error condition, type n.
MISSING . I=inode-number OWNER=UID MODE=file-mode SIZE=file-size MTIME=modification-time DIR=filename (FIX)
Cause A directory inode-number has been found whose first entry (the entry for .) is unallocated. Action To build an entry for . with inode number equal to inode-number, type y at the FIX prompt. To leave the directory unchanged, type n.
MISSING . I=inode-number OWNER=UID MODE=file-mode SIZE=file-size MTIME=modification-time DIR=filename CANNOT FIX, FIRST ENTRY IN DIRECTORY CONTAINS filename
Cause A directory inode-number has been found whose first entry is filename. fsck cannot resolve this problem. Action If this error message is displayed, contact your local service provider or another qualified person.
MISSING . I=inode-number OWNER=UID MODE=file-mode SIZE=file-size MTIME=modification-time DIR=filename CANNOT FIX, INSUFFICIENT SPACE TO ADD .
Cause A directory inode-number has been found whose first entry is not .. fsck cannot resolve the problem.
271
Action If this error message is displayed, contact your local service provider or another qualified person.
MISSING .. I=inode-number OWNER=UID MODE=file-mode SIZE=file-size MTIME=modification-time DIR=filename (FIX)
Cause A directory inode-number has been found whose second entry is unallocated. Action To build an entry for .. with inode number equal to the parent of inode-number, type y at the FIX prompt. (Note that ..'' in the root inode points to itself.) To leave the directory unchanged, type n.
MISSING .. I=inode-number OWNER=UID MODE=file-mode SIZE=file-size MTIME=modification-time DIR=filename CANNOT FIX, SECOND ENTRY IN DIRECTORY CONTAINS filename
Cause A directory inode-number has been found whose second entry is filename. fsck cannot resolve this problem. Action If this error message is displayed, contact your local service provider or another qualified person.
MISSING .. I=inode-number OWNER=UID MODE=file-mode SIZE=file-size MTIME=modification-time DIR=filename CANNOT FIX, INSUFFICIENT SPACE TO ADD ..
Cause A directory inode-number has been found whose second entry is not .. (the parent directory). fsck cannot resolve this problem. Action If this error message is displayed, contact your local service provider or another qualified person.
NAME TOO LONG filename
Cause An excessively long path name has been found, which usually indicates loops in the file system name space. This error can occur if a privileged user has made circular links to directories. Action Remove the circular links.
ROOT INODE UNALLOCATED (ALLOCATE)
272 System Administration Guide: Advanced Administration September 2010
Cause The root inode (usually inode number 2) has no allocate-mode bits. Action To allocate inode 2 as the root inode, type y at the ALLOCATE prompt. The files and directories usually found in the root inode will be recovered in phase 3 and put into the lost+found directory. If the attempt to allocate the root inode fails, fsck displays this message and exits: CANNOT ALLOCATE ROOT INODE. To terminate the program, type n.
ROOT INODE NOT DIRECTORY (REALLOCATE)
Cause The root inode (usually inode number 2) of the file system is not a directory inode. Action To clear the existing contents of the root inode and reallocate it, type y at the REALLOCATE prompt. The files and directories usually found in the root inode will be recovered in phase 3 and put into the lost+found directory. If the attempt to allocate the root inode fails, fsck displays this message and exits: CANNOT ALLOCATE ROOT INODE. To have fsck prompt with FIX, type n.
UNALLOCATED I=inode-number OWNER=UID MODE=file-mode SIZE=file-size MTIME=modification-time type=filename(REMOVE)
Cause A directory or file entry filename points to an unallocated inode inode-number. The owner UID, mode file-mode, size file-size, modify time modification-time, and file name filename are displayed. Action To delete the directory entry filename, type y at the REMOVE prompt. To ignore the error condition, type n.
ZERO LENGTH DIRECTORY I=inode-number OWNER=UID MODE=file-mode SIZE=file-size MTIME=modification-time DIR=filename (REMOVE)
Cause A directory entry filename has a size file-size that is zero. The owner UID, mode file-mode, size file-size, modify time modification-time, and directory name filename are displayed. Action To remove the directory entry filename, type y at the REMOVE prompt. This results in the BAD/DUP error message in phase 4. To ignore the error condition, type n.
273
Cause An internal error has caused an impossible state state-number to be passed to the routine that descends the file system directory structure. fsck exits. Action If this occurs, contact your local service provider or another qualified person.
DIR I=inode-number1 CONNECTED. PARENT WAS I=inode-number2
Cause This is an advisory message indicating a directory inode inode-number1 was successfully connected to the lost+found directory. The parent inode inode-number2 of the directory inode inode-number1 is replaced by the inode number of the lost+found directory. Action N/A
DIRECTORY filename LENGTH file-size NOT MULTIPLE OF disk-block-size (ADJUST)
Cause A directory filename has been found with size file-size that is not a multiple of the directory block size B. (This condition can recur in phase 3 if it is not adjusted in phase 2.) Action To round up the length to the appropriate disk block size, type y at the ADJUST prompt. When preening, fsck displays a warning and adjusts the directory. To ignore this error condition, type n. Oracle Solaris 10: To round up the length to the appropriate block size, type y at the ADJUST prompt. When preening, fsck displays a warning and adjusts the directory. To ignore this error condition, type n.
274 System Administration Guide: Advanced Administration September 2010
Cause The entry for lost+found is not a directory. Action To allocate a directory inode and change the lost+found directory to reference it, type y at the REALLOCATE prompt. The previous inode reference by the lost+found directory is not cleared and it will either be reclaimed as an unreferenced inode or have its link count adjusted later in this phase. Inability to create a lost+found directory displays the message: SORRY. CANNOT CREATE lost+found DIRECTORY and aborts the attempt to link up the lost inode, which generates the UNREF error message in phase 4. To abort the attempt to link up the lost inode, which generates the UNREF error message in phase 4, type n.
NO lost+found DIRECTORY (CREATE)
Cause There is no lost+found directory in the root directory of the file system. When preening, fsck tries to create a lost+found directory. Action To create a lost+found directory in the root of the file system, type y at the CREATE prompt. This might lead to the message NO SPACE LEFT IN / (EXPAND). If the lost+found directory cannot be created, fsck displays the message: SORRY. CANNOT CREATE lost+found DIRECTORY and aborts the attempt to link up the lost inode. This in turn generates the UNREF error message later in phase 4. To abort the attempt to link up the lost inode, type n.
NO SPACE LEFT IN /lost+found (EXPAND)
Cause Another entry cannot be added to the lost+found directory in the root directory of the file system because no space is available. When preening, fsck expands the lost+found directory. Action To expand the lost+found directory to make room for the new entry, type y at the EXPAND prompt. If the attempted expansion fails, fsck displays: SORRY. NO SPACE IN lost+found DIRECTORY and aborts the request to link a file to the lost+found directory. This error generates the UNREF error message later in phase 4. Delete any unnecessary entries in the lost+found directory. This error terminates fsck when preening is in effect. To abort the attempt to link up the lost inode, type n.
UNREF DIR I=inode-number OWNER=UID MODE=file-mode SIZE=file-size MTIME=modification-time (RECONNECT)
Cause The directory inode inode-number was not connected to a directory entry when the file system was traversed. The owner UID, mode file-mode, size file-size, and modification time
Chapter 20 Resolving UFS File System Inconsistencies (Tasks) 275
modification-time of directory inode inode-number are displayed. When preening, fsck reconnects the non-empty directory inode if the directory size is non-zero. Otherwise, fsck clears the directory inode. Action To reconnect the directory inode inode-number into the lost+found directory, type y at the RECONNECT prompt. If the directory is successfully reconnected, a CONNECTED message is displayed. Otherwise, one of the lost+found error messages is displayed. To ignore this error condition, type n. This error causes the UNREF error condition in phase 4.
Unreferenced files A missing or full lost+found directory Incorrect link counts for files, directories, symbolic links, or special files Unreferenced files, symbolic links, and directories Bad or duplicate fragments in files and directories Oracle Solaris 10: Bad or duplicate blocks in files and directories
All errors in this phase (except running out of space in the lost+found directory) are correctable when the file system is being preened. These messages (in alphabetical order) might occur in phase 4:
BAD/DUP type I=inode-number OWNER=UID MODE=file-mode SIZE=file-size MTIME=modification-time (CLEAR)
Cause Phase 1 or phase 1B found duplicate fragments or bad fragments associated with file or directory inode inode-number. The owner UID, mode file-mode, size file-size, and modification time modification-time of inode inode-number are displayed. Oracle Solaris 10: Phase 1 or phase 1B found duplicate blocks or bad blocks associated with file or directory inode inode-number. The owner UID, mode file-mode, size file-size, and modification time modification-time of inode inode-number are displayed.
276 System Administration Guide: Advanced Administration September 2010
Action To deallocate inode inode-number by zeroing its contents, type y at the CLEAR prompt. To ignore this error condition, type n.
(CLEAR)
Cause The inode mentioned in the UNREF error message immediately preceding cannot be reconnected. This message does not display if the file system is being preened because lack of space to reconnect files terminates fsck. Action To deallocate the inode by zeroing out its contents, type y at the CLEAR prompt. To ignore the preceding error condition, type n.
LINK COUNT type I=inode-number OWNER=UID MODE=file-mode SIZE=file-size MTIME=modification-time COUNT link-count SHOULD BE corrected-link-count (ADJUST)
Cause The link count for directory or file inode inode-number is link-count but should be corrected-link-count. The owner UID, mode file-mode, size file-size, and modification time modification-time of inode inode-number are displayed. If the -o p option is specified, the link count is adjusted unless the number of references is increasing. This condition does not occur unless there is a hardware failure.When the number of references is increasing during preening, fsck displays the LINK COUNT INCREASING message and then exits. Action To replace the link count of directory or file inode inode-number with corrected-link-count, type y at the ADJUST prompt. To ignore this error condition, type n.
lost+found IS NOT A DIRECTORY (REALLOCATE)
Cause The entry for lost+found is not a directory. Action To allocate a directory inode and change the lost+found directory to reference it, type y at the REALLOCATE prompt. The previous inode reference by the lost+found directory is not cleared. It will either be reclaimed as an unreferenced inode or have its link count adjusted later in this phase. Inability to create a lost+found directory displays this message: SORRY. CANNOT CREATE lost+found DIRECTORY and aborts the attempt to link up the lost inode. This error generates the UNREF error message later in phase 4. To abort the attempt to link up the lost inode, type n.
NO lost+found DIRECTORY (CREATE)
Chapter 20 Resolving UFS File System Inconsistencies (Tasks) 277
Cause There is no lost+found directory in the root directory of the file system. When preening, fsck tries to create a lost+found directory. Action To create a lost+found directory in the root of the file system, type y at the CREATE prompt. If the lost+found directory cannot be created, fsck displays the message: SORRY. CANNOT CREATE lost+found DIRECTORY and aborts the attempt to link up the lost inode. This error in turn generates the UNREF error message later in phase 4. To abort the attempt to link up the lost inode, type n.
NO SPACE LEFT IN / lost+found (EXPAND)
Cause There is no space to add another entry to the lost+found directory in the root directory of the file system. When preening, fsck expands the lost+found directory. Action To expand the lost+found directory to make room for the new entry, type y at the EXPAND prompt. If the attempted expansion fails, fsck displays the message: SORRY. NO SPACE IN lost+found DIRECTORY and aborts the request to link a file to the lost+found directory. This error generates the UNREF error message later in phase 4. Delete any unnecessary entries in the lost+found directory. This error terminates fsck when preening (-o p option) is in effect. To abort the attempt to link up the lost inode, type n.
UNREF FILE I=inode-number OWNER=UID MODE=file-mode SIZE=file-size MTIME=modification-time (RECONNECT)
Cause File inode inode-number was not connected to a directory entry when the file system was traversed. The owner UID, mode file-mode, size file-size, and modification time modification-time of inode inode-number are displayed. When fsck is preening, the file is cleared if either its size or its link count is zero; otherwise, it is reconnected. Action To reconnect inode inode-number to the file system in the lost+found directory, type y. This error might generate the lost+found error message in phase 4 if there are problems connecting inode inode-number to the lost+found directory. To ignore this error condition, type n. This error always invokes the CLEAR error condition in phase 4.
UNREF type I=inode-number OWNER=UID MODE=file-mode SIZE=file-size MTIME=modification-time (CLEAR)
Cause Inode inode-number (whose type is directory or file) was not connected to a directory entry when the file system was traversed. The owner UID, mode file-mode, size file-size, and modification time modification-time of inode inode-number are displayed. When fsck is preening, the file is cleared if either its size or its link count is zero; otherwise, it is reconnected.
278 System Administration Guide: Advanced Administration September 2010
Action To deallocate inode inode-number by zeroing its contents, type y at the CLEAR prompt. To ignore this error condition, type n.
ZERO LENGTH DIRECTORY I=inode-number OWNER=UID MODE=file-mode SIZE=file-size MTIME=modification-time(CLEAR)
Cause A directory entry filename has a size file-size that is zero. The owner UID, mode file-mode, size file-size, modification time modification-time, and directory name filename are displayed. Action To deallocate the directory inode inode-number by zeroing out its contents, type y. To ignore the error condition, type n.
Allocated inodes missing from used-inode maps Free fragments missing from free-fragment maps Free inodes in the used-inode maps Incorrect total free-fragment count Incorrect total used inode count
Cause A cylinder group fragment map is missing some free fragments. During preening, fsck reconstructs the maps. Action To reconstruct the free-fragment map, type y at the SALVAGE prompt. To ignore this error condition, type n.
CG cg-number: BAD MAGIC NUMBER
Cause The magic number of cylinder group cg-number is wrong. This error usually indicates that the cylinder group maps have been destroyed. When running interactively, the cylinder group is marked as needing reconstruction. fsck terminates if the file system is being preened.
Chapter 20 Resolving UFS File System Inconsistencies (Tasks) 279
Action If this occurs, contact your local service provider or another qualified person.
CORRECT GLOBAL SUMMARY (SALVAGE)
Cause The summary information is incorrect. When preening, fsck recomputes the summary information. Action To reconstruct the summary information, type y at the SALVAGE prompt. To ignore this error condition, type n.
Allocated inodes missing from used-inode maps Free blocks missing from free-block maps Free inodes in the used-inode maps Incorrect total free-block count Incorrect total used inode count
Cause A cylinder group block map is missing some free blocks. During preening, fsck reconstructs the maps. Action To reconstruct the free-block map, type y at the SALVAGE prompt. To ignore this error condition, type n.
CG character-for-command-option: BAD MAGIC NUMBER
Cause The magic number of cylinder group character-for-command-option is wrong. This error usually indicates that the cylinder group maps have been destroyed. When running interactively, the cylinder group is marked as needing reconstruction. fsck terminates if the file system is being preened. Action If this occurs, contact your local service provider or another qualified person.
280 System Administration Guide: Advanced Administration September 2010
Cause The actual count of free blocks does not match the count of free blocks in the superblock of the file system. If the -o p option was specified, the free-block count in the superblock is fixed automatically. Action To reconstruct the superblock free-block information, type y at the SALVAGE prompt. To ignore this error condition, type n.
SUMMARY INFORMATION BAD (SALVAGE)
Cause The summary information is incorrect. When preening, fsck recomputes the summary information. Action To reconstruct the summary information, type y at the SALVAGE prompt. To ignore this error condition, type n.
This message indicates that the file system checked contains number-of files using number-of fragment-sized blocks, and that there are number-of fragment-sized blocks free in the file system. The numbers in parentheses break the free count down into number-of free fragments, number-of free full-sized blocks, and the percent fragmentation.
***** FILE SYSTEM WAS MODIFIED *****
This message indicates that the file system was modified by fsck. There is no need to rerun fsck if you see this message. This message is just informational about fsck's corrective actions.
Once a file system has been checked, a few cleanup functions are performed. The cleanup phase displays the following status messages.
number-of files, number-of-files used, number-of-files free (number-of frags, number-of blocks, percent fragmentation)
This message indicates that the file system checked contains number-of files using number-of fragment-sized blocks, and that there are number-of fragment-sized blocks free in the file system. The numbers in parentheses break the free count down into number-of free fragments, number-of free full-sized blocks, and the percent fragmentation.
***** FILE SYSTEM WAS MODIFIED *****
This message indicates that the file system was modified by fsck. If this file system is mounted or is the current root (/) file system, reboot. If the file system is mounted, you might need to unmount it and run fsck again; otherwise, the work done by fsck might be undone by the in-core copies of tables.
filename FILE SYSTEM STATE SET TO OKAY
This message indicates that file system filename was marked as stable. Use the fsck -m command to determine if the file system needs checking.
filename FILE SYSTEM STATE NOT SET TO OKAY
This message indicates that file system filename was not marked as stable. Use the fsck -m command to determine if the file system needs checking.
282
C H A P T E R
21
2 1
This chapter describes problems you might encounter when installing or removing software packages. The Specific Software Package Installation Errors section describes package installation and administration errors you might encounter. The General Software Package Installation Problems section describes behavioral problems that might not display an error message. This is a list of information in this chapter:
Specific Software Package Installation Errors on page 284 General Software Package Installation Problems on page 285
For information about managing software packages, see Chapter 20, Managing Software (Overview), in System Administration Guide: Basic Administration.
The PKG_NONABI_SYMLINKS environment variable might help you transition between the old and new pkgadd symbolic link behaviors. If this environment variable is set to true, pkgadd follows the source of the symbolic link. Setting this variable enables a non-conforming package to revert to the old behavior if set by the administrator before adding a package with the pkgadd command. The new pkgadd symbolic link behavior might cause an existing package to fail when added with the pkgadd command. You might see the following error message in this situation:
unable to create symbolic link to <path>
If a package doesn't install due to this problem, do the following: 1. If this is a Sun-supplied package, call the Resolution Center and report the non-conforming package name. 2. Set the PKG_NONABI_SYMLINKS environment variable and try adding the package with the pkgadd command again.
# PKG_NONABI_SYMLINKS=true # export PKG_NONABI_SYMLINKS # pkgadd pkg-name
This error message indicates that not all of a package's files could be installed. This usually occurs when you are using pkgadd to install a package on a client. In this case, pkgadd attempts to install a package on a file system that is mounted from a server, but pkgadd doesn't have permission to do so.
If you see this warning message during a package installation, you must also install the package on the server. See Chapter 20, Managing Software (Overview), in System Administration Guide: Basic Administration for details.
284
There is a known problem with adding or removing some packages developed prior to the Solaris 2.5 release and compatible versions. Sometimes, when adding or removing these packages, the installation fails during user interaction or you are prompted for user interaction and your responses are ignored.
Set the following environment variable and try to add the package again. NONABI_SCRIPTS=TRUE
285
286
Index
A
accounting, 134-135, 136, 150 See also billing users connect, 127 runacct states and, 140 /var/adm/acct/nite/directory and, 149 /var/adm/wtmpx, 143 daily, 128, 151 See also accounting, reports step-by-step summary of, 130 disabling, 137-138 disk, 128, 129 acctdusg program, 144 files for, 149, 150 fixing corrupted files tacct file, 135 wtmpx file, 134, 135, 140 maintaining, 136 overview, 126 process, 127, 129, 143, 144 raw data, 128 reports, 142 daily command summary, 144, 151 daily report (tty line utilization), 142, 143 daily usage report, 143, 144 last login report, 146 overview, 142 total command summary (monthly), 146, 150 set up to run automatically (how to), 132 starting, 132 stopping, 137 types of, 133
accounting (Continued) user fee calculation, 128 See also billing users acct.h format files, 146, 147 acctcms command, 140, 151 acctcom command, 146, 147 acctcon command, 134, 140, 149 acctdusg command, 128, 144, 149 acctprc command, 140 acctwtmp command, 127, 129, 142 active file, 139 active file, 136, 149 active.MMDD file, 136, 149 adapter board (serial port), 24 address space map, 163 alert message priority (for syslogd), 217 alphanumeric terminal, See terminals application threads, 155, 156 at command, 118, 119, 123 -l option (list), 121 -m option (mail), 119, 120 automatic scheduling of, 109 controlling access to, 119, 123 overview, 106 denying access, 122-123 error messages, 123 overview, 106, 107, 118 at.deny file, 119, 123 description, 106 at job files, 118, 122 creating, 119, 120 deleting, 122
287
Index
at job files (Continued) description, 107 displaying, 121 location of, 107 submitting, 119 atjobs directory, 109 description, 106 automatic system activity data collection, 203 automatic system activity reporting, 203, 204 automatic system task execution repetitive tasks, 115, 117 single tasks, 118, 119, 123 automatically turning on quotas, 90 automating system task execution, 106 auxiliary (remote) console, 218
B
baud rate how to set on ttymon terminal, 43-44 how to set with the eeprom command, 43 bidirectional modem service, 23, 40 billing users, 133 See also chargefee script boot archive, SMF service failure on reboot, 208 boot archive service failure x86 GRUB troubleshooting, 243-244 booting displaying messages generated during, 214 running sadc command when, 203
C
changing crontab files, 111 date, 71 message of the day, 72 priority, 173, 175 timesharing processes, 174, 175 scheduling classes, 173 soft limit time, 100 system's host name, 72-73
288
changing (Continued) UFS quotas for individual users, 101 chargefee script, 128, 129, 144 billing users, 133 ckpacct script, 129, 131, 132 closewtmp command, 140 cmsprev file, 150 Command not found error message, 251 commands, monitoring usage of, 149 Common Agent Container troubleshooting, 247-249 troubleshooting in Oracle Solaris OS, 207-208 Common Agent Container shared, shared component, 247-249 Common Agent Container shared component port numbering (how to check), 248 Common Agent container shared component types of problems port number conflicts, 247-249 Common Agent Container shared component types of problems security around superuser password, 247-249 connect accounting, See accounting, connect consadm command, 220-221 disabling an auxiliary console, 222 displaying list of auxiliary consoles (how to), 221 enabling an auxiliary console, 220-221 across system reboots, 221 console auxiliary enabling across system reboots, 221 console terminal, how to set the baud rate on, 43-44 console terminal baud rate, setting with eeprom command, 43 controlling access to at command, 106, 119, 123 access to crontab command, 115, 117 overview, 106 processes, 166 core dump configuration, displaying with coreadm, 226 core file name pattern, setting with coreadm, 225 core files automatically deleting, 119
Index
core files examining with proc tools, 228 finding and deleting, 88 core files managing with coreadm, 224 coreadm command, 224 displaying core dump configuration, 226 managing core files, 224 setting a core file name pattern, 226 CPU (central processing unit) displaying information on time usage, 144, 161, 176 high-usage processes, 176 crash dump directory, recovering from a full, 237 crashes, 216, 245 customer service and, 210, 232 displaying system information generated by, 213, 237 examining crash dumps, 236, 237 procedure following, 210, 245 rebooting fails after, 239-240 saving crash dump information, 232 saving other system information, 214 creating at jobs, 120 at jobs, 119 crontab files, 111, 112 cron.allow file, 115, 117 cron daemon, 108, 109 cron.deny file, 115, 116 defaults, 115 crontab command, 115 accounting scripts run by, 131, 132 controlling access to, 115, 117 denying access, 115, 116 limiting access to specific users, 115, 117 overview, 106, 115 cron daemon and, 109 -e option (edit), 111 -l option (list), 112, 113 -r option (remove), 114 /var/adm maintenance and, 214 daily tasks, 107 error messages, 117
crontab command (Continued) files used by, 109 overview, 106, 107 quitting without saving changes, 111 scheduling of, 109 crontab files creating, 111, 112 creating and editing, 105-106 defaults, 109 deleting, 114 denying access, 115-116 description, 109, 110 displaying, 112, 113 editing, 111, 112 location of, 109 removing, 114 syntax, 110 ctacct.MMDD file, 140, 149 ctmp file, 149 customer service, sending crash information, 210 customizing system message logging, 216 system message logging (how to), 217-218
D
daily accounting, See accounting, daily daily tasks (scheduling with crontab), 107 date command accounting data and, 127, 129 daytacct file Daily Usage Reports and, 144 runacct script and, 140, 151 /var/adm/acct/nite Directory, located in, 149 defaults for quotas, 99-100 message of the day, 72 nice number, 175 soft limit time, 100 deleting at jobs, 122 core files, 88 crontab files, 114 finding and deleting old/inactive files, 85
289
Index
deleting (Continued) log files, 112 old/inactive files, 107 temporary files, 87 df command, 183, 184 -h option, 77 -k option (kilobytes), 184 -t option (total blocks), 78 examples, 77, 184 overview, 76, 183 dial-in modem service, 23 dial-out modem service, 23 directories current working directory for processes, 163 displaying information about, 79, 80, 82, 84 size of, 82, 84 temporary, clearing out, 85, 87 disabling an auxiliary console with the consadm command, 222 quotas for individual users, 102 system accounting, 137-138 disk accounting, See accounting, disk disk block and file limits, difference between, 90 disk drives displaying information about free disk space, 183 finding and deleting old/inactive files, 112 disk space displaying information about df command, 183 directory sizes, 82, 84 disk space owned per user, 84 file sizes, 79, 80, 82 mount point, 184 finding and deleting old/inactive files, 85, 88 finding files exceeding a size limit, 82 finding large files, 80, 81 disktacct file, 129 disktacct file, 128, 140, 149 disktacct.MMDD file, 140 dispadmin command, overview, 171 display date and time, 67-68
290
display (Continued) host ID, 66-67 system's installed memory, 67 displaying acct.h format files, 146, 147 at jobs, 121 booting messages, 214 core dump configuration with coreadm, 226 crash information, 213, 237 crontab files, 112, 113 directory information, 79, 80, 82 file information file size, 79, 80 listing newest, 85 using the du command, 82 file system information, 84 linked libraries, 163 LWP information, 163 pacctn file, 146, 147 priority information, 161, 171 process information (how to), 164-165 quota information, 91, 97 quotas, 97-98 scheduling class information, 161, 171, 172 size of files, 79-80 system activity information, 186, 204 system information commands for, 62, 68 displaying a system's physical processor type, psrinfo -p, 68 displaying product name information, prtconf command, 67 dmesg command, 214 dodisk script, 128 caution, 128 crontab entry that runs, 132 files created by, 128, 129, 140, 149 overview, 128, 129 dtmp file, 149 DTrace facility, 208 du command, 82, 84 dump volume size, for systems with ZFS root file system, 231 dumpadm, managing system crash information, 232
Index
E
editing crontab files, 111, 112 edquota command disabling quotas for individual users, 102 -p option (prototype), 94 -t option (time limit), 100 overview, 91, 99 setting up user quotas, 94 eeprom command, using to set the baud rate on the ttymon terminal, 43 enabling an auxiliary console with consadm command, 220-221 auxiliary console across system reboots, 221 error messages at command, 123 crash messages, 214 crash related, 213 crontab command, 117 customizing logging of, 216 log file for, 210, 213 priorities for, 217 runacct script, 136 sources of, 216 specifying storage location for, 213, 216 /etc/acct/holidays file, 132, 133 /etc/cron.d/at.deny file, 119, 123 /etc/cron.d/cron.allow file, 115, 117 /etc/cron.d/cron.deny file, 115, 116 /etc/init.d/acct file, 132 /etc/syslog.conf file, 216 /etc/utmpx file, 39 /etc/vfstab file, 92 examining a core file, with proc tools, 228 executing routine tasks automatically (overview), 106
F
failed SMF boot archive service, troubleshooting GRUB based booting, 231 failed x86 based system reboot, SMF boot archive service, 208 fcntl information, 163, 165
fd2log file, 136, 139, 149 fee file, 129, 133, 140, 149 fees, user, 129, 133 fees (user), 144 file or group ownership, solving file access problems, 254 file systems disk space usage, 183 mount point, 184 restoring, 133, 144 files accounting, 149, 150 checking access operations, 186, 187 deleting See deleting displaying information about listing, 79, 80 size, 79, 80, 82, 84 displaying size of, 79-80 finding files exceeding a size limit, 82 fixing corrupted wtmpx file, 140 for setting search path, 252 fstat and fcntl information display, 163, 165 size of, 79, 80, 82, 84 usage monitoring, 128, 144 find command core files, 88 finding files exceeding a size limit, 82 old/inactive files, 85, 86 finding and deleting old/inactive files See deleting files exceeding a size limit, 82 large files, 80, 81 fiscrptn file, 150 fixing, 134-135 corrupted tacct file, 135 corrupted wtmpx file, 134, 135 forcing programs to quit, 245 forget root password SPARC, 241 x86, 241, 242 fsck command, 107
291
Index
L
large files, 81 last login report, 146 lastdate file, 140, 149 lastlogin command, 140 line discipline, 39 line usage connect accounting and, 127 daily report and, 142 /var/adm/acct/nite/lineuse file, 151 line usage monitoring, 143 lineuse file, See /var/adm/acct/nite/lineuse file listing files and directories, 79, 80, 85 processes, 163 processes being executed, 164 localeadm command, 58 lock file, 136, 140 lock1 file, 140 log file, 149 log files, deleting automatically, 112 log.MMDD file, 149 login monitoring last login, 140, 146, 151 number of logins, 144 time usage, 127, 129, 144 loginlog file, 140, 150, 151 ls command checking directory sizes, 79 -l option (size in bytes), 80 -s option (size in blocks), 80 -t option (newest files), 85 LWPs (lightweight processes) defined, 155 displaying information on, 163 processes and, 155, 156 structures for, 156
G
getty, 25 global core file path, setting with coreadm, 224 global priorities defined, 170 displaying, 171 GRUB based booting system crashes failed SMF boot archive service, 231 troubleshooting SMF boot archive service failure, 208
H
holidays file, 133 host name, changing, 72-73 hostid command, 62
I
initializing quotas, 95 initializing UFS quotas, 91 interrupting programs, 245 iostat command basic information display, 182 overview, 181
K
kernel thread scheduling and, 161 structures, 156, 161 killing processes, 163, 166 klwp structure, 156 kmdb utility, 241-242, 242-243 kthread structure, 156
M
managing serial ports with SAF, task map, 36 managing system crash information, with dumpadm, 232 managing system resources, road map, 57
292
Index
maximums finding files exceeding maximum size, 82 nice number, 175 mdb utility, 236, 237 memory command for displaying information on, 62 example of displaying information on, 67 process structures and, 156 shared process virtual memory, 156 virtual process, 156 message of the day (MOTD) facility, 72 messages file, 210, 216 messages.n file, 213 minimums, nice number, 175 modems, 31-32 bidirectional service, 23, 40 defined, 23 dial-in service, 23 dial-out service, 23 different ways to use, 23 overview of Serial Ports Tool, 28 Serial Ports Tool modem templates, 29 monacct script crontab entry that runs, 132 files used/produced by, 150, 151 monthly command summary and, 144, 146 runacct script and, 130, 139 scheduling running of, 131 monthly command summary, 146 monthly tasks (scheduling with crontab), 107 MOTD (message of the day) facility, 72 motd file, 72 motd file, 72
nice command, 174, 175, 176 nice number, 161, 175 nlsadmin command, 42
O
Oracle Solaris process accounting and statistics improvements, 125-126 owtmpx file, 150
P
pacctn file displaying, 146, 147 monitoring size of, 129, 139 overview, 129, 140, 149 panic messages, 213 password security conflicts, superuser, Common Agent Container, 247-249 per-process core file path, setting with coreadm, 224 perf file, 203 performance activities that are tracked, 157 automatic collection of activity data, 203 file access, 186, 187 manual collection of activity data, 186, 204 process management, 155, 163, 175 reports on, 186 system activity monitoring, 157, 186, 203 tools for monitoring, 157 pfiles command, 163, 165 pflags command, 163 pkill command, 163, 166 pldd command, 163 pmadm command adding a ttymon service with, 48 described, 38 disabling a ttymon service with, 51 enabling a ttymon service with, 51 listing a ttymon service with, 49 pmap command, 163 port, 32-33 defined, 23
293
N
networks, recognizing access problems, 254 new features CPU performance counters, 154 enhanced pfiles tool, 153 svcadm enable system/sar:default command, 203
Index
port (Continued) initialization process of, 39 states of (table), 55 port monitor definition, 24 states of (table), 54 ttymon and listen (defined), 24, 40-42 port number conflicts Common Agent container shared component troubleshooting, 247-249 port numbers (how to check) Common Agent Container shared component cacao, 248 power cycling, 245 power failure recoveries, 142 prdaily script files used by, 149, 150 line usage reporting and, 150 overview, 139 runacct script and, 139, 150, 151 printing, user fee calculation for, 133 priocntl command overview, 171 -c option (scheduling class designation), 173 -i option (ID type), 173 -l option (scheduling class display), 171 -m option (max/min priority), 173 -p option (priority designation), 173 -s option (priority upper limit/change priority), 173 priority (process) changing, 173, 175 timesharing processes, 173, 174, 175 designating, 172, 173 displaying information on, 161, 171 global defined, 170 displaying, 171 overview, 170, 175 scheduling classes and, 173 user-mode priority, 170 /proc directory, 162 proc structure, 156, 161 proc tools, examining a core file, 228
294
process accounting, 127, 129, 143, 144 reason records, 130 process file system (PROCFS), 162 processes accounting utilities for, 127, 129, 143, 144 address space map, 163 application threads and, 155, 156 controlling, 166 current working directory for, 163, 165 defined, 155 displaying information (how to), 164-165 displaying information on, 161 acctcom command, 146, 147 daily usage report, 143, 144 dead processes, 146 listing processes, 163 listing processes being executed, 164 LWPs, 163 priocntl command, 171 ps command, 161, 164, 171 displaying information with proc tool commands, 163 displaying information with proc tools, 162 fstat and fcntl information for open files, 163, 165 killing, 163, 166 libraries linked into, 163 nice number of, 161, 174, 175, 176 priority, 175 changing, 173, 175 changing timesharing process priority, 173, 174, 175 designating, 172, 173 displaying information on, 161, 171 global priorities, 170, 171 overview, 170, 175 scheduling classes and, 170, 173 user-mode priority, 170 proc tool commands, 162 restarting, 163 runaway, 176 scheduling classes, 170 changing, 173 changing priority of, 173, 175
Index
processes, scheduling classes (Continued) designating, 172 displaying information on, 161, 171, 172 priority levels and, 170, 173 signal actions, 163 stack trace, 163 stopping temporarily, 163 structures for, 156, 161 terminology, 155, 156 tool commands, 163 tracing flags, 163 trees, 163, 165 troubleshooting, 176 PROCFS (process file system), 162 product name for a system, displaying with prtconf command, 67 programs disk-dependency of, 187 forcing to quit running, 245 interrupting, 245 prtconf command, 62, 67 displaying a system's product name, 67 ps command, 161, 164 fields reported, 161 overview, 161 -c option (scheduling class), 161, 176 -ecl option (global priority), 171 -ef option (full information), 163, 164 psig command, 163 psrinfo command option to identify chip multithreading features, psrinfo -p, 58 pstack command, 163 ptacctn.MMDD file, 141 ptime command, 163 ptree command, 163, 165 pwait command, 163 pwdx command, 163, 165
quotas changing, 99 checking for exceeded, 97-98 checking for exceeded user quotas, 97 consistency checking, 95 displaying, 97-98 displaying information on, 97 initializing, 95 overview, 89 prototype for multiple users, 94 removing, 99 setting hard limits for, 90 setting soft limits for, 90 setting up, 90 turning on, 90 turning on, example of, 96 turning on and off, 91 user changing for individual users, 101 checking for exceeded, 97 setting up, 94 verifying, 91, 97, 100 quotas, UFS changing the soft limit default, 99-100 checking on file systems, 98-99 initializing, 91 using, 89-90 quotas file, 90, 92
R
real-time processes, changing class of, 173 reason records, process accounting, 130 rebooting and /var/adm/wtmpx file, 129 connect accounting and, 127 daily report and, 142 fails after crash, 239-240 rebooting an x86 based system, boot archive SMF service fails, 208 reboots file, 140, 149 recognizing network access problems, 254 recover root password SPARC, 241
295
Q
quitting, forcing programs to quit, 245 quot command, 84 quotacheck command, 91, 95 quotaon command, 91, 96
Index
recover root password (Continued) x86, 241, 242 recovering from a full crash dump directory, 237 remote printing, user fee calculation for, 133 removing, crontab files, 114 repetitive system tasks, 115 repquota command, 97, 98-99 requirements, UFS quotas, 91 restarting processes, 163 runacct script, 136, 140, 141 restore, using matching commands, 247 rm command, 86, 87 root crontab file, 128 root password, forget SPARC, 241 x86, 241, 242 GRUB based booting, 241-242 rprt.MMDD file, 129, 151 rpt.MMDD file, 140, 150 RS-232-C, See serial port runacct script, 134-135, 139 crontab entry that runs, 139 diagnostics file, 139 error messages, 136 error protection, 139, 140 failure of, 136 files used/produced by, 149, 151 fixing corrupted files, 134, 135, 140 last time executed, 149 monacct script and, 139 overview, 129 prdaily script and, 139, 150, 151 progress file, 139 restarting, 136, 140, 141 scheduling running of, 131 states of, 140 user fee calculation and, 133, 144 runaway processes, 176
S
sa1 command, 203 sa2 command, 203, 204
296
SAC, See Service Access Controller sacadm command, 46 adding a ttymon port monitor with, 44 described, 37 killing a ttymon port monitor with, 45 starting a ttymon port monitor with, 46 sadc command, 203, 204 sadd file, 204 SAF, See Service Access Facility sar command, 186, 204 description of all options, 205 options listed, 205 overview, 186, 204 -a option (file access), 186, 187 -A option (overall performance), 203, 205 -b option (buffers), 187 -c option (system calls), 189 -e option (ending time), 205 -f option (file to extract data from), 205 -i option (interval), 205 -m option (interprocess communication), 194 -p option (page-in/page faults), 195 -q option (queue), 196, 197 -r option (unused memory), 197 -s option (starting time), 205 -u option (CPU usage), 198 -v option (system tables), 199 -y option (terminal devices), 202 saving crash dump information, 232 scheduling See also crontab command, atcommand one-time system tasks, 107, 118 repetitive system tasks, 107, 108 scheduling classes, 170 changing, 173 changing priority of, 173, 175 designating, 172 displaying information on, 161, 171, 172 priority levels and, 170, 173 search path, files for setting, 252 security at command, 119 crontab command, 115
Index
security around superuser password Common Agent Container shared component troubleshooting, 247-249 serial port adapter board, 24 defined, 24 Service Access Controller, 38 Service Access Facility overview of, 25, 36 programs associated with (table), 37 services controlled by states of (table), 54 uses for, 25, 36 setting, a core file name pattern with coreadm, 226 setting terminals and modems, task map, 27-28 setting the baud rate on the ttymon console terminal, how to, 43-44 shared memory, process virtual memory, 156 shutacct script, 129, 130 shutdown command, 130 shutdowns monitoring, 129, 130, 142 size directory, 82, 84 file, 79, 80, 82, 84 soft limit time, changing, 99-100 software packages, troubleshooting installation of, 283 Spacctn.MMDD file, 140, 149 startup command, acct, 128 statefile file, 136, 140, 149 states, (runacct script), 140 stopping processes temporarily, 163 system accounting, 137 superuser (root) password, forget SPARC, 241 x86, 241, 242 svcadm enable system/sar:default command, 203 swap volume size, for systems with ZFS root file system, 231 sys crontab, 204 syslog.conf file, 216 syslogd daemon, 213 system accounting, task map, 130-131
system activities automatic collection of data on, 203 list of activities tracked, 157 manual collection of data on, 204 system crash information, managing with dumpadm, 232 system message logging (customizing), 216 system messages customizing logging (how to), 217-218 specifying storage location for, 213 system resources accounting overview, 126 monitoring, 119 accounting, 136 accounting system for, 150 automatic, 119 crashes, 216, 245 UFS quotas, 98-99 overview, 155 system tasks See also crontab command, at command scheduling one-time tasks, 107, 118 repetitive tasks, 107, 108 scheduling automatically, 106
T
tacct file, 135, 140, 150 tacct.MMDD file, 135, 140, 150 tacctn file, 150 tacctprev file, 150 technical support crash dump analysis, 232 sending crash information, 210 temporary directories, 85, 87 terminals, 30-31 alphanumeric, 23 defined, 23 distinctions between types of, 23 line usage connect accounting and, 127 daily report and, 142, 143
297
Index
terminals, line usage (Continued) /var/adm/acct/nite/lineuse file, 151 overview of Serial Ports Tool, 28 process controlling, 161 Serial Ports Tool item descriptions, 28 troubleshooting bad lines, 143 time CPU usage, 144, 161, 176 processes accumulating large amounts of CPU time, 176 timesharing processes changing scheduling parameters, 173 priority of changing, 173, 174, 175 overview, 170 range of, 170 /tmp/disktacct.MMDD file, 140 tmpwtmp file, 140, 149, 150 tools for displaying process information, 162 process, 163 system performance monitoring, 157 total command summary, 146, 150 tracing flags, 163 troubleshooting Common Agent Container, 207-208 Common Agent container shared component types of problems, 247-249 processes, 176 software package installation/removal, 283 tty lines, 143 troubleshooting failed SMF boot archive service x86 GRUB failsafe archive, 243-244 troubleshooting system crashes GRUB boot archive service fails on reboot, 231 troubleshooting tasks, where to find, 209 tty lines troubleshooting bad lines, 143 tty lines, usage monitoring, 142 tty lines usage monitoring, 127, 143, 150 ttyadm command, 41
298
ttymon port monitor, 46 (figure), 39 adding, 44 bidirectional modem service and, 40 killing, 45 starting, 46 ttymon service adding, 48 disabling, 51 enabling, 51 listing, 49 tuning, daily command summary and, 144 turnacct switch script, 129 turnacct switch script, 140 turning off quotas, 91 turning on quotas, 91 turning on quotas, example of, 96
U
UFS file systems, displaying information about, 84 UFS quota, command, 97 UFS quota command, 91 UFS quotas, 98-99, 99-100 changing for individual users, 101 checking, 97 disabling for individual users, 102 requirements, 91 soft limit time changing, 100 UNIX systems (crash information), 232 user fees, 128, 129, 144 See also billing users user logins last login monitoring, 140, 146, 151 number of logins, 144 time monitoring, 127, 140, 144 user-mode priority, 170 user ownership of disk space, 84 user processes changing priority, 174, 175 CPU usage by, 144 priority of, 170 user quotas, 97-98
Index
user quotas (Continued) changing for individual users, 101 disabling for individual users, 102 setting up, 94 user structure, 156 using UFS quotas, 89-90 /usr/adm/messages file, 210 /usr/bin/mdb utility, 236 /usr/proc/bin directory, 162, 163 utmp2wtmp command, 140
V
/var/adm/acct directory, 149 /var/adm/acct/fiscal directory, 149 /var/adm/acct/nite/active file, 136, 139, 149 /var/adm/acct/nite/active.MMDD file, 139, 149 /var/adm/acct/nite/cms file, 140 /var/adm/acct/nite/cms file, 149 /var/adm/acct/nite/ctacct.MMDD file, 140, 149 /var/adm/acct/nite/ctmp file, 149 /var/adm/acct/nite/daycms file, 140, 149, 151 /var/adm/acct/nite/daytacct file, See daytacct file /var/adm/acct/nite directory, 149 /var/adm/acct/nite/disktacct file, 129 /var/adm/acct/nite/disktacct file, 128, 129, 140, 149 /var/adm/acct/nite/disktacct.MMDD file, 140 /var/adm/acct/nite/fd2log file, 136, 139, 149 /var/adm/acct/nite/lastdate file, 140, 149 /var/adm/acct/nite/lineuse file, 140, 149, 150 /var/adm/acct/nite/lock file, 136, 140, 149 /var/adm/acct/nite/lock1 file, 140 /var/adm/acct/nite/log file, 149 /var/adm/acct/nite/log.MMDD file, 149 /var/adm/acct/nite/owtmpx file, 150 /var/adm/acct/nite/reboots file, 140, 149 /var/adm/acct/nite/statefile file, 136, 140, 149 /var/adm/acct/nite/tmpwtmp file, 140, 149, 150 /var/adm/acct/nite/wtmp.MMDD file, 140, 150 /var/adm/acct/nite/wtmperror file, 149 /var/adm/acct/nite/wtmperror.MMDD file, 149 /var/adm/acct/sum/cms file, 140 /var/adm/acct/sum/cms file, 150, 151
/var/adm/acct/sum/cmsprev file, 150 /var/adm/acct/sum/daycms file, 150, 151 /var/adm/acct/sum/daycmsfile, 140 /var/adm/acct/sum directory, 129, 149, 150 /var/adm/acct/sum/loginlog file, 140, 150, 151 /var/adm/acct/sum/rprt.MMDD file, 151 /var/adm/acct/sum/rprtMMDD file, 129 /var/adm/acct/sum/rpt.MMDD file, 140 /var/adm/acct/sum/tacct file, 140 /var/adm/acct/sum/tacct file, 135, 150 /var/adm/acct/sum/tacct.MMDD file, 140, 150 /var/adm/acct/sum/tacctMMDD file, 135 /var/adm/acct/sum/tacctprev file, 135, 150 /var/adm directory controlling size of, 86 described, 149 raw accounting data in, 128 /var/adm/dtmp file, 149 /var/adm/fee file, 129, 133, 140, 149 /var/adm/messages file, 210, 216 /var/adm/messages.n file, 213 /var/adm/sa/sadd file, 204 /var/adm/Spacctn.MMDD file, 140, 149 /var/spool/cron/atjobs directory, 106, 107, 109 /var/spool/cron/crontabs directory, 109 /var/spool/cron/crontabs/root file, 108, 128 /var/spool/cron/crontabs/sys crontab, 204 verifying quotas, 100 UFS quotas, 97 vfstab file, quotas and, 92 vmstat command fields in reports from, 178 overview, 178
W
Watchdog reset ! message, 213 weekly tasks (scheduling with crontab), 107 what to do if boot archive service fails x86 booting the failsafe archive, 243-244 wtmp.MMDD file, 140, 150 wtmperror file, 149
299
Index
wtmperror.MMDD file, 149 wtmpfix command, 134, 140, 149 wtmpx file, 134-135 daily report and, 142 fixing corrupted, 134, 135, 140 overview, 129, 134, 140 shutdowns and, 130
Z
ZFS, swap area and dump volume requirements, 231
300