HP-UX Administration Cheat Sheet

HP-UX 11i v3 (B.11.31) · Hinweise zu 11i v2 (B.11.23) · Integrity / PA-RISC
Keine Treffer – Suchbegriff anpassen.

💻System- & Hardware-Informationen

uname -aAlles auf einmal: OS, Hostname, Release, Maschinentyp
uname -rOS-Release: B.11.31 = 11i v3, B.11.23 = 11i v2, B.11.11 = 11i v1
uname -mArchitektur: ia64 (Integrity) oder 9000/800 (PA-RISC)
uname -iNumerische Maschinen-ID (Lizenz-/Support-Bindung)
modelHardware-Modell, z. B. ia64 hp server rx2660
machinfoNur Integrity: CPUs, Cores, RAM, Firmware, Seriennummer, Zellen
machinfo | grep -i -e memory -e "Number of"Schnell RAM-Größe und CPU-Anzahl ablesen
/opt/ignite/bin/print_manifestKompletter Systemsteckbrief (HW, OS, Patches, LVM, Netz)
getconf MACHINE_MODELModellbezeichnung wie model, skriptfreundlich
getconf KERNEL_BITSKernel 32/64 Bit (HW_CPU_SUPP_BITS = was die CPU kann)
getconf CPU_VERSIONCPU-Typ als Zahl (Itanium/PA-RISC-Generation)
swlist -l bundle | grep -i -e HPUX -e OEInstalliertes Operating-Environment-Bundle (BOE/VSE/DCOE/HPUX11i…)
ioscan -fnKomplette Hardware-Inventur mit Gerätedateien
ioscan -kfnNur aus dem Kernel-Cache lesen – schnell, kein Bus-Scan
ioscan -funC diskAlle Platten (Legacy-Sicht) mit Gerätedateien
ioscan -funC tape / -funC lan / -funC fcBänder / Netzwerkkarten / FC-Adapter
ioscan -m dsf11.31: Zuordnung persistent DSF ↔ Legacy-DSF
ioscan -N -funC disk11.31: agile Sicht (/dev/disk/diskX)
setbootPrimärer/alternativer Bootpfad, Autoboot-Flags
bdfFilesystem-Belegung (HP-UX-Pendant zu df -k)
swapinfo -tamSwap-Übersicht in MB inkl. Summenzeile
lanscanNetzwerkkarten mit PPA, MAC, Interface-Name
who -r / who -bAktueller Runlevel / letzter Bootzeitpunkt
uptime; dateLaufzeit, Load Average, Systemzeit
cat /etc/issue; cat /etc/motdPre-Login-Banner und Begrüßungstext
hostname; uname -nHostname (dauerhaft über set_parms hostname)
11i v2 abweichend: machinfo existiert nur auf Integrity. Auf PA-RISC-Systemen (11.11/11.23) RAM über grep -i Physical /var/adm/syslog/syslog.log oder echo "phys_mem_pages/D" | adb -k /stand/vmunix /dev/kmem (Wert × 4 KB) ermitteln.
Praxis: Vor jedem Change einen Steckbrief ziehen: print_manifest > /tmp/manifest_$(date +%F).txt plus swlist -l bundle, bdf, vgdisplay -v und setboot wegsichern.

⏻Boot, Shutdown & Runlevel

Bootpfade & Bootbereich

setbootZeigt PRIMARY / HA ALTERNATE / ALTERNATE Bootpfad und Flags
setboot -p 0/1/1/0.0x0Primären Bootpfad setzen (Hardware-Pfad der Bootplatte)
setboot -a 0/1/1/0.0x1Alternativen Bootpfad setzen (Mirror-Platte!)
setboot -b on / -b offAutoboot ein-/ausschalten
setboot -s onAutosearch ein-/ausschalten (PA-RISC)
setboot -vAusführliche Ausgabe inkl. EFI-Bootoptionen (Integrity)
lifls -l /dev/rdsk/c0t0d0Inhalt des LIF-Bereichs einer PA-RISC-Bootplatte listen
mkboot /dev/rdsk/c1t2d0Bootbereich (LIF/EFI) auf Platte schreiben
mkboot -a "hpux" /dev/rdsk/c1t2d0AUTO-Datei setzen (Default-Bootstring)
mkboot -a "hpux -lq" /dev/rdsk/c1t2d0Boot auch ohne Quorum erlauben (2-Platten-Mirror in vg00)
lvlnboot -v /dev/vg00Boot-/Root-/Swap-/Dump-LV-Zuordnung der vg00 prüfen
lvlnboot -R /dev/vg00BDRA neu aufbauen – nach jeder Änderung an vg00 Pflicht
lvlnboot -b /dev/vg00/lvol1LV als Boot-LV (/stand) eintragen
lvlnboot -r /dev/vg00/lvol3Root-LV eintragen
lvlnboot -s /dev/vg00/lvol2Swap-LV eintragen (-d = Dump-LV)
lvrmboot -d /dev/vg00/lvol2Eintrag (hier Dump) wieder entfernen

Shutdown & Reboot

shutdown -ry 0Sofortiger Reboot ohne Rückfrage (Standard bei Wartung)
shutdown -hy 0Herunterfahren und anhalten/ausschalten
shutdown -ry 600 "Wartung"Reboot in 600 Sekunden mit Meldung an alle User
shutdown 0In den Single-User-Modus wechseln (Runlevel s)
reboot -h / reboot -qDirekter Reboot ohne shutdown-Skripte (nur im Notfall)
cat /etc/shutdownlogWer hat wann und warum neu gestartet – erste Anlaufstelle

Runlevel, init & Startskripte

who -rAktueller Runlevel (Standard-Multiuser = 3)
init 3 / init sRunlevel wechseln / Single-User
/etc/inittabDefault-Runlevel (init:3:initdefault:) und Gettys
init qinittab neu einlesen ohne Reboot
/sbin/init.d/Start-/Stop-Skripte aller Dienste
/sbin/init.d/nfs.server start|stopDienst manuell starten/stoppen
/sbin/rc0.d … /sbin/rc4.dSymlinks je Runlevel: S###name = Start, K###name = Kill
/etc/rc.config.d/Konfigurationsvariablen der Dienste (z. B. NFS_SERVER=1)
grep -i xntpd /etc/rc.config.d/netdaemonsAutostart eines Dienstes prüfen/ändern
cat /var/adm/rc.logProtokoll aller Startskripte – wichtigstes Boot-Log!
/stand/vmunix, /stand/systemLaufender Kernel und Kernel-Konfigurationsdatei
/stand/bootconfBootplatte für Ignite/Update (l /dev/dsk/c0t0d0s2)

Firmware-Prompt: EFI (Integrity) und BCH (PA-RISC)

Shell> fs0:EFI: auf die Bootplatte wechseln, dann cd \EFI\HPUX
fs0:\EFI\HPUX> hpuxNormaler Bootvorgang von der EFI-Shell
hpux -isBoot in den Single-User-Modus (Root-Passwort vergessen, fsck)
hpux -lqBoot ohne LVM-Quorum (eine Mirror-Hälfte fehlt)
hpux -lmBoot in den LVM-Maintenance-Modus (vg00 nicht aktiviert)
hpux /stand/vmunix.prevAlten Kernel booten, wenn der neue nicht startet
Shell> map -rEFI: Geräte-Mapping neu aufbauen (map = anzeigen)
BCH> SEAPA-RISC: bootfähige Geräte suchen
BCH> PATHBootpfade anzeigen (PATH PRI <pfad> = setzen)
BCH> BO PRIVom primären Pfad booten; „Interact with IPL? Y“ für ISL
ISL> hpux -isPA-RISC: Single-User-Boot vom ISL-Prompt
Ctrl-BVon der Konsole zum MP/GSP wechseln (co = Konsole, sl = Logs)
Root-Passwort vergessen: Single-User booten (hpux -is), danach mount -a, passwd root, sync, shutdown -ry 0. Bei Trusted Systems zusätzlich /tcb/files/auth/r/root beachten.
Nach jeder vg00-Änderung: lvlnboot -R /dev/vg00, lvlnboot -v /dev/vg00 kontrollieren, bei neuer/getauschter Bootplatte zusätzlich mkboot und setboot -a – sonst bootet der Mirror nicht.

📦Software Distributor (SD-UX) & Patches

Abfragen

swlistInstallierte Produkte/Bundles auf oberster Ebene
swlist -l bundleNur Bundles (OE, Quality Pack, Patch Bundles)
swlist -l productAlle Produkte einzeln
swlist -l fileset OnlineJFSFilesets eines Produkts
swlist -l file OnlineJFSAlle Dateien eines Produkts
swlist -l patchAlle installierten Patches (PHKL/PHCO/PHNE/PHSS)
swlist -l patch | grep PHKL_43xxxIst ein bestimmter Patch installiert?
swlist -a revision -l product Base-VXFSVersion eines Produkts gezielt abfragen
swlist -l fileset -a state | grep -v configuredNicht konfigurierte Filesets aufspüren
swlist -a description -l patch PHSS_12345Kurzbeschreibung eines Patches
swlist -d -s /var/depotInhalt eines Depots anzeigen (ohne Installation)
swlist -s /dev/rdisk/disk3 -dInhalt eines Tape-/Geräte-Depots listen
swverify \*Integrität aller installierten Produkte prüfen
swverify OnlineJFSEinzelnes Produkt prüfen (Dateien, Rechte, Abhängigkeiten)

Installieren & Entfernen

swinstallInteraktive TUI – gut zum Blättern in Depots
swinstall -p -s /var/depot/patches.depot \*Preview! -p ändert nichts, schreibt aber das Log
swinstall -s /var/depot/patches.depot \*Alles aus dem Depot installieren
swinstall -s srv:/depot/qpk1131 -x autoreboot=true \*Von Netz-Depot installieren, Reboot automatisch
swinstall -s /depot -x patch_match_target=true \*Nur Patches, die zur installierten Software passen
swinstall -s /depot -x autoreboot=true -x mount_all_filesystems=false \*Ohne mount -a installieren (Cluster, NFS-Probleme)
swinstall -s /depot -x reinstall=true PHKL_12345Bereits installierten Patch erneut einspielen
swremove PHKL_12345Patch zurücknehmen (Original wird wiederhergestellt)
swremove -x autoreboot=true PHKL_12345Kernel-Patch entfernen inkl. Reboot
swremove -d \* @ /var/depotDepot-Inhalt (nicht das System!) leeren
swcopy -s /dev/dsk/c0t0d0 \* @ /var/depotMedium/Depot in lokales Depot kopieren
swreg -l depot /var/depotDepot registrieren, damit Clients es sehen
swreg -u -l depot /var/depotRegistrierung aufheben
swjobSD-Jobs auflisten (auch abgebrochene)
swjob -a log <jobid>Log eines Jobs ansehen – hier steht die echte Fehlerursache
swacl -l hostZugriffsrechte für SD anzeigen (-M zum Ändern)
/usr/sbin/swagentd -rSD-Daemon neu starten (bei „cannot connect“-Fehlern)
update-ux -s /depot/1131 HPUX11i-DC-OEOS-Update auf neuen Release-Stand (nicht swinstall!)

Patch-Verwaltung

show_patchesÜbersichtliche Patchliste (aus den Patch-Tools)
cleanup -pPreview: welche superseded Patches könnten weg?
cleanup -c 1Committen: Save-Bereiche überholter Patches löschen (Platz in /var)
swlist -l bundle | grep -i QPKQuality-Pack-Stand prüfen (QPKBASE / QPKAPPS)
swlist -l bundle | grep -i -e HWEnable -e FEATUREHardware-Enablement- und Feature-Bundle-Stand
/var/adm/sw/swagent.logZentrales SD-Log – bei jedem Fehler zuerst hier schauen
/var/adm/sw/swinstall.logProtokoll der letzten Installation (auch Preview)
/var/adm/sw/swremove.log, swverify.logLogs von Deinstallation und Verifikation
/var/adm/sw/products/Installed Products Database (IPD) – nie manuell ändern
/var/spool/swStandard-Depotverzeichnis
Patch-Kennungen: PHKL = Kernel (Reboot nötig), PHCO = Commands/Libraries, PHNE = Netzwerk, PHSS = Subsystem (Compiler, X11, Serviceguard). Kritisch für Ausfallzeit-Planung: nur PHKL-Patches erzwingen zwingend einen Reboot.
Bewertung vor dem Change: Mit dem HP-UX Patch Assessment / Software Assistant (swa report, swa get) lässt sich gegen den aktuellen Katalog prüfen, welche Security- und Critical-Patches fehlen. Als Eingabe dient ein swlist-Inventar des Zielsystems.
Immer erst Preview: swinstall -p laufen lassen und /var/adm/sw/swinstall.log auf ERROR/WARNING prüfen. Ohne -x autoreboot=true bricht die Installation bei Kernel-Patches ab; mit true startet die Maschine ohne weitere Rückfrage neu.

🧠Kernel-Konfiguration & Tuning

11i v3 (B.11.31): kctune / kcmodule

kctuneAlle Tunables mit aktuellem und Default-Wert
kctune | grep -i maxfilesGezielt nach einem Tunable suchen
kctune -v maxfiles_limDetails: Wertebereich, Default, ob dynamisch änderbar
kctune maxfiles_lim=65536Tunable sofort setzen (wenn dynamisch)
kctune -B nproc=8192Erst beim nächsten Boot aktiv werden lassen
kctune -h shmmax=8589934592Wert „halten“ (hold) – wird von Updates nicht überschrieben
kctune -S /stand/backup maxfilesWert in einer gespeicherten Konfiguration abfragen/setzen
kctune -DNur Tunables anzeigen, die vom Default abweichen
kcusageAktuelle Nutzung gegenüber dem Tunable-Limit (z. B. nproc, nfile)
kcusage -w 80Nur Ressourcen über 80 % Auslastung anzeigen
kcmoduleAlle Kernel-Module mit Zustand (static/loaded/unused)
kcmodule vxfsZustand eines Moduls abfragen
kcmodule krm=loadedModul dynamisch laden
kcmodule -B modul=staticModul fest in den Kernel des nächsten Boots einbinden
kconfig -lGespeicherte Kernel-Konfigurationen auflisten
kconfig -s vor_changeAktuelle Konfiguration unter Namen sichern
kconfig -l -v vor_changeInhalt einer gesicherten Konfiguration ansehen
kconfig -i vor_changeGesicherte Konfiguration wieder aktivieren (Rollback)
kconfig -c neuKonfiguration kopieren/anlegen (-d = löschen)
kcwebKernel-Konfiguration im Browser (SMH, Port 2381)
/var/adm/kc.logProtokoll aller Kernel-Konfigurationsänderungen
/stand/current, /stand/nextboot, /stand/backupLaufende, nächste und gesicherte Kernel-Konfiguration

11i v2 / v1 (B.11.23 / B.11.11): kmtune & mk_kernel

kmtune -lAlle Tunables mit Werten anzeigen
kmtune -q maxfilesEinzelnes Tunable abfragen
kmtune -s maxfiles_lim=4096Tunable in /stand/system setzen
kmsystem -q vxfsIst ein Treiber/Subsystem im Kernel? (-c Y = einbinden)
mk_kernel -s /stand/systemNeuen Kernel bauen
kmupdate /stand/build/vmunix_testNeuen Kernel für den nächsten Boot vormerken
/usr/lbin/sysadm/system_prep -s systemAktuelle Kernel-Konfiguration nach /stand/build/system holen
# 11i v2: Tunable aendern und Kernel neu bauen
cd /stand/build
/usr/lbin/sysadm/system_prep -s system      # Ist-Zustand holen
kmtune -S ./system -s maxdsiz=0x40000000    # z.B. max. Data-Segment 1 GB
mk_kernel -s ./system                       # baut /stand/build/vmunix_test
cp /stand/system /stand/system.prev         # Rollback-Sicherung
kmupdate /stand/build/vmunix_test
shutdown -ry 0                              # Kernel wird beim Boot getauscht

Häufig benötigte Tunables

maxfiles / maxfiles_limSoft-/Hard-Limit offener Dateien je Prozess
nproc / maxuprcProzesse systemweit / je User
maxdsiz / maxdsiz_64bitMax. Data-Segment (typische Ursache für „out of memory“ in Apps)
maxssiz / maxtsizMax. Stack- bzw. Text-Segment
shmmax / shmmni / shmsegShared Memory (Oracle/SAP-Voraussetzungen)
semmni / semmns / semmnuSemaphore-Grenzen
msgmni / msgtqlMessage Queues
max_thread_proc / nkthreadThreads je Prozess / systemweit
filecache_min / filecache_max11.31: Filecache in Prozent des RAM
dbc_min_pct / dbc_max_pctNur 11.11/11.23: Buffer Cache – in 11.31 ersetzt!
swapmem_onPseudo-Swap (RAM als Swap-Reserve) ein/aus
11i v3 vs. 11i v2: Unter 11.31 gibt es kein mk_kernel-Ritual mehr – die meisten Tunables sind dynamisch. dbc_max_pct existiert nicht mehr; stattdessen filecache_max (Default 50 %, für Datenbankserver oft auf 5–10 % reduziert).
Rollback-Rezept: Vor Tuning immer kconfig -s vor_change. Wenn das System nach dem Reboot nicht mehr stabil ist: in der EFI-Shell hpux /stand/backup/vmunix booten und kconfig -i vor_change ausführen.

🔌Devices, Agile Addressing & Multipathing

ioscan & Gerätedateien

ioscan -fnVoller Scan mit Gerätedateien (dauert, weckt alle Busse)
ioscan -kfnAus Kernel-Cache – schnell und ohne Bus-Reset
ioscan -funC diskLegacy-Sicht der Platten (/dev/dsk/c#t#d#)
ioscan -N -funC diskAgile Sicht (/dev/disk/diskN) – nur 11.31
ioscan -m dsfTabelle persistent DSF ↔ Legacy-DSF
ioscan -m lunLUN-Sicht: alle Pfade je LUN mit Status
ioscan -m hwpathZuordnung Legacy-Hardware-Pfad ↔ LUN-Hardware-Pfad
ioscan -H 0/0/2/0Nur einen Hardware-Pfad scannen (z. B. einen FC-Port)
ioscan -fnC ctl / -fnC fc / -fnC lan / -fnC tapeController / FC / Netz / Bandlaufwerke
ioscan -fnkC processorErkannte CPUs
insf -eFehlende Gerätedateien für alle Geräte neu anlegen
insf -eC diskNur für Plattenklasse
insf -H 0/0/2/0.1.2Nur für einen Hardware-Pfad
rmsf -H 0/0/2/0.1.2Gerätedateien eines Pfads entfernen (Karteileichen)
rmsf -a /dev/dsk/c5t0d1Gerät über Gerätedatei entfernen
lssf /dev/rdsk/c0t0d0Treiber, Hardware-Pfad und Instanz einer Gerätedatei
lssf /dev/rdisk/disk12Dasselbe für ein persistentes DSF
diskinfo /dev/rdsk/c0t0d0Größe, Hersteller, Typ einer Platte
diskinfo -v /dev/rdisk/disk12Ausführlich inkl. Blockgröße und Rotationsdaten
olrad -qPCI-Slot-Status für Online-Add/Replace
olrad -c <slot> / olrad -a <slot>Slot abschalten (Karte tauschen) / wieder hinzufügen

scsimgr & agile Verwaltung (nur 11.31)

scsimgr get_info -D /dev/rdisk/disk12Alles zu einer LUN: WWID, Pfade, Zustand, Fehlerzähler
scsimgr get_attr -D /dev/rdisk/disk12 -a wwidWeltweit eindeutige ID (Mapping zum Storage-Array)
scsimgr lun_map -D /dev/rdisk/disk12Alle Lunpaths dieser LUN mit Status
scsimgr get_stat -D /dev/rdisk/disk12I/O- und Fehlerstatistik der LUN
scsimgr -p get_attr -a wwid -D /dev/rdisk/disk12Nur den Wert ausgeben (skriptfreundlich)
scsimgr disable -D /dev/rdisk/disk12LUN offline nehmen (enable = wieder aktiv)
scsimgr replace_wwid -D /dev/rdisk/disk12Nach Plattentausch: neue WWID auf altes DSF binden
scsimgr set_attr -D /dev/rdisk/disk12 -a load_bal_policy=round_robinLastverteilung der LUN ändern
scsimgr save_attr -D /dev/rdisk/disk12Attributänderung reboot-fest machen
scsimgr get_attr -a leg_mpath_enableIst native Multipathing für Legacy-DSF aktiv?
io_redirect_dsf -d /dev/rdisk/disk12 -n /dev/rdisk/disk30DSF-Namen umhängen – rettet LVM nach Plattentausch
rmsf -H <lunpath>Verwaisten Lunpath nach SAN-Umbau entfernen

Fibre Channel

ioscan -fnC fcFC-Adapter und ihre Gerätedateien (/dev/fcd0, /dev/td0)
fcmsutil /dev/fcd0Linkstatus, Topologie, Speed, N_Port-ID und WWNN/WWPN
fcmsutil /dev/fcd0 | grep -i "N_Port Port World Wide Name"WWPN für das SAN-Zoning ablesen
fcmsutil /dev/fcd0 vpdFirmware-/EFI-Stand des HBA
fcmsutil /dev/fcd0 statFehlerzähler: Link Failures, Loss of Sync, CRC-Fehler
fcmsutil /dev/fcd0 get remote allAlle sichtbaren Storage-Ports (Zoning-Kontrolle)
fcmsutil /dev/fcd0 resetHBA zurücksetzen (kurze Unterbrechung!)
Legacy vs. Agile (11.31): /dev/dsk/c5t0d1 hängt an Controller, Target und LUN – jeder SAN-Pfad ergibt eine eigene Gerätedatei. Agile DSFs /dev/disk/disk12 / /dev/rdisk/disk12 beschreiben die LUN unabhängig vom Pfad, Multipathing macht der Kernel selbst. Neuanlagen immer mit agilen DSFs – Legacy-DSFs sind in 11.31 nur noch aus Kompatibilität vorhanden und in Nachfolgeversionen entfallen.
Neue SAN-LUN sichtbar machen: Zoning/Mapping im SAN → ioscan -fnC fc zur Kontrolle → ioscan -N -funC disk (bzw. ioscan -fnC disk) → insf -e → ioscan -m dsf für die Zuordnung → diskinfo zur Größenkontrolle.
11i v2: Kein scsimgr, kein agile Addressing, kein natives Multipathing. Multipathing dort über PVLinks (mehrere /dev/dsk-Pfade im vgextend) oder Securepath/AutoPath – Reihenfolge im vgextend bestimmt den Primary Path.

🗃LVM – Physical Volumes & Volume Groups

Physical Volumes

pvcreate /dev/rdisk/disk12Platte für LVM initialisieren (immer Raw-Device!)
pvcreate -f /dev/rdisk/disk12Erzwingen, wenn schon LVM-Struktur vorhanden war
pvcreate -B /dev/rdsk/c1t2d0Bootfähige Platte (Platz für LIF/BDRA reservieren)
pvdisplay /dev/disk/disk12VG, PE-Größe, Total/Free PE, Status
pvdisplay -v /dev/disk/disk12Zusätzlich die PE-Belegungskarte je LV
pvdisplay -l /dev/disk/disk12Nur die Liste der LVs auf dieser Platte
pvchange -a n /dev/dsk/c5t0d1PV-Pfad deaktivieren (PVLinks: vor SAN-Wartung)
pvchange -a y /dev/dsk/c5t0d1Pfad wieder aktivieren
pvchange -S y -z y /dev/dsk/c5t0d1Autoswitch auf Primary Path zurück aktivieren
pvmove /dev/dsk/c5t0d1 /dev/dsk/c6t0d1Alle Daten online auf eine andere Platte verschieben
pvmove -n /dev/vgdata/lvdata /dev/disk/disk12 /dev/disk/disk13Nur ein LV verschieben
pvremove /dev/rdisk/disk12LVM-Kennung von der Platte entfernen
strings /etc/lvmtabKlassiker: VG-zu-PV-Zuordnung im Klartext lesen
strings /etc/lvmtab_p11.31: dasselbe für VGs mit persistenten DSFs

Volume Groups

mkdir /dev/vgdata; mknod /dev/vgdata/group c 64 0x010000Gruppendatei vor vgcreate anlegen (VG-Version 1.0)
ll /dev/*/groupBelegte Minor-Nummern prüfen – müssen eindeutig sein!
vgcreate /dev/vgdata /dev/disk/disk12VG anlegen (Default PE-Size 4 MB, max. 16 PVs)
vgcreate -s 16 -p 32 -e 8000 /dev/vgdata /dev/disk/disk12PE-Size 16 MB, max. 32 PVs, max. 8000 PE je PV
vgcreate -V 2.2 -s 8 -S 4t /dev/vgdata /dev/disk/disk1211.31: VG-Version 2.x mit max. VG-Größe 4 TB
vgdisplayAlle aktiven VGs mit Kennzahlen
vgdisplay -v /dev/vgdataInkl. aller LVs und PVs – wichtigstes Diagnosekommando
vgdisplay /dev/vgdata | grep -e "Free PE" -e "PE Size"Freien Platz und PE-Größe schnell ablesen
vgextend /dev/vgdata /dev/disk/disk13Platte zur VG hinzufügen
vgextend /dev/vgdata /dev/dsk/c5t0d1 /dev/dsk/c6t0d1PVLinks: erster Pfad = Primary, zweiter = Alternate (11.23)
vgreduce /dev/vgdata /dev/disk/disk13Platte entfernen (darf keine PE belegt haben)
vgreduce -f /dev/vgdataFehlende/defekte PVs aus der VG entfernen
vgremove /dev/vgdataLeere VG löschen (danach Gruppendatei löschen)
vgchange -a y /dev/vgdataVG aktivieren
vgchange -a n /dev/vgdataVG deaktivieren (alle FS vorher umounten)
vgchange -a e /dev/vgdataExklusiv aktivieren – Serviceguard-Paket-VG
vgchange -a s /dev/vgdataShared aktivieren (SLVM, mehrere Knoten gleichzeitig)
vgchange -c y /dev/vgdataVG als clusterfähig markieren (Serviceguard)
vgchange -a y -q n /dev/vgdataOhne Quorum aktivieren (eine Mirror-Hälfte fehlt)
vgscan -v/etc/lvmtab aus den PVs rekonstruieren
vgscan -N -v11.31: /etc/lvmtab_p mit persistenten DSFs neu aufbauen
vgsync /dev/vgdataAlle stale Extents der VG synchronisieren
lvmadm -l11.31: Grenzwerte aller VG-Versionen (1.0 / 2.0 / 2.1 / 2.2)
lvmadm -l /dev/vgdataVersion und Limits einer konkreten VG

Sichern, Umziehen, Vergrößern

vgcfgbackup /dev/vgdataMetadaten sichern → /etc/lvmconf/vgdata.conf
vgcfgrestore -l -n /dev/vgdataInhalt der Sicherung anzeigen (Vorschau)
vgcfgrestore -n /dev/vgdata /dev/rdisk/disk12Metadaten auf eine Ersatzplatte zurückschreiben
vgexport -v -s -p -m /tmp/vgdata.map /dev/vgdataPreview: Mapfile erzeugen, VG bleibt erhalten
vgexport -v /dev/vgdataVG aus /etc/lvmtab entfernen (Daten bleiben)
vgimport -v -s -m /tmp/vgdata.map /dev/vgdataVG auf anderem Knoten importieren (-s = per VGID suchen)
vgimport -v -N -s -m /tmp/vgdata.map /dev/vgdata11.31: mit persistenten DSFs importieren
vgmodify -r -a -E /dev/vgdataReview: passt eine vergrößerte LUN in die VG? (DLE)
vgmodify -a -E /dev/vgdataOnline Dynamic LUN Expansion durchführen
vgmodify -v -t /dev/vgdataOffline-Analyse: mögliche max_pv/max_pe-Werte anzeigen
vgmodify -n -p 64 /dev/vgdatamax. PV-Anzahl der VG erhöhen (VG deaktiviert)
Goldene Regel: Nach jeder LVM-Änderung (vgextend, lvcreate, lvextend, pvmove …) sofort vgcfgbackup /dev/vgXX laufen lassen. Ohne aktuelles /etc/lvmconf/*.conf ist ein Plattenausfall kaum reparabel. Und: /etc/lvmconf mit ins Backup nehmen.
PE-Size-Falle (VG-Version 1.0): Je PV sind maximal 65535 Extents möglich, Default sind 1016 (über -e erhöhbar). Bei 4 MB PE-Size ergibt das nur ca. 4 GB nutzbar, mit -e 65535 ca. 256 GB. Für 1-TB-LUNs also vgcreate -s 16 -e 65535 oder besser VG-Version 2.x. Die PE-Size lässt sich nachträglich nicht ändern – nur durch Neuanlage der VG.
Minor-Nummer: Die Zahl in mknod ... c 64 0x0N0000 muss systemweit eindeutig sein und passt zur VG-Nummer. Bei VG-Version 2.x legt vgcreate die Gruppendatei selbst an. In Serviceguard-Clustern gleiche Minor-Nummern auf allen Knoten verwenden, sonst schlägt der Import fehl.

🧩LVM – Logical Volumes & Mirroring

lvcreate -L 10240 -n lvdata /dev/vgdataLV mit 10240 MB anlegen → /dev/vgdata/lvdata
lvcreate -l 640 -n lvdata /dev/vgdataGröße in Extents (LE) statt MB angeben
lvcreate -L 10240 -n lvdata -D y -s g /dev/vgdataDistributed Allocation, Strict = Verteilung über PVs
lvcreate -L 10240 -m 1 -n lvdata /dev/vgdataGespiegeltes LV anlegen (MirrorDisk/UX erforderlich)
lvcreate -n lvdata /dev/vgdataLV ohne Größe – danach lvextend mit Zielplatte
lvdisplay /dev/vgdata/lvdataGröße, LE/PE, Mirror-Kopien, Allocation, Stale-Zähler
lvdisplay -v /dev/vgdata/lvdataKomplettes LE-zu-PE-Mapping inkl. Mirror
lvextend -L 20480 /dev/vgdata/lvdataAuf 20480 MB vergrößern (absolute Zielgröße!)
lvextend -l 1280 /dev/vgdata/lvdataAuf 1280 Extents vergrößern
lvextend -L 20480 /dev/vgdata/lvdata /dev/disk/disk13Nur auf einer bestimmten Platte wachsen lassen
lvreduce -L 10240 /dev/vgdata/lvdataLV verkleinern – nur nach FS-Verkleinerung, Datenverlustgefahr
lvremove /dev/vgdata/lvdataLV löschen (Filesystem vorher umounten)
lvchange -C y /dev/vgdata/lvdataContiguous Allocation (nötig für Boot-/Swap-LVs)
lvchange -M n -c n /dev/vgdata/lvdataMirror Write Cache aus (Raw-DB-LVs, schneller aber Resync nötig)
lvchange -r N /dev/vgdata/lvdataBad Block Relocation abschalten (SAN-LUNs üblich)
lvchange -t 30 /dev/vgdata/lvdataI/O-Timeout in Sekunden setzen
/dev/vgdata/lvdataBlock-Device (mount) – /dev/vgdata/rlvdata = Raw

Mirroring (MirrorDisk/UX)

swlist -l product | grep -i mirrorIst MirrorDisk/UX (B2491BA) überhaupt lizenziert/installiert?
lvextend -m 1 /dev/vg00/lvol3 /dev/dsk/c1t2d0LV auf eine zweite Platte spiegeln
lvextend -m 2 /dev/vgdata/lvdataDreifach-Spiegel (2 zusätzliche Kopien)
lvreduce -m 0 /dev/vg00/lvol3 /dev/dsk/c1t2d0Spiegel wieder entfernen (Kopie auf dieser Platte)
lvsync /dev/vg00/lvol3Stale Extents eines LV synchronisieren
vgsync /dev/vg00Alle LVs einer VG synchronisieren
lvdisplay -v /dev/vg00/lvol3 | grep -i staleStale-Kontrolle – muss nach Sync 0 sein
vgdisplay -v /dev/vg00 | grep -i staleStale-Zähler der gesamten VG
# vg00 komplett spiegeln (Integrity, agile DSFs)
# 1. Zielplatte identisch partitionieren und bootfaehig machen
idisk -wf /tmp/partitionfile /dev/rdisk/disk2   # Layout wie Bootplatte
insf -eC disk
pvcreate -B /dev/rdisk/disk2_p2
mkboot -e -l /dev/rdisk/disk2
vgextend /dev/vg00 /dev/disk/disk2_p2
# 2. Alle LVs der vg00 der Reihe nach spiegeln
for lv in 1 2 3 4 5 6 7 8
do
  lvextend -m 1 /dev/vg00/lvol$lv /dev/disk/disk2_p2
done
# 3. Bootinformationen und Bootpfad nachziehen
lvlnboot -R /dev/vg00
lvlnboot -v /dev/vg00                # Boot/Root/Swap/Dump pruefen
setboot -a <HW-Pfad der 2. Platte>   # alternativen Bootpfad setzen
setboot                              # kontrollieren
vgcfgbackup /dev/vg00
Reihenfolge beachten: Beim Spiegeln der vg00 muss lvol1 (/stand) und das Swap-/Dump-LV contiguous bleiben. Nach dem Spiegeln zwingend lvlnboot -R und setboot -a – sonst startet das System beim Ausfall der ersten Platte nicht, obwohl die Daten vorhanden sind.
Kein Online-Verkleinern: lvreduce schneidet das LV hart ab. Erst das Filesystem verkleinern (VxFS: fsadm -b mit OnlineJFS), dann das LV – und in beiden Fällen vorher ein Backup ziehen.

💾VxVM – Veritas Volume Manager

vxdctl modeLäuft vxconfigd und ist er enabled?
vxdctl enableKonfigurationsdaemon neu einlesen (nach neuen Platten)
vxdctl licenseAktive Lizenzen/Features (vxlicrep für Details)
vxdisk listAlle Platten mit DG-Zuordnung und Status
vxdisk -o alldgs listAuch deportierte Diskgroups anzeigen
vxdisk list disk_1Details einer Platte (Public/Private Region, Pfade)
/etc/vx/bin/vxdisksetup -i disk_5Platte für VxVM initialisieren
/etc/vx/bin/vxdiskunsetup -C disk_5VxVM-Kennung entfernen
vxdg listAlle importierten Diskgroups
vxdg init datadg datadg01=disk_5Neue Diskgroup mit erster Platte anlegen
vxdg -g datadg adddisk datadg02=disk_6Platte zur Diskgroup hinzufügen
vxdg -g datadg rmdisk datadg02Platte entfernen
vxdg -g datadg freeFreien Platz je Platte der Diskgroup
vxdg deport datadg / vxdg import datadgDiskgroup abgeben / auf anderem Host übernehmen
vxdg -tfC import datadgImport erzwingen und Host-ID lösen (nach Crash)
vxdg destroy datadgDiskgroup endgültig auflösen
vxassist -g datadg make vol01 10gVolume anlegen → /dev/vx/dsk/datadg/vol01
vxassist -g datadg make vol01 10g layout=mirrorGespiegeltes Volume (layout=stripe ncol=4 für Striping)
vxassist -g datadg maxsizeWie groß könnte ein neues Volume maximal werden?
vxassist -g datadg growto vol01 20gAuf Zielgröße vergrößern
vxassist -g datadg growby vol01 5gUm einen Betrag vergrößern
vxassist -g datadg mirror vol01Spiegel nachträglich anhängen
vxprint -g datadg -htStruktur: Volumes, Plexes, Subdisks – Standard-Überblick
vxprint -AhtAlle Diskgroups auf einmal
vxinfo -g datadgVolume-Zustand (Started / Unstartable)
vxvol -g datadg startallAlle Volumes starten (start vol01 für eines)
vxtask listLaufende Hintergrundoperationen (Resync, Relayout)
vxedit -g datadg -rf rm vol01Volume rekursiv löschen
vxdmpadm listctlr allDMP: Controller und ihr Zustand
vxdmpadm getsubpaths dmpnodename=disk_5Alle Pfade zu einer LUN mit Status
vxdmpadm listenclosure allErkannte Storage-Arrays
LVM oder VxVM? Beide sind auf HP-UX parallel nutzbar, aber nie auf derselben Platte. LVM ist Pflicht für vg00 (Boot). VxVM lohnt sich für Striping, Online-Relayout und große Datenbank-Layouts. Die Base-Variante (Base-VxVM) ist im OE enthalten, Features wie Striping/Mirroring über mehrere Plexes brauchen eine Full-Lizenz – mit vxdctl license prüfen.
Pfade: Block-Device /dev/vx/dsk/<dg>/<vol>, Raw-Device /dev/vx/rdsk/<dg>/<vol>. Konfigurationssicherung mit vxprint -g datadg -hmQq > /etc/vx/datadg.cfg vor jedem Change.

📁Filesysteme (VxFS/JFS) & Swap

Anzeigen & Mounten

bdfBelegung aller FS in KB – das df von HP-UX
bdf -lNur lokale FS (hängende NFS-Mounts blockieren bdf sonst)
bdf -iInode-Auslastung (VxFS vergibt Inodes dynamisch)
bdf /dataNur ein Filesystem
df -k /dataFunktioniert, gibt aber je Aufruf nur ein FS – bdf bevorzugen
mountAlle gemounteten FS mit Optionen
mount -vAusführlich mit Typ und Mountzeit
mount -aAlle FS aus /etc/fstab mounten
mountall -lNur lokale FS aus /etc/fstab mounten
mount -F vxfs /dev/vgdata/lvdata /dataEinzelnes VxFS mounten
mount /dataMounten anhand des /etc/fstab-Eintrags
mount -F vxfs -o largefiles /dev/vgdata/lvdata /dataDateien > 2 GB erlauben
mount -F vxfs -o delaylog,nodatainlog /dev/vgdata/lvdata /dataTypische Performance-Optionen für Anwendungsdaten
mount -F vxfs -o mincache=direct,convosync=direct ...Direct I/O – klassisch für Oracle-Datenfiles
mount -F vxfs -o cio /dev/vgdata/lvdata /dataConcurrent I/O (VxFS 5.x + OnlineJFS)
mount -o remount /dataOptionen ändern ohne Aushängen (z. B. ro → rw)
umount /dataAushängen (umount -f erzwingen, nur im Notfall)
umount -aAlle nicht-System-FS aushängen
fuser -cu /dataWelche PIDs/User blockieren das Filesystem?
fuser -cku /dataAlle Zugriffe hart beenden – dann umount
/etc/fstabMount-Tabelle; /etc/mnttab = aktuell gemountet

Anlegen, Prüfen, Vergrößern

newfs -F vxfs -o largefiles /dev/vgdata/rlvdataVxFS anlegen (Raw-Device!) – nutzt die LV-Größe
newfs -F vxfs -o largefiles,bsize=8192 /dev/vgdata/rlvdataMit größerer Blockgröße für große Dateien
mkfs -F vxfs -o largefiles /dev/vgdata/rlvdataGleichwertig zu newfs
mkfs -F vxfs -m /dev/vgdata/rlvdataZeigt den mkfs-Befehl, mit dem das FS erzeugt wurde
newfs -F hfs /dev/vg00/rlvol1HFS – auf 11.11/11.23 Pflicht für /stand
fstyp -v /dev/vgdata/rlvdataFS-Typ und Layout-Version ermitteln
fsck -F vxfs -y /dev/vgdata/rlvdataLog-Replay/Reparatur (FS muss ausgehängt sein!)
fsck -F vxfs -o full,nolog -y /dev/vgdata/rlvdataVollprüfung ohne Intent Log (nach schwerem Fehler)
extendfs -F vxfs /dev/vgdata/rlvdataFS auf die volle LV-Größe ausdehnen – offline
fsadm -F vxfs -b 41943040 /dataOnline vergrößern: Zielgröße in Sektoren (512 Byte) = 20 GB
fsadm -F vxfs -b 20971520 /dataOnline verkleinern (gleicher Schalter, kleinerer Wert)
fsadm -F vxfs -E /dataReport: Fragmentierung der Extents prüfen
fsadm -F vxfs -e /dataExtents defragmentieren (online)
fsadm -F vxfs -D /dataReport: Fragmentierung der Verzeichnisse
fsadm -F vxfs -d /dataVerzeichnisse defragmentieren
fsadm -F vxfs -o largefiles /dataBestehendes FS auf largefiles umstellen
vxupgrade /dataAktuelle Disk-Layout-Version anzeigen
vxupgrade -n 7 /dataLayout-Version hochziehen (nur vorwärts möglich!)
vxtunefs -p /dataVxFS-Tunables des FS anzeigen (read_pref_io, max_direct_iosz)
/etc/vx/tunefstabVxFS-Tunables reboot-fest hinterlegen
swlist -l product | grep -i -e OnlineJFS -e VXFSIst OnlineJFS (Advanced VxFS) lizenziert?

Platz finden

du -sk /var/* | sort -rn | head -20Größte Unterverzeichnisse in KB
find /var -xdev -size +100000c -exec ll {} \; | sort -k5 -rn | headGroße Dateien ohne Mount-Grenzen zu überschreiten
find /var -xdev -mtime -1 -size +10000cWas ist zuletzt gewachsen?
fuser -d /dataProzesse, die gelöschte aber offene Dateien halten
ll /var/adm/sw/*.log /var/adm/syslog/*.logKlassische Platzfresser in /var

Swap

swapinfo -tamAlles in MB mit Summenzeile – Standardkommando
swapinfo -dfmNur Device-Swap bzw. Filesystem-Swap
swapinfo -mqNur die Gesamtgröße ausgeben (für Skripte)
lvcreate -L 4096 -C y -r n -n swaplv /dev/vgdataSwap-LV contiguous und ohne Bad-Block-Relocation anlegen
swapon /dev/vgdata/swaplvDevice-Swap sofort aktivieren
swapon -p 1 /dev/vgdata/swaplvMit Priorität (0 = höchste; gleiche Prio = Interleaving)
swapon -aAlle Swap-Einträge aus /etc/fstab aktivieren
swapon -m 100 -l 2000 -r 500 /swapdirFilesystem-Swap in einem Verzeichnis (Notlösung)
/dev/vgdata/swaplv ... swap pri=1 0 0fstab-Zeile für dauerhaften Device-Swap
vmstat 5 5Spalten pi/po dauerhaft > 0 = echter Speichermangel
Kein swapoff auf HP-UX! Ein aktivierter Device-Swap lässt sich nur durch Entfernen der fstab-Zeile und einen Reboot wieder loswerden. Deshalb Swap-LVs niemals „mal testweise“ aktivieren und die Prioritäten vorher planen.
Faustregeln: Swap mindestens so groß wie der RAM, bei < 8 GB RAM eher 1,5–2×. Device-Swap gleicher Priorität auf mehrere Platten verteilen (Interleaving). Filesystem-Swap ist deutlich langsamer und nur als Notreserve gedacht. Pseudo-Swap (swapmem_on=1) lässt RAM als Reservierung mitzählen.
VxFS online vergrößern setzt OnlineJFS voraus. Ohne die Lizenz bleibt nur umount + extendfs. Größenangabe bei fsadm -b erfolgt in Sektoren à 512 Byte – also GB × 1024 × 1024 × 2. Zur Kontrolle vorher lvdisplay (LV-Größe) und bdf vergleichen.

⚙Prozesse, Jobs & IPC

ps -efAlle Prozesse im Full-Format
ps -elfZusätzlich Priorität, Nice-Wert und Wait-Channel
ps -fu oracleNur Prozesse eines Users
ps -ef | grep -v grep | grep sshdProzess gezielt suchen
UNIX95= ps -eo pid,ppid,pcpu,vsz,argsPOSIX-Modus: freie Spaltenauswahl
UNIX95= ps -eo "pcpu pid args" | sort -rn | head -20Top-CPU-Verbraucher
UNIX95= ps -eo "vsz pid args" | sort -rn | head -20Top-Speicherverbraucher
UNIX95= ps -eo "etime pid user args" | sort -r | headAm längsten laufende Prozesse
UNIX95= ps -eo "pid ppid pri nice args" | grep -i javaPrioritäten einer Prozessgruppe prüfen
kill -TERM <pid> / kill -9 <pid>Sauber beenden / hart abschießen
kill -HUP <pid>Konfiguration neu einlesen (syslogd, inetd, named)
kill -lAlle Signalnamen und -nummern
nice -n 10 kommandoMit niedrigerer Priorität starten
renice -n 5 -p <pid>Priorität eines laufenden Prozesses ändern
nohup script.sh > /tmp/log 2>&1 &Abgekoppelt im Hintergrund starten
jobs / fg %1 / bg %1Shell-Jobverwaltung
timex kommando / time kommandoLaufzeit und Ressourcenverbrauch messen
tusc -f -p <pid>Systemcall-Trace (aus dem HP-UX Porting Archive)
gdb -p <pid> / adbDebugger anhängen (Stack-Trace bei Hängern)
ulimit -aAktuelle Limits der Shell (Dateigröße, Stack, Core)
chatr /opt/app/bin/progProgrammattribute/Bibliothekspfade eines Binaries anzeigen

Shared Memory & Semaphore

ipcs -aAlle IPC-Ressourcen (Shared Memory, Semaphore, Queues)
ipcs -mopShared-Memory-Segmente mit Owner und angehängten PIDs
ipcs -sbSemaphore mit Anzahl
ipcrm -m <shmid>Verwaistes Segment entfernen (z. B. nach DB-Crash)
ipcrm -s <semid>Verwaistes Semaphor entfernen
kcusage | grep -i -e shm -e sem11.31: Auslastung der IPC-Tunables prüfen

Zeitgesteuerte Jobs

crontab -l / crontab -eEigene Crontab anzeigen / bearbeiten
crontab -l oracleCrontab eines anderen Users lesen (ohne -u!)
/var/spool/cron/crontabs/Speicherort der Crontabs – mit ins Backup!
/var/adm/cron/logCron-Protokoll: wurde der Job gestartet?
/var/adm/cron/cron.allow, cron.denyWer darf crontab nutzen
/sbin/init.d/cron stop; /sbin/init.d/cron startCron-Daemon neu starten
at now + 2 hoursEinmaligen Job planen (Eingabe mit Ctrl-D beenden)
at -l / at -r <job>Geplante at-Jobs listen / entfernen
/var/adm/cron/at.allow, at.denyBerechtigung für at
UNIX95-Trick: Das Standard-ps von HP-UX kennt kein -o. Erst UNIX95= (leer gesetzt) schaltet POSIX-Verhalten ein und macht ps -eo, ps -H und Sortierung möglich. Achtung: dieselbe Variable ändert auch das Verhalten von df, du und ls – deshalb nur pro Kommando voranstellen, nie global exportieren.
Cron-Falle: Cron startet ohne .profile mit minimalem PATH. Immer absolute Pfade verwenden und PATH, SHLIB_PATH, ORACLE_HOME etc. im Skript selbst setzen. Nach dem Editieren von Crontabs per Editor (statt crontab -e) muss der Cron-Daemon neu gestartet werden.

📊Performance-Analyse

Schnellüberblick

topCPU-Auslastung je Prozessor und Top-Prozesse
top -s 5 -d 1Intervall 5 s, eine Anzeige (skript-/logtauglich)
glanceGlancePlus: bestes Werkzeug auf HP-UX – Tasten c CPU, m Memory, d Disk, n NFS, g Prozessliste
glance -j 5Aktualisierung alle 5 Sekunden
gpmGrafische Variante von GlancePlus (X11)
vmstat 5 10CPU, Memory, Paging – 10 Messungen alle 5 s
vmstat -sKumulierte Zähler seit dem Boot
vmstat -dDisk-Transferstatistik
iostat 5 10Auslastung je Gerät (%util, KB/s, Transfers/s)
uptimeLoad Average der letzten 1/5/15 Minuten

sar

sar -u 5 12CPU-Nutzung: %usr, %sys, %wio, %idle
sar -M -u 5 5CPU-Nutzung je Prozessor
sar -d 5 12Disk: avwait/avserv – die entscheidenden I/O-Werte
sar -b 5 12Buffer-Cache-Trefferquoten
sar -q 5 12Runqueue-Länge und Swap-Queue
sar -v 5 12Kernel-Tabellen (proc, inode, file) gegen die Limits
sar -w 5 12Swapping-/Context-Switch-Aktivität
sar -A 5 5Alle Reports auf einmal
sar -o /tmp/sar.bin 60 60Binär aufzeichnen für spätere Auswertung
sar -f /var/adm/sa/sa18 -uAufzeichnung vom 18. des Monats auswerten
sar -f /tmp/sar.bin -s 09:00 -e 11:00 -dZeitfenster aus einer Aufzeichnung herausziehen
/usr/lbin/sa/sa1, sa2Sammelskripte – in der root-Crontab aktivieren

Speicher & Kernel

swapinfo -tamReservierter und belegter Swap (Reserve-Spalte beachten!)
machinfo | grep -i memoryPhysischer Speicher (Integrity)
kcusage -w 8011.31: Kernel-Ressourcen über 80 % Auslastung
kctune filecache_max filecache_min11.31: Größe des Filecache prüfen
/usr/contrib/bin/kmeminfoDetaillierte Kernel-Speicheraufteilung (Contrib-Tool)
vxfsstat -b /dataVxFS-Buffer-/Inode-Cache-Trefferquoten
mpsched -sProzessor-/Locality-Topologie (Cells, SLDs)
mpsched -l <ldom> kommandoProzess an eine Locality Domain binden

Reporting & Tiefenanalyse

/opt/perf/bin/mwa start / stopOV Performance Agent (MeasureWare) starten/stoppen
/opt/perf/bin/perfstatStatus aller Performance-Agent-Prozesse
/opt/perf/bin/extract -xp -f /tmp/report.txtDaten aus dem Logfile-Satz exportieren
/opt/perf/bin/utility -xsLogfile-Satz prüfen und Größe verwalten
/var/opt/perf/datafiles/Rohdaten von scopeux (logglob, logproc, logdev)
caliper fprof -- /opt/app/bin/progIntegrity: Funktionsprofil einer Anwendung
caliper cpu -- /opt/app/bin/progCPU-Zyklen/Stalls messen
netstat -i; lanadmin -g mibstats 0Netz-Fehlerzähler als Performance-Indiz
nfsstat -c; nfsstat -mNFS-Client-Statistik und Mount-Antwortzeiten
%wio richtig lesen: Ein hoher %wio in sar -u bedeutet nicht automatisch ein Plattenproblem – entscheidend sind avwait und avserv aus sar -d. Als Faustwert: avserv bei SAN-LUNs < 10 ms, avwait nahe 0. Steigt avwait, ist die Queue zu tief oder die LUN überlastet.
Filecache bei Datenbanken: Auf 11.31 belegt der Filecache per Default bis zu 50 % des RAM. Bei Oracle/SAP mit eigenem Cache kctune filecache_max=10 filecache_min=5 setzen – sonst konkurrieren beide Caches. Auf 11.23 entsprechend dbc_max_pct.

🌐Netzwerk – TCP/IP & LAN

Interfaces anzeigen

lanscanAlle LAN-Karten: Hardware-Pfad, MAC, Crd In#, PPA, Name
lanscan -vAusführlich inkl. Treiber und Encapsulation
lanscan -qNur PPA-Nummern (auch APA-Gruppenzuordnung)
ioscan -funC lanLAN-Hardware mit Gerätedateien
ifconfig lan0IP, Netmask, Broadcast, Status eines Interface
netstat -inAlle Interfaces numerisch mit Paket-/Fehlerzählern
netstat -rnRouting-Tabelle numerisch
netstat -an | grep LISTENLauschende Ports
netstat -an | grep 1521Verbindungen zu einem bestimmten Port
netstat -p tcpTCP-Protokollstatistik (Retransmits, Resets)
netstat -sStatistik aller Protokolle
arp -a / arp -d 10.0.0.5ARP-Cache anzeigen / Eintrag löschen

Konfigurieren

ifconfig lan0 10.0.0.10 netmask 255.255.255.0 upIP temporär setzen (nach Reboot weg!)
ifconfig lan0 down / upInterface deaktivieren / aktivieren
ifconfig lan0:1 10.0.0.11 netmask 255.255.255.0 upZweite IP (Alias) auf demselben Interface
/etc/rc.config.d/netconfDauerhafte IP-Konfiguration: INTERFACE_NAME, IP_ADDRESS, SUBNET_MASK, ROUTE_DESTINATION, ROUTE_GATEWAY
/etc/rc.config.d/netconf-ipv6IPv6-Konfiguration
/sbin/init.d/net stop; /sbin/init.d/net startNetzkonfiguration neu einlesen (Verbindungsabbruch!)
set_parms hostnameHostname dauerhaft ändern (Menu, passt alle Dateien an)
set_parms ip_addressPrimäre IP-Adresse dauerhaft ändern
set_parms addl_netwrkWeitere Netzparameter (Gateway, DNS, Domain)
set_parms timezoneZeitzone setzen (schreibt /etc/TIMEZONE)
route add default 10.0.0.1 1Default-Route temporär (letzte Zahl = Hop Count!)
route add net 192.168.5.0 netmask 255.255.255.0 10.0.0.254 1Statische Route hinzufügen
route delete default 10.0.0.1Route entfernen

11.31: nwmgr – das neue LAN-Werkzeug

nwmgrÜbersicht aller Interfaces mit Speed/Duplex/Status
nwmgr -c lan0Informationen zu einem Interface
nwmgr -v -c lan0Ausführlich (Treiber, MAC, MTU, Flow Control)
nwmgr -g -A all -c lan0Alle unterstützten Attribute mit Werten auslesen
nwmgr -s -A speed=1000fd -c lan0Speed/Duplex setzen (--saved für reboot-fest)
nwmgr -s -A mtu=9000 -c lan0Jumbo Frames aktivieren (Switch muss mitspielen)
nwmgr --stats -c lan0Statistik/Fehlerzähler des Interface
nwmgr -S apaAuto Port Aggregation: alle Trunks anzeigen
nwmgr -c lan900 -S apaDetails einer APA-Gruppe (Mitglieder, Modus)

Legacy-Werkzeuge (11.23 und älter, in 11.31 weiterhin nutzbar)

lanadmin -x 0Speed/Duplex/Autoneg der PPA 0 anzeigen
lanadmin -X 100FD 0Speed/Duplex fest setzen
lanadmin -g mibstats 0MIB-Statistik: Kollisionen, CRC-, Frame-Fehler
lanadmin -m 0MAC-Adresse (Station Address) der PPA
lanadmin -c 0Statistikzähler zurücksetzen
linkloop -i 0 0x00306E1234ABLayer-2-Test zur MAC-Adresse – prüft Kabel/Switch ohne IP
lanqueryconf -s; lanapplyconfAPA-Konfiguration erfragen und anwenden
/etc/rc.config.d/hp_apaconfAPA-Trunk-Definitionen (HP_APA_*)

Tuning & Diagnose

ndd -get /dev/tcp tcp_conn_request_maxNetzwerk-Tunable lesen
ndd -set /dev/tcp tcp_conn_request_max 4096Tunable sofort setzen (nicht reboot-fest)
ndd -h tcp_conn_request_maxBeschreibung, Default und Wertebereich
ndd -get /dev/ip ip_forwardingIP-Forwarding-Status (0 = aus)
/etc/rc.config.d/nddconfndd-Werte reboot-fest hinterlegen; ndd -c liest sie ein
ping 10.0.0.1 64 33 Pakete à 64 Byte senden
traceroute 10.0.0.1Pfad zum Ziel verfolgen
nettl -status allStatus von Tracing und Logging aller Subsysteme
nettl -start / nettl -stopNetz-Tracing/Logging-Subsystem starten/stoppen
nettl -tn pduin pduout -e ns_ls_ip -f /tmp/tracePaketmitschnitt starten → /tmp/trace.TRC0
nettl -tf -e allTracing wieder abschalten
netfmt -N -l -f /tmp/trace.TRC0 > /tmp/trace.txtMitschnitt lesbar aufbereiten
netfmt -f /var/adm/nettl.LOG000 | moreNetzwerk-Logdatei formatieren (Linkdown, Fehler)
Dauerhaft vs. temporär: ifconfig und route wirken nur bis zum Reboot. Dauerhaft wird eine Konfiguration ausschließlich über /etc/rc.config.d/netconf (oder set_parms). Die Variablen sind indiziert: INTERFACE_NAME[0], IP_ADDRESS[0] … – Lücken in der Nummerierung führen dazu, dass folgende Einträge ignoriert werden.
Hop Count nicht vergessen: route add auf HP-UX erwartet als letztes Argument den Hop Count. route add default 10.0.0.1 ohne die 1 schlägt fehl oder legt eine unbrauchbare Route an.
Speed/Duplex: Fest eingestellte Werte auf nur einer Seite sind die häufigste Ursache für Duplex-Mismatch mit massenhaft CRC-Fehlern in lanadmin -g mibstats. Entweder beide Seiten auf Autonegotiation oder beide fest.

📡NFS, Namensauflösung & Dienste

NFS-Server

/etc/rc.config.d/nfsconfSchalter: NFS_SERVER=1, NFS_CLIENT=1, AUTOMOUNT=1, AUTOFS=1, NFS_VERSION
/sbin/init.d/nfs.server start | stopNFS-Serverdienste starten/stoppen
/etc/dfs/dfstab11i v3: Share-Definitionen (eine share-Zeile je FS)
share -F nfs -o rw=host1:host2 /export/data11i v3: FS sofort freigeben
shareall11i v3: alle Einträge aus /etc/dfs/dfstab aktivieren
share11i v3: aktive Shares anzeigen (unshare /export/data = zurücknehmen)
/etc/exports11i v2 und älter: Exportliste
exportfs -aAlle Einträge aus /etc/exports exportieren
exportfs -vAktive Exporte mit Optionen anzeigen
exportfs -u /export/dataEinen Export zurücknehmen
showmount -aWelche Clients haben was gemountet
nfsstat -sServer-Statistik (badcalls, dupreqs)

NFS-Client & Automounter

showmount -e nfssrvVerfügbare Exporte eines Servers anzeigen
mount -F nfs nfssrv:/export/data /mntTemporär mounten
mount -F nfs -o rw,hard,intr,vers=3 nfssrv:/data /mntMit typischen Optionen
mount -F nfs -o vers=4 nfssrv:/data /mntNFSv4 (erst ab 11i v3)
nfsstat -cClient-Statistik – Retransmits deuten auf Netz-/Serverproblem
nfsstat -mAntwortzeiten je NFS-Mount (srtt, dev, cur)
nfsstat -zZähler zurücksetzen (vor einer Messung)
rpcinfo -p nfssrvRPC-Dienste des Servers prüfen (rpcbind, nfs, mountd)
/etc/auto_master, /etc/auto_directAutomounter-Maps
/sbin/init.d/autofs start | stopAutoFS neu starten (nach Map-Änderung)
automount -vAutomounter mit Meldungen starten

Namensauflösung & Zeit

/etc/nsswitch.confReihenfolge der Quellen: hosts: files dns nis
/etc/resolv.confNameserver, Domain, Search-Liste
/etc/hostsLokale Namensauflösung
nsquery hosts myhostHP-UX-Spezialität: zeigt, welche Quelle geantwortet hat
nslookup myhostDNS gezielt abfragen
/sbin/init.d/named start | stopLokalen BIND-Server steuern (/etc/named.conf)
/etc/rc.config.d/namesvrsAutostart von NIS/named
/etc/rc.config.d/netdaemonsSchalter export XNTPD=1, NTPDATE_SERVER
/sbin/init.d/xntpd start | stopNTP-Daemon steuern (/etc/ntp.conf)
ntpq -pPeers und Offset anzeigen – ein * markiert die Quelle
ntpdate -u -q timeserverZeitabgleich prüfen, ohne die Uhr zu stellen
date -u; cat /etc/TIMEZONEUTC-Zeit und konfigurierte Zeitzone

inetd, SSH & Transfer

/etc/inetd.confVon inetd gestartete Dienste (telnet, ftp, …)
inetd -cinetd.conf neu einlesen ohne Neustart
inetd -lVerbindungs-Logging in syslog einschalten
/var/adm/inetd.secHost-basierte Zugriffskontrolle je Dienst (allow/deny)
/etc/servicesPort-zu-Dienst-Zuordnung
/sbin/init.d/secsh start | stopHP-UX Secure Shell steuern
/opt/ssh/etc/sshd_configSSH-Server-Konfiguration
ssh-keygen -t rsa -b 4096Schlüsselpaar erzeugen
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keysPublic Key hinterlegen (.ssh 700, Datei 600!)
scp -p datei user@host:/pfad/Kopieren mit Zeitstempel
sendmail -bp; /var/adm/syslog/mail.logMailqueue und Mail-Log prüfen
Große Umstellung in 11i v3: Freigaben laufen über share/shareall und /etc/dfs/dfstab. Auf 11i v2 und älter gilt exportfs mit /etc/exports. Wer aus alten Runbooks kopiert, exportiert auf 11.31 unter Umständen gar nichts – nach jedem Change mit share bzw. exportfs -v kontrollieren.
Hängende NFS-Mounts: Blockieren bdf, df und oft auch shutdown. Erste Hilfe: bdf -l (nur lokal), nfsstat -m für die Antwortzeiten, dann umount -f /mnt. Mounts produktiv immer mit hard,intr oder bg anlegen.

👤User, Gruppen & Security

Benutzer & Gruppen

useradd -u 5001 -g users -G dba -d /home/rene -s /usr/bin/sh -m reneUser anlegen inkl. Home (-m)
useradd -DAktuelle Defaults für useradd anzeigen
usermod -G dba,users reneSekundäre Gruppen setzen (ersetzt die Liste komplett!)
usermod -s /usr/bin/ksh reneLogin-Shell ändern
usermod -l rpfeifer reneLogin-Namen ändern
userdel -r reneUser samt Home-Verzeichnis löschen
groupadd -g 2001 dbaGruppe anlegen
groupmod -n dbagrp dba / groupdel dbaGruppe umbenennen / löschen
passwd renePasswort setzen
passwd -r files reneExplizit im lokalen Repository (statt NIS/LDAP)
id; groups; who am iEigene IDs, Gruppen und Login-Namen
logins -x -l reneAlle Informationen zu einem Login (UID, GID, Passwortstatus)
logins -pAlle Accounts ohne Passwort – Security-Check!
logins -dDoppelt vergebene UIDs finden
pwck; grpckKonsistenzprüfung von /etc/passwd und /etc/group
su - oracleBenutzerwechsel mit vollem Environment
pwconvAuf Shadow-Passwörter umstellen (/etc/shadow)
pwunconvShadow-Passwörter wieder auflösen

Security-Policies

/etc/default/securitySystemweite Policy: MIN_PASSWORD_LENGTH, PASSWORD_MAXDAYS, PASSWORD_HISTORY_DEPTH, NUMBER_OF_LOGINS_ALLOWED, SU_ROOT_GROUP, NOLOGIN
/etc/security.dscNachschlagewerk: alle Attribute mit Wertebereich
userdbget -aAlle per-User-Attribute aus /var/adm/userdb
userdbget -u reneAttribute eines Users
userdbset -u rene PASSWORD_MAXDAYS=90Policy nur für einen User überschreiben
userdbset -d -u rene PASSWORD_MAXDAYSIndividuelle Einstellung entfernen (Systemwert gilt wieder)
userdbckKonsistenz der User-Datenbank prüfen
touch /etc/nologinLogins außer root sperren (Wartungsfenster)

Trusted System (klassisch, 11.11/11.23)

tsconvertSystem in ein Trusted System umwandeln
tsconvert -rZurück auf Standard-Passwortverwaltung
getprpw -m uid,lockout,exptm reneTrusted-Attribute eines Users abfragen
modprpw -k reneGesperrten Account entsperren
modprpw -v -l renePasswort als abgelaufen markieren (Zwangswechsel)
modprdef -m mintm=1,exptm=90System-Defaults für Passwortalter setzen
/tcb/files/auth/<a>/<user>Ablage der Passwort-/Audit-Daten im Trusted System

RBAC (ab 11i v2/v3)

roleadm listAlle definierten Rollen und Zuordnungen
roleadm add dbadminRolle anlegen
roleadm assign rene dbadminRolle einem User zuweisen (revoke = entziehen)
authadm listAutorisierungen (Operation/Objekt-Paare) anzeigen
authadm assign dbadmin hpux.fs.mountAutorisierung an eine Rolle binden
cmdprivadm add cmd=/usr/sbin/mount:op=hpux.fs.mount:privs=BASICROOTKommando für RBAC freischalten
privrun -r dbadmin /usr/sbin/mount /dataKommando in einer Rolle ausführen (statt su)
privrun -lAlle für mich erlaubten privilegierten Kommandos
privedit /etc/fstabDatei mit erhöhten Rechten editieren (revisionssicher)
rbacdbchkRBAC-Datenbanken auf Syntaxfehler prüfen – nach jeder Änderung!
/etc/rbac/roles, auths, role_auth, cmd_priv, user_role
sudo -l; visudoAlternative aus dem Porting Archive (/etc/sudoers)

Rechte & ACLs

chmod 750 datei; chmod g+s verzeichnisRechte setzen / SetGID auf Verzeichnis
chown user:group dateiEigentümer ändern (-R rekursiv)
umask 022Standardrechte für neue Dateien
getacl dateiVxFS-ACL anzeigen
setacl -m user:rene:rwx,group:dba:r-x dateiACL-Einträge hinzufügen/ändern
setacl -d user:rene dateiACL-Eintrag löschen
setacl -f aclfile dateiACL aus Datei übernehmen
setacl -n -m d:user:rene:rwx verzeichnisDefault-ACL für neue Objekte im Verzeichnis
lsacl datei; chacl "rene.%=rwx" dateiHFS-ACLs (alte Syntax, nur auf HFS-Filesystemen)

Überwachung

who -u; wAngemeldete User mit Idle-Zeit
last | head -20; last reneLetzte Anmeldungen (/var/adm/wtmp)
lastb | head -20Fehlgeschlagene Anmeldungen (/var/adm/btmp)
audsys -n -c /.secure/etc/audfile1 -s 5000Auditing einschalten mit Trailfile
audsysAktuellen Audit-Status anzeigen (audsys -f = ausschalten)
audevent -lWelche Events werden protokolliert
audisp /.secure/etc/audfile1 | moreAudit-Trail lesbar ausgeben
swverify \* 2>&1 | grep -i -e checksum -e permissionVeränderte Systemdateien aufspüren
bastille -bHP-UX Bastille: Härtung nach gespeichertem Profil anwenden
Drei Welten: (1) Standard mit /etc/passwd, (2) Standard + Shadow (pwconv), (3) Trusted System mit /tcb. Nur eine davon ist gleichzeitig aktiv. Ab 11i v2 ist die Kombination Shadow + /etc/default/security + /var/adm/userdb der empfohlene Weg – Trusted Systems gelten als Auslaufmodell und vertragen sich schlecht mit Cluster-Software.
Vorsicht bei usermod -G: Die Option setzt die Gruppenliste komplett neu. Bestehende Mitgliedschaften vorher mit id rene sichern, sonst verliert der Account still Berechtigungen. Ebenso: usermod verweigert die Arbeit, solange der User angemeldet ist oder Prozesse laufen.

🚨Fehleranalyse, Logs & Dumps

Logdateien

tail -100 /var/adm/syslog/syslog.logZentrales Systemlog – erste Anlaufstelle bei allem
tail -f /var/adm/syslog/syslog.logLive mitlesen (z. B. während eines Failovers)
/var/adm/syslog/OLDsyslog.logVorherige Generation (Rotation beim Boot)
/var/adm/syslog/mail.logSendmail-Protokoll
/var/adm/rc.logAusgabe aller Startskripte – Boot-Fehler stehen hier
/etc/shutdownlogWer hat wann rebootet, Panic-Meldungen
/var/adm/sw/swagent.logAlle Software-Distributor-Aktionen
/var/adm/cron/logCron-Protokoll
/var/adm/nettl.LOG000Netzwerk-Log (mit netfmt formatieren)
/etc/syslog.confWas wird wohin geloggt (Tabs, keine Leerzeichen!)
kill -HUP $(cat /var/run/syslog.pid)syslogd Konfiguration neu einlesen
dmesgKernel-Meldungspuffer (Platten-, Netz-, Speicherfehler)
dmesg > /tmp/dmesg_$(date +%F_%H%M).txtPuffer wegsichern, bevor er überschrieben wird

Support Tools Manager (STM) & Hardware-Diagnose

cstmSTM auf der Kommandozeile
mstmMenügeführte Variante (Terminal)
xstmGrafische Variante (X11)
cstm> mapAlle Geräte mit Nummer auflisten
cstm> sel dev 5Gerät auswählen (auch sel path 0/0/2/0.1.0)
cstm> info; ilInformation Tool starten und Ergebnis (Information Log) zeigen
cstm> ver; vlVerify Tool starten und Log anzeigen
cstm> exp; explExercise/Expert Tool (nur mit Support abstimmen!)
/var/stm/logs/os/Rohe Hardware-Eventlogs (log1.raw.cur …)
/var/tombstones/ts99PA-RISC: Tombstone der letzten HPMC/Maschinenpanik

EMS & Event-Monitoring

/etc/opt/resmon/lbin/monconfigEMS Hardware Monitors konfigurieren (Menü)
monconfig → (C)heck detailedÜberwachte Ressourcen und Schwellen prüfen
/var/opt/resmon/log/event.logAufgetretene Hardware-Events im Klartext
/var/opt/resmon/log/api.logProtokoll der Monitor-Registrierungen
resls /Verfügbare EMS-Ressourcen durchblättern
evweb eventviewer -L11.31: Events des Event Managers auflisten
evweb subscribe -LBestehende Benachrichtigungs-Abos anzeigen
/opt/sfm/bin/sfmconfig -w -qSystem Fault Management: Status/Modus abfragen

Crash Dumps

crashconf -vAktuelle Dump-Konfiguration und Dump-Devices
crashconf -lVerfügbare Speicherklassen mit Größe
crashconf UNUSEDKlassen ein-/ausschließen (verkürzt die Dumpzeit)
/etc/rc.config.d/crashconfDump-Klassen und -Devices reboot-fest hinterlegen
/etc/rc.config.d/savecrashSAVECRASH=1, SAVECRASH_DIR=/var/adm/crash
savecrash -r -d /var/adm/crashDump vom Dump-Device in ein Verzeichnis retten
/var/adm/crash/crash.0/INDEX, vmunix und Speicherabbilder des letzten Dumps
cat /var/adm/crash/crash.0/INDEXPanic-String und Zeitpunkt – erstes Indiz für den Support
q4 -p /var/adm/crash/crash.0Dump-Analyse (nur mit HP-Support sinnvoll)
lvlnboot -v /dev/vg00 | grep -i dumpIst ein Dump-LV konfiguriert und groß genug?
Erste Schritte bei einer Störung: tail -200 /var/adm/syslog/syslog.log → dmesg → bdf und swapinfo -tam → vgdisplay -v auf Stale/NONE → ioscan -fnC disk auf NO_HW/unclaimed → glance. Bei Hardwareverdacht cstm mit info/il.
Gerätestatus deuten: In ioscan bedeutet CLAIMED alles in Ordnung, UNCLAIMED kein Treiber gebunden, NO_HW das Gerät antwortet nicht mehr (Kabel, Zoning, defekte Platte) und DISABLED wurde administrativ abgeschaltet.
Vor dem HP-Support-Call: print_manifest, swlist -l patch, den Auszug aus syslog.log, /var/adm/crash/crash.0/INDEX und die STM-Logs bereitstellen. Dump-Verzeichnis vorher auf freien Platz prüfen – ein Dump kann so groß wie der RAM werden.

💽Backup, Recovery & Ignite-UX

Systemsicherung mit Ignite-UX

swlist -l bundle | grep -i igniteIst Ignite-UX installiert?
make_tape_recovery -A -I -v -x inc_entire=vg00Bootfähiges Recovery-Band der kompletten vg00
make_tape_recovery -a /dev/rmt/0mn -I -v -x inc_entire=vg00Mit explizitem Bandgerät (no-rewind!)
make_tape_recovery -A -v -x inc_entire=vg00 -x inc_entire=vgdataWeitere VG mit auf das Band nehmen
make_net_recovery -s ignitesrv -A -v -x inc_entire=vg00Recovery-Archiv auf einen Ignite-Server schreiben
make_net_recovery -s ignitesrv -x inc_entire=vg00 -x exclude=/var/tmpVerzeichnisse ausschließen
/opt/ignite/bin/print_manifestSystemsteckbrief – vor dem Restore ausdrucken
/var/opt/ignite/recovery/latest/Client: Protokoll und Konfiguration des letzten Recovery-Lauf
/var/opt/ignite/clients/Server: Archive und Konfiguration je Client
instl_adm -dIgnite-Server: aktuelle Default-Konfiguration anzeigen
/opt/ignite/bin/igniteGrafische Ignite-Server-Oberfläche
-A vs. -i: -A sichert die gesamte Bootplatte/Boot-VG, -I startet den interaktiven Modus zur Auswahlkontrolle. Ein make_*_recovery-Archiv ist kein Datenbackup – es enthält standardmäßig nur die vg00. Anwendungsdaten separat sichern.

fbackup / frecover (HP-UX-eigenes Backup)

fbackup -f /dev/rmt/0m -i /home -vVollsicherung eines Verzeichnisbaums
fbackup -f /dev/rmt/0m -i / -e /tmp -e /var/tmp -vMit Ausschlüssen (-e)
fbackup -f /dev/rmt/0m -g /etc/graphfile -I /tmp/index -vSicherung nach Graph-Datei mit Online-Index
fbackup -0 -f /dev/rmt/0m -g /etc/graphfileLevel-0-Sicherung (-1…-9 = inkrementell)
frecover -I - -f /dev/rmt/0mInhaltsverzeichnis des Bandes ausgeben
frecover -x -i /home/rene -f /dev/rmt/0m -vSelektiver Restore eines Pfads
frecover -r -f /dev/rmt/0mKompletten Backup-Satz zurückschreiben
frecover -X -x -i /home -f /dev/rmt/0mRelativ zum aktuellen Verzeichnis restaurieren (Testrestore!)

Weitere Werkzeuge

vxdump -0 -f /dev/rmt/0m /dataVxFS-Filesystem sichern (Pendant zu dump für HFS)
vxrestore -x -f /dev/rmt/0m ./dateiSelektiver VxFS-Restore (-i = interaktiv)
vxrestore -t -f /dev/rmt/0mInhalt eines vxdump-Archivs listen
dump 0f /dev/rmt/0m /dev/vg00/rlvol1Nur HFS (z. B. /stand)
tar -cvf /backup/etc.tar /etctar-Archiv (-tvf listen, -xvf entpacken)
tar -cvf - /etc | gzip > /backup/etc.tar.gzKomprimiert sichern (HP-UX-tar kennt kein -z)
pax -w -f /backup/data.pax /datapax-Archiv erzeugen (-r = lesen)
find /data -print | cpio -ocv > /backup/data.cpiocpio-Sicherung
cpio -icvdum < /backup/data.cpiocpio-Restore mit Verzeichnisstruktur und Zeitstempeln
dd if=/dev/vgdata/rlvdata of=/backup/lv.dd bs=1024kRaw-Kopie eines LV (Datenbank-Rohdaten)
cp -p; cp -prKopieren unter Beibehaltung von Rechten/Zeitstempeln

Bandlaufwerke

ioscan -funC tapeBandlaufwerke und ihre Gerätedateien
/dev/rmt/0m vs. /dev/rmt/0mnMit / ohne Rewind – für mehrere Sicherungen je Band 0mn
mt -f /dev/rmt/0mn statusStatus und Position des Bandes
mt -f /dev/rmt/0m rewZurückspulen
mt -f /dev/rmt/0mn fsf 1Ein Filemark vorspulen
mt -f /dev/rmt/0m offlBand auswerfen
mt -f /dev/rmt/0m rewofflZurückspulen und auswerfen
Backup-Routine: Vor jedem Change ein make_net_recovery/make_tape_recovery der vg00 plus vgcfgbackup aller VGs und eine Kopie von /etc/lvmconf, /etc/fstab, /etc/rc.config.d, swlist -l patch. Danach täglich die Datenfilesysteme (vxdump/fbackup oder Data Protector). Restore mindestens einmal jährlich testen.
Recovery-Band ist nicht ewig gültig: Nach jedem LVM-Umbau, Patch-Set oder Kernel-Change ein neues Archiv ziehen. Beim Restore von Band startet das System über den Alternate Boot Path – deshalb vorher setboot und den Hardware-Pfad des Laufwerks dokumentieren.

🔗Serviceguard

Status & Betrieb

cmviewcl -vWichtigstes Kommando: Cluster, Knoten, Pakete, Netze, Status
cmviewclKurzübersicht (up/down, running/halted)
cmviewcl -v -p pkg1Details eines Pakets inkl. Ressourcen und Switching-Flags
cmviewcl -v -n node1Details eines Knotens
cmviewcl -f lineMaschinenlesbare Ausgabe für Monitoring-Skripte
cmviewconfBinäre Cluster-Konfiguration im Klartext anzeigen
cmruncl -vCluster auf allen Knoten starten
cmruncl -v -n node1Cluster nur mit einem Knoten starten – gefährlich!
cmhaltcl -vKompletten Cluster stoppen (-f auch bei laufenden Paketen)
cmrunnode -v node1Einen Knoten dem Cluster beitreten lassen
cmhaltnode -v -f node1Knoten aus dem Cluster nehmen, Pakete schwenken
cmrunpkg -n node2 pkg1Paket auf einem bestimmten Knoten starten
cmhaltpkg pkg1Paket stoppen (Switching wird dabei deaktiviert)
cmmodpkg -e pkg1Package Switching wieder einschalten – nach jedem Halt nötig!
cmmodpkg -e -n node2 pkg1Knoten für dieses Paket freigeben
cmmodpkg -d -n node1 pkg1Knoten für das Paket sperren (z. B. vor Wartung)
cmhaltpkg pkg1; cmrunpkg -n node2 pkg1; cmmodpkg -e pkg1Kontrollierter Schwenk auf den zweiten Knoten

Konfiguration

cmquerycl -v -n node1 -n node2 -C /etc/cmcluster/cluster.asciiCluster-Konfigurationsvorlage erzeugen
cmcheckconf -v -C /etc/cmcluster/cluster.asciiKonfiguration prüfen, ohne sie anzuwenden
cmapplyconf -v -C /etc/cmcluster/cluster.asciiKonfiguration verteilen und aktivieren
cmgetconf -c /tmp/cluster_ist.asciiLaufende Cluster-Konfiguration exportieren (Doku/Backup)
cmgetconf -p pkg1 /tmp/pkg1.asciiPaket-Konfiguration exportieren
cmmakepkg -p /etc/cmcluster/pkg1/pkg1.confLegacy-Paketvorlage erzeugen
cmmakepkg -m sg/failover /etc/cmcluster/pkg1/pkg1.confModulare Paketvorlage (ab A.11.18)
cmcheckconf -v -P /etc/cmcluster/pkg1/pkg1.confPaket-Konfiguration prüfen
cmapplyconf -v -P /etc/cmcluster/pkg1/pkg1.confPaket aktivieren/ändern
cmdeleteconf -p pkg1Paket aus der Konfiguration entfernen
cmscancl -o /tmp/scan.txtKompletten Ist-Zustand beider Knoten sammeln (Doku/Support)
cmmodnet -a -i 10.0.0.55 10.0.0.0Relocatable IP manuell setzen – nur bei Notfall-Debugging
. /etc/cmcluster.conf; echo $SGCONFStandardpfade als Variablen laden ($SGCONF, $SGRUN)

Dateien & Logs

/etc/cmcluster/Cluster- und Paketkonfigurationen, Skripte
/etc/cmcluster/cmclnodelistVertrauensbeziehung zwischen den Knoten (vor cmquerycl!)
/etc/cmcluster/cmclconfigBinäre, aktive Konfiguration (nie manuell ändern)
/var/adm/syslog/syslog.logCluster-Events, Failover-Ursachen, TOC-Meldungen
/var/adm/cmcluster/log/<pkg>.logLog modularer Pakete (Start/Stop-Skript-Ausgabe)
/etc/cmcluster/<pkg>/<pkg>.cntl.logLog klassischer (Legacy-)Pakete
cmviewcl -v | grep -i -e unowned -e downSchnellcheck auf Probleme
Niemals von Hand anfassen: VGs und Filesysteme eines Pakets nicht mit vgchange -a y/mount aktivieren – Paket-VGs laufen mit vgchange -a e (exklusiv). Ein Doppelzugriff von beiden Knoten führt zu Datenkorruption. Immer über cmrunpkg/cmhaltpkg arbeiten.
Nach cmhaltpkg immer cmmodpkg -e: Ein manuell gestopptes Paket hat Switching disabled und schwenkt im Fehlerfall nicht mehr. Das ist die häufigste Ursache für „der Cluster hat nicht übernommen“. Kontrolle mit cmviewcl -v in der Zeile Package Switching.
Change-Reihenfolge im Cluster: LVM-Änderung auf dem Knoten mit aktivem Paket durchführen → vgcfgbackup → vgexport -p -s -m mapfile → Mapfile auf den zweiten Knoten kopieren → dort vgexport/vgimport → cmcheckconf → Testschwenk.

🧮Partitionierung & Virtualisierung

nPartitions (Hardware-Partitionen)

parstatus -wIn welcher nPar läuft ich gerade?
parstatus -PAlle Partitionen der Komplexes mit Status
parstatus -CAlle Zellen: CPUs, RAM, Zuordnung, Use-on-next-boot
parstatus -II/O-Chassis und ihre Zuordnung
parstatus -AFreie (available) Zellen und I/O-Chassis
parstatus -V -p 1Ausführliche Konfiguration der Partition 1
parstatus -BKomplex-Informationen (Modell, Seriennummer, Firmware)
parcreate -P newpar -c 2:base:y:ri -I 0/0/0/0Neue nPar mit Zelle 2 und I/O-Chassis anlegen
parmodify -p 1 -a c:4:base:y:riZelle zu Partition 1 hinzufügen (Reboot nötig)
parmodify -p 1 -d c:4Zelle aus der Partition entfernen
parmodify -p 1 -b 0/0/2/0.6.0Primären Bootpfad der Partition setzen
parremove -p 2Partition löschen (muss inaktiv sein)
parunlock -p 1Stable Complex Config Data entsperren (nach Abbruch)
frupower -d -C 2Zelle stromlos schalten (-o = einschalten)
parmgrPartition Manager (Web/GUI) über SMH

vPars (virtuelle Partitionen)

vparstatusAlle vPars mit Status (Up/Down/Load)
vparstatus -vAusführlich: CPU, RAM und I/O je vPar
vparstatus -p vpar1 -vDetails einer vPar
vparstatus -ANicht zugewiesene (freie) Ressourcen
vparcreate -p vpar1 -a cpu::2 -a mem::4096 -a io:0.0.1.2vPar mit 2 CPUs, 4 GB und einem I/O-Pfad anlegen
vparmodify -p vpar1 -a cpu::1Eine CPU hinzufügen (-d cpu::1 = entfernen)
vparmodify -p vpar1 -a mem::2048Speicher zuweisen (bei laufender vPar teils nur mit Reboot)
vparboot -p vpar1vPar starten
vparreset -p vpar1 -tTOC auslösen (Dump erzwingen); -h = hartes Reset
vparremove -p vpar1vPar-Definition löschen
MON> vparload -p vpar1Vom vPar-Monitor aus booten (-all = alle)
vparenvAktuellen Boot-Modus anzeigen (vPars oder nPars)
vparenv -m vParsModus für den nächsten Boot umschalten

HP Integrity Virtual Machines (HPVM)

hpvmstatusAlle VMs mit Status, CPU- und RAM-Zuweisung
hpvmstatus -V -P vm1Ausführliche Konfiguration einer VM
hpvmstatus -rRessourcenverbrauch der VMs auf dem Host
hpvmcreate -P vm1 -O hpux -c 2 -r 4GVM mit 2 vCPUs und 4 GB anlegen
hpvmmodify -P vm1 -a disk:scsi::disk:/dev/rdisk/disk15Platte zuweisen
hpvmmodify -P vm1 -a network:lan::vswitch:vsw1Netzwerk über virtuellen Switch zuweisen
hpvmstart -P vm1 / hpvmstop -P vm1VM starten / sauber stoppen (-F = erzwingen)
hpvmconsole -P vm1Auf die VM-Konsole schalten (Verlassen mit Ctrl-B)
hpvmnetVirtuelle Switches anzeigen/verwalten
hpvmdevmgmt -l allGeräte-Datenbank des Hosts (Doppelzuweisungen finden)
hpvmremove -P vm1VM-Definition löschen
hpvminfoInnerhalb des Gastes: läuft ich als HPVM-Guest?

iCAP / Instant Capacity

icapstatusAktive und inaktive Cores, verfügbare Rechte, TiCAP-Guthaben
icapmodify -a 22 zusätzliche Cores aktivieren
icapmodify -d 22 Cores deaktivieren
icapnotify -sKonfiguration der Meldungen an HP (Asset-Reporting)
Drei Ebenen: nPars trennen elektrisch auf Zellenebene (höchste Isolation, Reboot für Änderungen), vPars teilen eine nPar softwareseitig auf (CPU-Zuweisung online möglich), HPVM virtualisiert vollständig mit Overcommitment. Eine Maschine kann nicht gleichzeitig im vPars- und im reinen nPars-Modus laufen – vparenv -m und ein Reboot sind dafür nötig.
parmodify und parremove schreiben in die Stable Complex Configuration Data des gesamten Komplexes. Ein Fehler betrifft alle Partitionen. Vorher parstatus -V -p <n> > /tmp/par_ist.txt sichern und die Aktion im Wartungsfenster mit MP-Konsolenzugriff durchführen.

📄Wichtige Dateien & Verzeichnisse

/etc/fstabMount-Tabelle (/etc/mnttab = aktuell gemountet)
/etc/lvmtab, /etc/lvmtab_pVG-zu-PV-Zuordnung (Legacy / persistente DSFs)
/etc/lvmconf/*.confLVM-Metadatensicherungen aus vgcfgbackup
/etc/lvmpvgPhysical Volume Groups (PVG-strict Mirroring)
/etc/rc.config.d/Konfigurationsvariablen aller Dienste
/sbin/init.d/, /sbin/rc[0-4].d/Startskripte und Runlevel-Verlinkung
/etc/inittabDefault-Runlevel und Gettys
/stand/vmunix, /stand/systemKernel und Kernel-Konfiguration
/stand/current, /stand/nextboot, /stand/backup11.31: Kernel-Konfigurationssätze
/stand/bootconfBootplatte für Ignite/Update
/etc/nsswitch.conf, /etc/resolv.conf, /etc/hostsNamensauflösung
/etc/services, /etc/inetd.conf, /var/adm/inetd.secDienste, inetd und Zugriffskontrolle
/etc/dfs/dfstab (11.31) bzw. /etc/exportsNFS-Freigaben
/etc/passwd, /etc/group, /etc/shadowBenutzerdatenbank
/etc/default/security, /var/adm/userdbPasswort-Policies systemweit / je User
/tcb/files/auth/Trusted System: Passwort- und Audit-Daten
/etc/rbac/RBAC-Datenbanken (roles, auths, cmd_priv)
/etc/profile, /etc/csh.loginLogin-Umgebung für alle User
/etc/PATH, /etc/MANPATH, /etc/SHLIB_PATHSystemweite Pfadbausteine (von /etc/profile gelesen)
/etc/TIMEZONESystemzeitzone (wird von /sbin/rc gelesen)
/etc/issue, /etc/motd, /etc/copyrightBanner vor und nach dem Login
/var/adm/syslog/syslog.log, mail.logSystem- und Mail-Log
/var/adm/rc.logAusgabe der Startskripte
/var/adm/sw/SD-Logs und Installed Products Database
/var/adm/crash/Gerettete Crash Dumps
/var/stm/logs/os/STM-Hardware-Eventlogs
/var/tombstones/PA-RISC-Tombstones (HPMC)
/var/opt/resmon/log/event.logEMS-Hardware-Events
/var/spool/cron/crontabs/Crontabs aller User
/etc/cmcluster/Serviceguard-Konfiguration
/var/opt/ignite/Ignite-UX-Archive und Recovery-Protokolle
/dev/vgXX/groupGruppendatei einer Volume Group (Minor-Nummer!)
/dev/disk/diskN, /dev/rdisk/diskN11.31: persistente Block-/Raw-Devices
/dev/dsk/c#t#d#, /dev/rdsk/c#t#d#Legacy-Block-/Raw-Devices
/dev/vx/dsk/<dg>/<vol>VxVM-Volumes
/opt/<produkt>, /etc/opt/<produkt>, /var/opt/<produkt>Programm, Konfiguration und variable Daten von Zusatzsoftware

Standard-LVs in vg00 (Ignite-Layout)

/dev/vg00/lvol1/stand – Kernel; auf 11.11/11.23 HFS!
/dev/vg00/lvol2Primärer Swap und Dump-Device
/dev/vg00/lvol3Root-Filesystem /
/dev/vg00/lvol4 … lvol8/tmp · /home · /opt · /usr · /var
Diese Dateien gehören in jedes Change-Backup: /etc/fstab, /etc/lvmtab*, /etc/lvmconf/, /etc/rc.config.d/, /etc/nsswitch.conf, /etc/resolv.conf, /etc/hosts, /etc/passwd+/etc/group, /var/spool/cron/crontabs/, /etc/cmcluster/ sowie die Ausgaben von swlist -l patch, vgdisplay -v, bdf, setboot und print_manifest.

🔧SMH/SAM, Shell-Tipps & Praxis-Workflows

SMH und SAM

smhSystem Management Homepage – TUI im Terminal (11.31)
samAuf 11.31 nur noch ein Verweis auf smh
https://<host>:2381/Weboberfläche der SMH
/opt/hpsmh/bin/smhstartconfig -a onAutostart des SMH-Webservers ein-/ausschalten
kcwebKernel-Konfiguration (Tunables, Module) in der SMH
parmgrPartition Manager für nPars/vPars
evwebEvent-Viewer und Abo-Verwaltung
/var/sam/log/samlogProtokoll der über SAM/SMH ausgeführten Aktionen
samlog_viewer -l vvSAM-Log inkl. der abgesetzten Kommandos anzeigen – ideal zum Lernen

Shell & Textwerkzeuge

echo $SHELL; /usr/bin/shStandard ist die POSIX-Shell (/usr/bin/sh), nicht bash
set -o vivi-Editiermodus (Esc + k blättert durch die History)
whence -v kommando; which kommando; type kommandoPfad und Typ eines Kommandos
catman -wManpage-Index bauen – erst danach funktioniert man -k
man -k stichwortManpages nach Stichwort durchsuchen
grep -n -i "muster" dateiSuche mit Zeilennummern, ohne Groß-/Kleinschreibung
sed -e 's/alt/neu/g' datei > neu.txtTextersetzung
awk '{print $1, $5}' dateiSpalten extrahieren
for vg in $(vgdisplay | awk '/VG Name/{print $3}'); do vgdisplay -v $vg; doneSchleife über alle VGs
script /tmp/session_$(date +%F).logKomplette Terminalsitzung protokollieren (Change-Nachweis)
tee -a /tmp/logAusgabe anzeigen und gleichzeitig mitschreiben
gzip -9 / gunzip / compressKomprimieren (HP-Depots kommen oft als .depot.gz)
strings /etc/lvmtabBinärdateien lesbar machen – hier: VG/PV-Zuordnung
what /stand/vmunix | headVersionsinformationen aus einem Binäry ziehen

Workflow: Neue SAN-LUN einbinden und Filesystem anlegen

# 1. LUN im SAN zonen/mappen, dann auf dem Host sichtbar machen
fcmsutil /dev/fcd0                    # Link up? WWPN notiert?
ioscan -fnC fc                        # HBAs CLAIMED?
ioscan -N -funC disk                  # neue LUN suchen (11.31 agile)
insf -e                               # fehlende Geraetedateien anlegen
ioscan -m dsf | grep disk15           # Legacy-/Agile-Zuordnung pruefen
diskinfo -v /dev/rdisk/disk15         # Groesse verifizieren

# 2. LVM: PV anlegen und VG erweitern
pvcreate /dev/rdisk/disk15
vgextend /dev/vgdata /dev/disk/disk15
vgdisplay /dev/vgdata | grep -e "Free PE" -e "PE Size"
vgcfgbackup /dev/vgdata               # Pflicht nach jeder Aenderung!

# 3. LV und Filesystem
lvcreate -L 51200 -n lvapp /dev/vgdata          # 50 GB
newfs -F vxfs -o largefiles /dev/vgdata/rlvapp
mkdir -p /app
mount -F vxfs -o delaylog /dev/vgdata/lvapp /app
bdf /app

# 4. Reboot-fest machen
echo "/dev/vgdata/lvapp /app vxfs delaylog 0 2" >> /etc/fstab
umount /app && mount /app             # fstab-Eintrag testen!

Workflow: VxFS online vergrößern (OnlineJFS)

bdf /app                              # Ist-Groesse
lvdisplay /dev/vgdata/lvapp | grep -e "LV Size" -e "Current LE"
vgdisplay /dev/vgdata | grep "Free PE"   # genug Platz in der VG?

lvextend -L 76800 /dev/vgdata/lvapp   # ZIELgroesse 75 GB, nicht Zuwachs!
vgcfgbackup /dev/vgdata

# Zielgroesse in Sektoren: GB * 1024 * 1024 * 2  -> 75 GB = 157286400
fsadm -F vxfs -b 157286400 /app
bdf /app

# Ohne OnlineJFS-Lizenz nur offline moeglich:
# umount /app; extendfs -F vxfs /dev/vgdata/rlvapp; mount /app

Workflow: Patch-Bundle einspielen

# 1. Ist-Zustand und Rollback-Basis
swlist -l patch > /tmp/patches_vorher.txt
swlist -l bundle > /tmp/bundles_vorher.txt
kconfig -s vor_patch                  # Kernel-Konfiguration sichern
bdf /var /stand /tmp                  # Platz? /var braucht am meisten
make_net_recovery -s ignitesrv -A -v -x inc_entire=vg00

# 2. Depot bereitstellen und Preview fahren
swcopy -s /tmp/QPK1131.depot \* @ /var/depot
swinstall -p -s /var/depot -x patch_match_target=true \*
grep -i -e ERROR -e WARNING /var/adm/sw/swinstall.log

# 3. Installieren
swinstall -s /var/depot -x patch_match_target=true \
          -x autoreboot=true -x mount_all_filesystems=false \*

# 4. Nacharbeit
swlist -l patch > /tmp/patches_nachher.txt
diff /tmp/patches_vorher.txt /tmp/patches_nachher.txt
swverify \*                           # muss ohne ERROR durchlaufen
uname -r; swlist -l bundle | grep -i QPK
cleanup -p                            # spaeter: -c 1 zum Aufraeumen

Workflow: Plattenausfall analysieren

dmesg | tail -40                      # SCSI-/LVM-Meldungen
tail -100 /var/adm/syslog/syslog.log
ioscan -fnC disk | grep -v CLAIMED    # NO_HW / unclaimed?
vgdisplay -v /dev/vgdata | grep -i -e stale -e "PV Status" -e "Cur PV"
pvdisplay /dev/disk/disk15            # Status "unavailable"?
diskinfo -v /dev/rdisk/disk15         # antwortet die Platte ueberhaupt?
scsimgr get_info -D /dev/rdisk/disk15 # 11.31: Pfade und Fehlerzaehler
fcmsutil /dev/fcd0 stat               # Link Failures auf dem HBA?
cstm                                  # map / sel dev N / info / il

# Platte getauscht -> LVM wieder gerade ziehen
insf -e
scsimgr replace_wwid -D /dev/rdisk/disk15
vgcfgrestore -n /dev/vgdata /dev/rdisk/disk15
vgchange -a y /dev/vgdata
vgsync /dev/vgdata                    # Mirror neu aufbauen
vgdisplay -v /dev/vgdata | grep -i stale   # muss 0 werden
vgcfgbackup /dev/vgdata
Merksatz für HP-UX: Fast alles wird an zwei Stellen gepflegt – das laufende System (ifconfig, mount, swapon, ndd -set) und die Konfigurationsdatei für den nächsten Boot (/etc/rc.config.d/*, /etc/fstab, nddconf). Wer nur eine Seite ändert, hat spätestens beim nächsten Reboot ein Problem.
Drei Dinge, die HP-UX-Neulinge stolpern lassen: (1) bdf statt df -k; (2) Größenangaben bei lvextend/fsadm sind absolute Zielgrößen, kein Zuwachs; (3) ps -eo braucht ein vorangestelltes UNIX95=.