HP-UX Overview and Command Summary
Bootup/Shutdown
shutdown -r 0 --> reboot
shutdown -h now --> shutdown and halt
shutdown 0 --> shutdown to single user mode
reboot 0 --> reboot
init 1 - single user mode
hpux -is boots single user mode
Interupting the boot process:
Configuration Menu
Information Menu
Service Menu
GSP Mode
From the console hit <ctrl><b>
Hit <Enter> at the GSP console login (default is no password)
Now low level commands can be entered
ps --> power status
To reboot to single user mode:
1. shutdown -r 0
2. hit <space> during 10 sec window to interrupt reboot
3. enter: <b><o>
4. interact with ipl? yes
5. hpux -is (i=init, s=single user)
To reboot manually to init 3 level
1. shutdown -r 0
2. <space> during 10 sec window
3. bo
4. interact with ipl --> yes
5. hpux -is (i=init, s=single user mode)
6. mount -a
7. init 3
Startup/Shutdown Scripts
/sbin/init.d
/sbin/rc0.d These are all linked to actual scripts in /sbin/init.d
/sbin/rc1.d
/sbin/rc2.d scripts with k are kill scripts and scripts with s are start scritps.
/sbin/rc3.d
/sbin/rc4.d
/etc/rc.config.d --> Scripts
CIFS (Samba)
/opt/etc/samba/smb.conf
Device Management
HP-UX is a hardware path based operating system. When it boots up it does a hardware detection. It then
compares the hardware that it detects with the hardware that is listed in /etc/ioconfig. If new hardware is
detected, it is assigned the next available configuration information in the proper hardware path.
rmsf - remove special files
insf - install special files
insf -C disk -e <-- This command will re-install all of the device files for the class "disk"
lsdev <-- Lists devices and drivers in the system
ioscan <-- searches for all devices and displays their hardware path
ioscan -fnC disk <-- searches for all devices of class (C) disk
ioscan -fnH <LUN> <-- searches for a LUN
last 2 digits of hardware path in the LUN in octal (1/12/0/0.1.23)
Disk Devices
A disk device will have a name in the following format: c#t#d#
c# is the card number
t# is the target number
d# is the LUN - this is normally 0 unless RAID is being utilized
scsictl -a /dev/rdsk/c?t?d? <-- display control parameter information about the disk device
scsictl -a -m queue_depth=4 -m queue_depth /dev/rdsk/c?t?d? <-- sets the queue depth
CD-ROM Devices
nohup /usr/sbin/pfs_mountd & - starts process
nohup /usr/sbin/pfds & - starts process
pfs_mount -o xlat=unix /dev/dsk/c0t1d0 /cdrom - mounts cdrom
Cdrom won't eject:
1. pfs_umount -c OR
2. kill -9 pfs_mountd and kill -9 mountd
Cdrom won't mount using: pfs_mount -o xlat=unix /dev/dsk/c0t1d0 /cdrom
1. nohup /usr/sbin/pfs_mountd &
2. nohup /usr/sbin/pfsd
3. /usr/sbin/pfs_mount /cdrom <-- this uses mounting information in /etc/pfs_fstab
7400 Disk Array
armdsp -a va7400 <-- real time display of the disk array
armmgr -D va7400 HPA6189A00SG218H0024
armdiscover /opt/sanmgr/commandview/client/sbin --> Tells us the serial number
armhost -d <Array Worldwide Name> <Serial #>
armhost -d 50060b000014e313 00SG218J0024
ioscan -fnc disk | more
cvui - creates luns
Choose storage array
Create LUN
Find last LUN
Create with new lun number
View existing luns
Process to export disk configuration to a file:
sam --> actions-->export
volume group name --> mapfile name
Fibre Channel Devices
ioscan -fknC fc <-- Lists fibre channel adapters.
To identify the devices:
ls -l /dev/fc*
fcmsutil - utility for fibre channel operations
fcmsutil /dev/<device>
Procedure to run fcmsutil on a fibre channel:
ioscan -fnC disk|more --> Identify hw path of fibre channel adapter
ioscan -fnH 1/0/0/0 --> Identify device of fibre channel adapter
or ls /dev/fc* on older adapters (arbitrated loop)
fcmsutil /dev/fcms2 stat --> fcmsutil that shows status of fibre channel adapter
Logs
/etc/rc.log Startup Log
/var/adm/sw/swagent.log Software package installation log
/var/adm/syslog/syslog.log System Error Log
/etc/shutdownlog Shutdown Log
/var/tombstones/ts99 Crash log
Login Environment
/etc/profile - main profile for all users
/etc/profile.env
export TMPDIR=/tmpsort
export TEMPDIR=/tmpsort
source a profile: ". ./profile"
Changing prompt:
export PS1=$(hostname):'$PWD # '
This gives a prompt that has the hostname followed by the current directory, ending in the # (useful for root
logins).
Networking
netstat -a <--ports
netstat -i <--interfaces
netstat -r <--routing table
netstat -rv <--routing table and subnet mask
lanscan - provides hardware information about the nics in the server
lanadmin - menu driven interface to administer lan nics
lanadmin -x 0 bypass menu and show lan driver specific options for nic with id 0
lanadmin -X 100FD 0 - bypass menu and set nic at id 0 to 100 MBS, Full Duplex
ioscan -fnkC lan - shows ioscan information for device type "lan"
lanscan -i|awk '{print $1}'|xargs -i ifconfig {} -> does an ifconfig on all defined interfaces on that server
Changing the IP Address and Subnet mask:
set_parms ip_address
Then supply ip address and subnet mask when prompted. This process will require a reboot.
Changing the Default Gateway
cd rc.config.d
vi netconf
Network Time Protocol (NTP)
ntpq -p --> lists ntp peers and their time sync status
ntpq -p <server fqdn or ip address> --> lists time sync status with that server (slightly different detail than
ntpq -p)
/etc/ntp.conf --> configuration file
Changes to the configuration require ntp daemon (xntpd) be stopped and restarted (restart is not recognized):
/sbin/init.d/xntpd stop
/sbin/init.d/xntpd start
Printing
Command Description
cancel deletes print jobs from queue
hppi jet admin
ls -d<destination> -o<optioni> prints a file
file
lpadmin
lpsched -v
lpstat lists jobs in queue. -s -t
pr .profile | lp -n3 prints
pr -o10 -l64 -F -h prints using margins of 10, page length of 64, header on each page
<HEADER> <file> | lp
/etc/lp
/usr/lib/lp
/var/adm/lp
/var/spool/lp
/etc/lp/interface - interface scripts
/var/sam/lp/lpinfo
Migrating the printer configuration from one server to another server using SAM:
On the source server:
SAM --> Printers & Plotters --> LP Spooler --> Save/Restore Spooler Configuration
Actions --> Save Spooler Configuration
This saves the information in the directory /var/sam/lp
Save this directory using tar: "tar -cvf /tmp/lp.tar /var/sam/lp"
Copy this tar file to the destination server
On the destination server:
Extract this file: "tar -xvf lp.tar"
SAM --> Printers & Plotters --> LP Spooler --> Save/Restor Spooler Configuration
Actions --> Restore Spooler Configuration
Performance Monitoring
top
j moves forward pages in the display
k moves backwared pages in the display
glance (if installed)
sar -q
sar -u
sar -d
vmstat
vminfo
Process Management
Command Description
inetd -c Causes inet to reload /etc/inetd.conf
inetd -l starts logging in /var/adm/syslog/syslog.log
ps -ef | grep PROD list all processes, but only show those processes that have "PROD" in
them
/sbin/init.d/<script> [start|stop] If the script exists, this will stop and start the associated processes.
/etc/services --> Lists the services and their configuration
/etc/inetd.conf --> Lists the services and their configuration
/var/adm/inetd.sec --> This file contains security information on who may request a particular process
Remote Access
rcp <source> remote_machine:<path>
remsh <host>
rlogin <host>
.rhosts file needs to be configured or else you will be prompted for username and password (located in home
directory)
last -R - gives address information of last remote login, useful for troubleshooting
Software Installation and Management
To install patches and software use:
swinstall --> This will lauch the gui or
swinstall -x <option> -x <option> -s <path to depot> --> This will still lauch the gui, but the parameters
will be preselected. This is use to allow selection of additional parameters that may not be selectable from the
gui itself (such as the logging levels below)
For example some popular options are:
-x mount_all_filesystems=false
-x logdetail=true
-x loglevel=2
Note:
To install a depot you must specify the complete path to the depot and the depot name.
To install patches you must specify the complete path to the directory that has the patch files.
Location of logfiles:
/var/adm/sw/swagent.log
/var/adm/sw/swinstall.log
Listing all Software
swlist -l product | more
Checking for Specific Software
swlist -l product | grep <SEARCH STRING>
Checking for Specific Patches
swlist -l product| grep PH | more
then search for a specific patch (ie PHNE_XXXXX)
Manually applying patches
Patches can be applied using swinstall, just as depots are installed
swlist -l patch -a patch_state PHKL_25475
swcopy -s /tmp/*.depot -\*@/var/spool/sw
Cleaning up after applying patches:
cleanup
cleanup -c n <-- commits patches that have been superseded n number of times. Useful to free up disk
space in /var/adm/sw/save.
cleanup -p <-- previews the actual cleanup tasks but does not actually perform the cleanup
check_patches
show_patches
Creating a single patch depot out of multiple individual depots:
From the directory that has all of the individual depots run this command line script:
for i in PH*.depot
do
swcopy -x enforce_dependencies=false -s ${PWD}/$i \* @ /tmp/patch_depot <--
/tmp/patch_depot is the destination directory
done
System Information
Note: See section on STM, detailed system information is available with this utility
Also SAM -->Performance Monitors --> System Properties
OS Information
uname -a - display general information e.g. OS release, node name, machine ID number, etc
print $(uname -i)16op|dc hex system id
/opt/itor/bin/i4target -v spu
file /stand/vmunix <-- shows whether 64 bit or 32 bit kernel
getconf KERNEL_BITS <--shows whether 64 bit or 32 bit kernel
Memory Information
dmesg|grep Phy <-- List amount of physical ram in server
cat syslog|grep Phy <-- List amount of physical ram in server
echo phys_mem_pages/D|adb -k /stand/vmunix /dev/kmem <-- Lists amount of 4K Memory pages in
HPUX 11.x
echo "memory_installed_in_machine/D" | adb -k /stand/vmunix /dev/mem |tail -1 | awk '$2 > 0 { print $2 /
256 }' <-- Lists memory in MB.
echo "physmem/D" | adb /stand/vmunix /dev/kmem <-- Lists amount of 4K Memory pages in HPUX 10.x
model <-- information about the model of the workstation/server
sam --> Performance Monitors --> System Properties --> Memory Tab
CPU Information
ioscan -fnC processor <-- shows information about each processor found
echo "itick_per_usec/D" | adb -k /stand/vmunix /dev/mem | tail -1 <-- Shows CPU Speed in MHZ
sam --> Performance Monitors --> System Properties -->Processor Tab
echo itick_per_tick/D | adb /stand/vmunix /dev/kmem - gives processor speed
grep model /usr/lib/sched.models - gives type of processor for 10.X systems
grep model /opt/langtools/lib/sched.models - gives processor type for 11.X systems
Changing the Server Name and the IP Address
Using set_parms --> may not work correctly for multiple nics
set_parms hostname ( a reboot is required for the change to take effect)
It will prompt you for the new hostname
It will prompt you to reboot (answer no if you are also changing the ip address)
set_parms ip_address ( a reboot is required for the change to take effect)
It will prompt you for the new ip address
It will prompt you to reboot
Manually makiing the change:
vi /etc/hosts
vi /etc/rc.config.d/netconf <-- ** Make sure that no extra files are in the /etc/rc.config.d
directory - it gets sourced on bootup
reboot
Other files that may need to checked/changed
/etc/resolv.conf
/etc/nsswitch.conf
System Tuning
Extract Current System File
cd /stand/build
/usr/lbin/sysadm/system_prep -s /stand/build/system
file is called system
section called "Tunable Parameters"
kmtune - displays the tunable parameters
kmtune -l <-- This displays a detailed report of the parameters (current, planned, default, minimum, etc)
sam allows you to tune the kernel
Manual Kernel Build (not using sam) --> /usr/sbin/mk_kernel -s /stand /build/system
STM
diaglogd
/var/opt/resmon/log
Procedure to use STM to determine memory configuration
Type stm at the command line
Type o to select ok
Press the down arrow in the displayed map and select memory by hitting the space bar
Press tab to go to menus and arrow over to Tools and hit enter
Select Information -> and hit enter
Select Information Log and hit enter
Information Tool Log for Memory will be displayed
To print either select Print or SaveAs (to save the log to file for later printing)
Command Script to print useful information to a file called info
echo "sel path system; info; wait; infolog
>view
>done
>"lcstm>info
#cat info
print_manifest (located in /var/opt/ignite/local/manifest/manifestinfo ??)
Command Script to print useful information
cstm
cstm>Map
cstm>SelAll
cstm>Information
cstm>Infolog
cstm>exit
Command Script to print useful information (not sure this is complete/correct)
cstm
cstm>SelClass type "Disk" qualifier "All"
cstm>info;wait
cstm>il
cstm>create /tmp/disk.stm
cstm>done
cstm>quit
cstm>ok
cstm -f /tmp/disk.stm
Terminal Environment
TERM - environmental variable indicating type of terminal
stty
termio
/usr/share/lib/terminfo
setup string for xterm: /usr/bin/X11 -ls -d @D
$DISPLAY=192.168.70.80:0.0
$TERM = xterm
stty
stty -all
Running Exceed --> xstart
<ctrl> Rightl Click --> Huge
Starting an X-Window application from telnet
start an X-Window server on the PC, such as exceed
export DISPLAY=W.X.Y.Z:0.0 <---W.X.Y.Z is the IP Address of the PC
/opt/ignite/bin/ignite <---Now just run the program
Configuring an HP 700/96 Terminal for a server connection:
Terminal Ports
Port 1
Datacommunications
25 Pin - use this to connect to the N class server with a 25 pin to 9 pin cable
Port 2 - used to connect to an external peripheral
Parallel
25 Pin
Port 3
Datacommunications
9 Pin - use this port to connect to the A class server with a 9 pin to 25 pin cable
Terminal Configuration Settings
Press User/System function key
modes
Remote Mode must have an asterisk in it's box (indicating it is selected)
config keys
datacomm config
baud rate 9600
parity: none/8
xon/xoff
terminal config
serial (2)/parallel(1) - 25 pin console port
serial (1)/parallel(1) - 9 pin console port
Term ID - vt100
Term Mode - em100
ansi config
em100
backspace/del
Users Administration
Creating Users
sam --> user and group accounts
useradd -g users -d <homedirectory> Username
Creating Groups
sam --> user and group accounts
groupadd Groupname
Useful Commands
Command Description
<esc><esc> or <esc>\ autocompletion
file * Show file types, such as "ascii".
find <path> -name <name> - Finds a file in the OS at the starting path on down
print
grep
groups <username> Shows groups for a user
kmtune Displays kernel tunable parameters
listusers -g <group> Lists the users in a group
ln -s <file or directory> Creates a symbolic link to a file or a directory
<symbolic link>
pr -o10 -l64 -F -h prints using margins of 10, page length of 64, header on each page
<HEADER> <file> | lp
rcp <source> remote_machine: remote copy
<path>
remsh <host> opens a remote command shell on the host machine
rlogin <host> remote login to host machine
sar
set_parms Change host name (/etc/set_parms)
tail -f <file> Looks at end of file and keeps it open to watch changes
top realtime display of processes
uname -a information about the system
print $(uname -i)16op|dc prints hex system id
who -u, who -Rm who is using the system
Process to recover from a lost/forgotten root password
1. Power off the server
2. Power on the server
3. Interupt the boot process during the 10 second interval (display will indicate this on the screen)
4. bo pri
5. Answer yes to interact with the ipl
6. At the prompt "hpux -is" for single user mode
7. cd /sbin
8. passwd root and follow prompts to put in new password
9. shutdown -r 0 to reboot to multiuser mode
Oracle Procedures:
I have a need to remove some semaphores and a memory segment from a sun box to clean up a failed Oracle
instance. The server has several Oracle Instances and allocated memory segments and I need to identify the
proper one to 'ipcrm -m' on.....Does anyone know how I get more detail as to the owner of the segments?
Thanks,
Thomas
Unfortunately I was using that syntax to begin with and only gets me limited data, however by ipcs -pmb and
ipcs -sa I was able to identify all oracle semaphore id's and memory segment id's. Then by connecting to the
surviving instances, doing a dump of that instance memory and semaphore maps, I was able to determine
which id's not to remove from memory, thus enabling me to clean up the failing instance memory.
Thanks,
Thomas