Tru64 UNIX Administration Cheat Sheet

Tru64 UNIX 5.1B · Compaq/HP AlphaServer
Keine Treffer – Suchbegriff anpassen.

💻System- & Hardware-Informationen

uname -aOS-Name, Hostname, Release, Version, Architektur (alpha)
uname -r; uname -vRelease (V5.1) und Version/Build-Kennung
sizer -vGenaue OS-Version, z. B. Compaq Tru64 UNIX V5.1B (Rev. 2650)
sizer -pAnzahl der Prozessoren
sizer -bName des aktuell gebooteten Kernels (meist vmunix)
sizer -n TESTKERNKernel-Konfigurationsdatei aus laufendem System erzeugen
psrinfo -nAnzahl der online Prozessoren
psrinfo -vProzessor-Details: Typ, Takt, Status
vmstat -PPhysische Speicherbelegung (Wired, Active, Free, Cache)
swapon -sSwap-Geräte mit Größe und Auslastung
df -k; df -k -t advfsFilesystem-Belegung in KB, optional nur AdvFS
uptime; wLaufzeit, Load Average, angemeldete Benutzer
who -rAktueller Runlevel
last reboot | headReboot-Historie
/usr/sbin/lmf listLizenzen (PAKs), z. B. ADVFS-UTILITIES, LSM, TCS
lmf list fullAlle Lizenzdetails inkl. Producer und Ablaufdatum

hwmgr – Hardware Manager

hwmgr view devicesAlle Geräte mit HWID, Device-Special-File, Hersteller, Modell, Location
hwmgr view devices -clusterGeräte aller Cluster-Mitglieder
hwmgr view devices -cat diskNur eine Kategorie anzeigen (disk, tape …)
hwmgr view hierarchyHardware-Baum: Platform → Bus → Adapter → Gerät
hwmgr view hierarchy -id 45Teilbaum ab einer HWID
hwmgr view clusterStatus jedes Cluster-Mitglieds (nur im Cluster)
hwmgr get categoryVerfügbare Hardware-Kategorien auflisten
hwmgr get attr -cat platform -a nameSystemtyp/Modell, z. B. AlphaServer DS20E
hwmgr get attr -cat cpu -a sub_category -a speedCPU-Typ (EV6/EV67 …) und Taktfrequenz
hwmgr get attr -cat network -a name -a media_speed -a linkNetzwerkkarten mit Speed und Link-Status
hwmgr show scsiAlle SCSI-Geräte mit HWID, DSF-Name und Pfaden
hwmgr show scsi -type diskNur Platten inkl. aller Zugriffspfade
hwmgr show component -fullAlle Komponenten mit vollem Detail (inkl. DSF-Gruppe)
hwmgr status component -ngoodKomponenten, die nicht im Status „good“ sind

Kernel-Subsysteme abfragen

sysconfig -q genericAttribute des Subsystems generic (u. a. Hostname, maxusers)
sysconfig -q vmVirtual-Memory-Attribute (Swap, UBC, Page-Limits)
sysconfigdb -lAlle Stanzas aus /etc/sysconfigtab auflisten
consvar -g sys_serial_numSeriennummer aus der Konsolen-Umgebung lesen
consvar -v -g versionFirmware-/SRM-Version ausführlich
sys_check -all > /tmp/syscheck.htmlKompletter Konfigurations- und Tuning-Report als HTML
Praxis: Vor jedem Change den Ist-Zustand einfrieren: sizer -v, hwmgr view devices, showfdmn -a, df -k und swapon -s in eine Datei umleiten – das ersetzt später jede Diskussion.
Merke: hwmgr akzeptiert die Unterkommandos mit und ohne Bindestrich (hwmgr view devices = hwmgr -view devices) und erlaubt Abkürzungen (hwmgr -v d, hwmgr -sho fibre).

⏻SRM-Konsole, Boot & Firmware

SRM-Konsole (Prompt >>>)

show configKomplette Hardware-Konfiguration: CPUs, Speicher, PCI-Slots
show deviceAlle bootfähigen Geräte (dka0, dqa0, ewa0 …)
show memorySpeicherbestückung und Fehlerstatus
show *Alle Konsolenvariablen ausgeben
show bootdef_devStandard-Bootgerät anzeigen
set bootdef_dev dka0Standard-Bootgerät setzen (Mehrfachangabe kommagetrennt)
set boot_osflags AAutoboot in den Multi-User-Modus
set auto_action BOOTNach Power-On/Reset automatisch booten (HALT = anhalten)
boot dka0Von einem bestimmten Gerät booten
boot -fl s dka0Single-User-Modus booten (Wartung, Kernel-Patches)
boot dqa0Von CD/DVD booten (Installation, Recovery)
boot -fl 0,1 dka0Alternativen Kernel/Root-Pfad angeben (interaktiver Boot)
initKonsole/Firmware neu initialisieren (nach set-Änderungen)
set mode diag; initDiagnose-Modus für wwidmgr aktivieren
wwidmgr -show dev -fullFibre-Channel-Platten mit UDID/WWID anzeigen
wwidmgr -show ada -fullFC-Adapter (emx, pga) und Topologie
wwidmgr -quickset -udid 12FC-Platte als bootfähiges Gerät eintragen
wwidmgr -set ada -item 9999NVRAM-Einträge zurücksetzen (nach FC-Adaptertausch)
[ESC][ESC] rmcIn das Remote-Management-Console-Menü wechseln (GS-Serie: scm, MBM)

Konsolenvariablen aus dem laufenden System

consvar -lAlle Konsolenvariablen anzeigen (-v -l = ausführlich)
consvar -g bootdef_devEinzelne Variable lesen
consvar -s bootdef_dev dka0Variable setzen – zunächst nur im Speicher!
consvar -aAlle Werte dauerhaft ins NVRAM/EEPROM schreiben
consvar -g ewa0_modeKonsolen-Modus einer Netzwerkkarte (Boot-over-LAN)
sysconfig -q bparmBoot-Parameter, mit denen der Kernel gestartet wurde

Herunterfahren & Runlevel wechseln

shutdown -h nowSystem anhalten (zurück zur SRM-Konsole)
shutdown -r nowSofortiger Reboot
shutdown nowIn den Single-User-Modus wechseln
shutdown +10 "Wartung"In 10 Minuten mit Meldung an alle Benutzer
halt; rebootHarte Varianten – kein sauberer Shutdown der Dienste
init 3 / init s / init 0Multi-User mit Netz / Single-User / Halt
init q/etc/inittab neu einlesen, ohne Runlevel-Wechsel
Achtung: consvar -s wirkt nur bis zum nächsten Reset – ohne abschließendes consvar -a ist die Änderung nach dem Reboot verloren. Boot-relevante Variablen daher immer direkt an der SRM-Konsole prüfen.

🔄Init, Runlevel & rc.config

rcmgr get HOSTNAMERuntime-Konfigurationsvariable lesen
rcmgr set HOSTNAME srv01Variable in /etc/rc.config setzen
rcmgr delete VARNAMEVariable entfernen
rcmgr -c get NFS_CONFIGUREDAus der clusterweiten /etc/rc.config.common lesen
rcmgr -c set NUM_NFSD 16Clusterweit setzen (gilt für alle Mitglieder)
rcmgr -s get VARNAMEAus der sitewide /etc/rc.config.site lesen
rcmgr get SECURITYBASE oder ENHANCED – Sicherheitsmodus des Systems
rcmgr get NETDEV_0; rcmgr get IFCONFIG_0Erstes Netzwerkinterface und dessen ifconfig-Zeile
rcmgr get DEFAULTROUTERKonfiguriertes Standard-Gateway

Startskripte & Runlevel

/etc/inittabInit-Einträge, Konsolen-Gettys, Default-Runlevel
/sbin/init.d/Alle Start-/Stop-Skripte (Aufruf: /sbin/init.d/nfs restart)
/sbin/rc0.d, /sbin/rc2.d, /sbin/rc3.dRunlevel-Verzeichnisse mit S*/K*-Symlinks
/sbin/init.d/autosysconfig listBeim Boot automatisch geladene dynamische Kernel-Module
/sbin/init.d/autosysconfig add envmonModul zum Autoload hinzufügen (delete = entfernen)
0Halt – System angehalten
s / SSingle-User (nur / gemountet, kein Netz)
2Multi-User ohne Netzwerkdienste
3Multi-User mit Netzwerk – normaler Betriebszustand
Wichtig: Auf Tru64 werden Dienste nicht in den Startskripten selbst aktiviert, sondern über Variablen in /etc/rc.config*. Immer rcmgr benutzen – manuelles Editieren zerstört leicht die Datei-Hierarchie und im Cluster die Konsistenz.

🧠Kernel, Subsysteme & Tuning

sysconfig – Subsysteme zur Laufzeit

sysconfig -sAlle geladenen und konfigurierten Subsysteme mit Status
sysconfig -mSubsysteme getrennt nach static und dynamic
sysconfig -q advfsAktuelle Werte aller Attribute eines Subsystems
sysconfig -q vm vm_swap_eagerEinzelnes Attribut abfragen
sysconfig -Q vm ubc_maxpercentGrenzwerte und Veränderbarkeit (C=Config, R=Runtime, Q=Query)
sysconfig -d procIn /etc/sysconfigtab hinterlegte Werte anzeigen
sysconfig -r proc max_per_proc_stack_size=8388608Attribut sofort ändern (nur bei op=R, nicht persistent)
sysconfig -c envmonDynamisches Kernel-Modul laden (hier: Umgebungs-/Temperatursensoren)
sysconfig -u envmonDynamisches Modul entladen
man sys_attrs_vmManpage aller Attribute eines Subsystems (sys_attrs_<subsys>)

sysconfigdb – dauerhafte Kernel-Parameter

sysconfigdb -lAlle Stanzas aus /etc/sysconfigtab
sysconfigdb -l vmNur eine Stanza anzeigen
sysconfigdb -a -f /tmp/vm.stanza vmNeue Stanza aus Datei hinzufügen
sysconfigdb -m -f /tmp/vm.stanza vmBestehende Stanza zusammenführen/ändern (empfohlen)
sysconfigdb -u -f /tmp/vm.stanza vmStanza komplett ersetzen
sysconfigdb -d vmStanza entfernen
# Stanza-Format fuer sysconfigdb (/tmp/vm.stanza)
vm:
        vm_swap_eager = 0
        ubc_maxpercent = 80

sysconfigdb -m -f /tmp/vm.stanza vm
sysconfigdb -l vm            # Kontrolle
shutdown -r now              # Config-only-Attribute erst nach Reboot aktiv

Kernel neu bauen (doconfig)

doconfigInteraktiv: Konfigurationsdatei bearbeiten und Kernel bauen
doconfig -c SRV01Kernel aus /sys/conf/SRV01 bauen, ohne Menü
/sys/conf/<HOSTNAME>Kernel-Konfigurationsdatei (Sektionen options, pseudo-device)
/sys/<HOSTNAME>/vmunixErgebnis des Builds – vor dem Kopieren /vmunix sichern!
cp /vmunix /vmunix.okAlten Kernel sichern (an der SRM-Konsole bootbar)
dxkerneltunerGrafisches Werkzeug zum Anpassen von Kernel-Attributen
sys_check -all > /tmp/sc.htmlAnalyse mit Tuning-Empfehlungen und Warnungen
Kernel-Build: doconfig nie ohne gesicherten Alt-Kernel. Nach cp /sys/HOST/vmunix /vmunix muss ein Reboot folgen – wenn der neue Kernel nicht startet, an der Konsole boot dka0 -fl "0,vmunix.ok" bzw. den gesicherten Kernel angeben.
Reihenfolge: Erst sysconfig -Q prüfen. Ist das Attribut R (Runtime), reicht sysconfig -r plus Eintrag über sysconfigdb. Nur wenn ein statisches Subsystem oder eine options-Zeile nötig ist, wird doconfig gebraucht.

🔌Devices, hwmgr & dsfmgr

Geräte suchen und verwalten

hwmgr -scan scsiAlle SCSI-/FC-Busse nach neuen Geräten scannen
hwmgr -scan scsi -bus 3Nur einen Bus scannen – schont Bandlaufwerke
hwmgr -scan comp -id 42Nur unterhalb einer bestimmten Komponente scannen
hwmgr refresh scsi -allVeraltete SCSI-Pfade entfernen (beschleunigt den Boot)
hwmgr refresh componentNicht mehr konfigurierte Komponenten aus der Datenbank räumen
hwmgr -delete component -id 121Komponente/Gerät aus der Hardware-Datenbank löschen
hwmgr -redirect scsi -src 58 -dest 71Device-Namen einer ersetzten Platte auf die neue umlenken
hwmgr unindict -id 2Fehlerstatus („indicted“) einer Komponente zurücksetzen
hwmgr locate component -id 66 -time 60LED der Platte 60 s blinken lassen
hwmgr online -id 700 / offline -id 700Komponente (z. B. CPU) online/offline nehmen
hwmgr -get attr -id 357Alle Attribute einer Komponente ausgeben
hwmgr -get attr -cat disk | grep -E "dev_base_name|path_state"Pfadstatus aller Platten prüfen
hwmgr -sho fibreFibre-Channel-Übersicht
hwmgr -sho fibre -adapter -topologyFC-Adapter mit Topologie (Fabric/Loop)

dsfmgr – Device Special Files

dsfmgr -sKomplette Device-Datenbank und alle /dev-Knoten anzeigen
dsfmgr -vDatenbank und /dev-Baum verifizieren
dsfmgr -V -F -vGefundene Fehler automatisch korrigieren
dsfmgr -KAlle Device-Special-Files neu erzeugen (läuft auch beim Boot)
dsfmgr -kNur für neu hinzugekommene Geräte DSFs anlegen
dsfmgr -n dsk10aEinzelnen Device-Knoten neu erzeugen
dsfmgr -m dsk5 dsk0Device-Namen verschieben (Ersatzplatte erbt alten Namen)
dsfmgr -e tape1 tape0Device-Namen zweier gleichartiger Geräte tauschen
dsfmgr -R hwid 25Kernel-Eintrag der DSFs einer gelöschten HWID entfernen
dsfmgr -vIInstanz-Nummern auf den kleinstmöglichen Wert zurücksetzen
dn_setup -install_tapeTape-Devices nachträglich anlegen (z. B. nach CD-Boot)

Namensschema & Disklabel

/dev/disk/dsk10cBlock-Device, Partition c = gesamte Platte
/dev/rdisk/dsk10cRaw-/Character-Device derselben Partition
/dev/disk/cdrom0c, /dev/disk/floppy0cCD-ROM und Diskette
/dev/ntape/tape0, /dev/tape/tape0Bandlaufwerk ohne / mit Rewind (_d0…_d3 = Dichte)
disklabel -r dsk10Partitionstabelle einer Platte lesen
disklabel -rw dsk10Standard-Label schreiben – Pflicht bei jeder neuen Platte
disklabel -e dsk10Label im Editor anpassen (Partitionsgrößen, fstype)
disklabel -z dsk10Label löschen – Platte gilt danach als unbeschrieben
disklabel -r dsk35 > /tmp/l; disklabel -Rr dsk39 /tmp/lLabel klonen (identische Partitionierung mehrerer Platten)
file /dev/rdisk/dsk10cZeigt an, ob und wie die Platte belegt ist
iostat 2 5I/O-Last je Platte, 5 Messungen im 2-Sekunden-Takt
dd if=/dev/rdisk/dsk10c of=/dev/null bs=64k count=1000Lesetest / Platte durch LED-Aktivität identifizieren
mt -f /dev/ntape/tape0 statusBandlaufwerk-Status (rewind, fsf 1, offline)
lan_config -i ee0 -s 100 -x 1Netzwerkkarte auf 100 Mbit/Full-Duplex festnageln

scu – SCSI CAM Utility

scuInteraktives SCSI-Werkzeug starten
scu> sbtl 1 0 0Ziel setzen: Bus 1, Target 0, LUN 0
scu> show nexus; tur; show inquiryAdressierung, Test-Unit-Ready, Hersteller/Modell
scu> show capacityKapazität der adressierten Platte
scu> show path all capaAlle SCSI-Pfade mit Fähigkeiten
scu> show keysPersistent Reservations einer Platte anzeigen
scu> preserve clear key 0x8…Hängende Reservation lösen (nur mit nur einem aktiven Knoten!)
Reservation-Falle: Persistent Reservations auf Shared-SCSI-/SAN-Platten verhindern jeden Zugriff. Vor dem Freigeben müssen alle anderen Cluster-Knoten gestoppt sein – sonst droht Datenkorruption.
Neue Platte: Ohne disklabel -rw dskN ist eine Platte für AdvFS, UFS und LSM nicht nutzbar. Reihenfolge immer: hwmgr -scan scsi → hwmgr view devices → dsfmgr -k → disklabel -rw.

🗃AdvFS – Domains & Filesets

Anlegen & Mounten

mkfdmn /dev/disk/dsk10c data_domainNeue Domain mit erstem Volume erzeugen
mkfdmn -p 256000 -x 4096 /dev/disk/dsk10c big_domainBMT vorab dimensionieren (-p Startgröße, -x Extent)
mkfset data_domain data_fsetFileset in einer Domain anlegen (mehrere pro Domain möglich)
mount -t advfs data_domain#data_fset /dataFileset mounten – Schreibweise domain#fset
mount -t advfs -o ro data_domain#data_fset /mntNur lesend mounten
mount -o delayed,noatimes data_domain#fset /dataPerformance-Optionen (Metadaten verzögert, keine atime-Flüsse)
/etc/fstabEintrag: data_domain#data_fset /data advfs rw 0 2
/etc/fdmns/data_domain/Verzeichnis mit Symlinks auf alle Volumes der Domain
mountlist -vAlle gemounteten AdvFS-Filesets auflisten

Anzeigen & Prüfen

showfdmn data_domainVolumes, Größe, freie Blöcke, Log-Volume der Domain
showfsets data_domainAlle Filesets mit Dateianzahl, Quota und Clone-Status
showfsets -k data_domainWerte in Kilobyte statt Blöcken
showfile -x /data/dateiExtents, Fragmentierung und Striping einer Datei
vdf data_domainPlatzverbrauch von Domain und Filesets kompakt
df -k -t advfsNur AdvFS-Filesets in der df-Ausgabe
advscan -a /dev/diskPlatten nach AdvFS-Partitionen durchsuchen
advscan dsk101Eine bestimmte Platte prüfen: zu welcher Domain gehört sie?
advscan -r dsk101 dsk102/etc/fdmns aus den Plattenlabels rekonstruieren
advscan -f data_domainEinträge einer einzelnen Domain wiederherstellen
advfsstat -b data_domainBuffer-Cache-Statistik der Domain
advfsstat -v 2 data_domainVolume-Statistik (Lese-/Schreibverteilung je Volume)
advfsstat -l 2 data_domainLock-Statistik (Detailstufen 0–2)

Volumes hinzufügen, entfernen, balancieren

addvol /dev/disk/dsk11c data_domainVolume online zur Domain hinzufügen (AdvFS Utilities)
rmvol /dev/disk/dsk11c data_domainVolume entfernen – Daten werden vorher migriert
chvol -A /dev/disk/dsk11c data_domainVolume nach einem Fehler wieder aktivieren
chvol -r 256 -w 256 /dev/disk/dsk10c data_domainMax. Lese-/Schreibblöcke je I/O anpassen
balance data_domainBelegung gleichmäßig auf alle Volumes verteilen
switchlog data_domain 2Transaction-Log auf ein anderes Volume legen
migrate /data/grossedateiEinzelne Datei innerhalb der Domain verschieben
stripe -n 2 /data/dateiDatei über 2 Volumes streifen (AdvFS Utilities)

Defragmentieren & Vfast

defragment -nv data_domainNur analysieren: Fragmentierungsgrad anzeigen
defragment -v data_domainDomain online defragmentieren
defragment -t 30 -v data_domainDefragmentieren mit Zeitlimit von 30 Minuten
defragcron -T 30 -pAlle Domains parallel, zeitbegrenzt – typisch für cron
vfast -o defragment=enable,balance=enable data_domainAutomatische Hintergrund-Optimierung einschalten (5.1B)
vfast status data_domainVfast-Einstellungen und Aktivität anzeigen

Filesets ändern, Clones & Reparatur

clonefset data_domain data_fset data_cloneRead-only-Snapshot eines Filesets erzeugen
mount -t advfs -o ro data_domain#data_clone /mnt/cloneClone mounten – Basis für konsistentes Online-Backup
rmfset data_domain data_cloneClone (oder Fileset) löschen – vorher unmounten
renamefset data_domain alt neuFileset umbenennen
chfsets -o nofrag data_domain data_fsetFrag-File abschalten (Dateien belegen Vielfache von 8 KB)
rmfdmn data_domainLeere Domain entfernen (löscht /etc/fdmns-Eintrag)
verify data_domainDomain- und Fileset-Struktur prüfen (Domain unmounten!)
fixfdmn -n data_domainMetadaten prüfen, ohne zu schreiben
fixfdmn data_domainBeschädigte Metadaten reparieren
savemeta data_domain /var/tmp/metaMetadaten-Snapshot vor jeder Reparatur sichern
salvage -v data_domainDaten aus einer nicht mehr mountbaren Domain retten
salvage -d /rescue data_domainGerettete Daten in ein Zielverzeichnis schreiben
quotaon /data; quotaoff /dataQuotas ein-/ausschalten
edquota -u meierUser-Quota bearbeiten (-g für Gruppen)
repquota -v data_domain#data_fsetQuota-Report je Fileset
quot -f /dataBelegung nach Benutzer aufgeschlüsselt
quotacheck -guv data_domain#data_fsetQuota-Datenbank neu berechnen
Vor jedem rmvol: immer showfdmn data_domain prüfen. rmvol muss alle Daten des Volumes auf die verbleibenden Volumes verschieben – ist dort zu wenig Platz oder liegt das Transaction-Log auf dem Volume, bricht der Vorgang ab und die Domain kann in einem halben Zustand zurückbleiben.
/etc/fdmns: Eine Domain ist nichts weiter als ein Verzeichnis unter /etc/fdmns/<domain> mit Symlinks auf die Volumes. Symlinks niemals von Hand umbiegen – nach Storage-Migration stattdessen advscan -r bzw. advscan -f <domain> verwenden. Domain-Namen sind frei wählbar, aber systemweit eindeutig; bewährt hat sich <zweck>_domain.
Fragmentierung prüfen: showfile -x /data/.tags/1 zeigt das Frag-File, showfile -x /data/.tags/M-10 die BMT. Viele Extents dort sind der häufigste Grund für schleichenden Performance-Verlust einer alten Domain.

📁UFS & Filesystem-Basics

newfs /dev/rdisk/dsk10gUFS auf einer Partition anlegen (Raw-Device!)
mount -t ufs /dev/disk/dsk10g /mntUFS mounten
mount; mount -aGemountete FS anzeigen / alle aus /etc/fstab mounten
mount -u /dataVon read-only auf read-write hochziehen (Single-User-Boot)
umount /mntAushängen
fuser -c /mntWer benutzt das Filesystem (PIDs)
fuser -k -c /mntAlle Zugriffe beenden, danach umount
fsck -p /dev/rdisk/dsk10gPreen-Modus: nur unkritische Fehler automatisch beheben
fsck -y /dev/rdisk/dsk10gAlle Rückfragen mit yes beantworten (nur ungemountet!)
dumpfs /dev/rdisk/dsk10g | head -20Superblock-Parameter: Blockgröße, Inodes, minfree
tunefs -m 5 /dev/rdisk/dsk10gReservierten Anteil (minfree) auf 5 % setzen
df -k; df -i /varBelegung in KB / Inode-Auslastung
du -sk /var/* | sort -rn | head -20Größte Unterverzeichnisse finden
find /var -xdev -size +20000 -exec ls -l {} \;Große Dateien ohne Mount-Grenzen zu überschreiten
ncheck -i 1234 /dev/rdisk/dsk10gPfadname zu einer Inode-Nummer ermitteln
/etc/fstabMount-Tabelle (AdvFS, UFS, NFS, LSM-Volumes)
UFS-Grenze: Ein UFS entspricht genau einer Plattenpartition und lässt sich nicht online vergrößern. Wachstumsfähige Daten gehören auf AdvFS (addvol) oder auf ein LSM-Volume. UFS bleibt sinnvoll für kleine, statische Bereiche und Disketten.
Backup-Regel: vdump/vrestore arbeiten nur mit AdvFS, dump/restore nur mit UFS. Die Werkzeuge sind nicht austauschbar.

🧩LSM – Logical Storage Manager

Initialisierung & Platten

volsetup dsk10LSM erstmalig initialisieren, erste Platte in rootdg
voldctl modeStatus des Konfigurations-Daemons vold prüfen
voldisk listAlle LSM-Platten mit Disk-Group und Status
voldisk -f init dsk12Platte für LSM initialisieren (Private Region anlegen)
voldisksetup -i dsk12 privlen=4096Platte mit definierter Größe der Private Region einrichten
voldisk rm dsk12Platte aus der LSM-Konfiguration entfernen
voldg init datadg dsk12Neue Disk-Group mit erster Platte erzeugen
voldg -g datadg adddisk dsk13Platte zur Disk-Group hinzufügen
voldg -g datadg -k rmdisk dsk13Platte aus der Group nehmen, Konfiguration behalten
voldg listAlle Disk-Groups anzeigen
voldg -g datadg freeFreien Platz je Platte in der Disk-Group

Volumes

volassist -g datadg make vol01 10gVolume mit 10 GB anlegen
volassist -g datadg mirror vol01Volume spiegeln (zweiter Plex)
volassist -g datadg growto vol01 20gVolume auf absolute Größe erweitern
volassist -g datadg growby vol01 5gVolume um einen Betrag erweitern
volprint -htVolumes, Plexes und Subdisks hierarchisch anzeigen
volprint -AhtWie oben, aber über alle Disk-Groups
volume -g datadg start vol01Volume starten/verfügbar machen
volume -g datadg stop vol01Volume stoppen (vorher unmounten)
volrecover -sbAlle Plexes im Hintergrund resynchronisieren und starten
volrecover -g datadg -sb dsk13Nur die Plexes einer ersetzten Platte resynchronisieren
volstatI/O-Statistik je Volume/Plex
volwatch -m rootAusfall-Überwachung, Mail an root bei Plex-Fehlern
volprint -Aht | grep -i woSchnellcheck auf Plexes im Zustand write-only/Resync

Encapsulation & Werkzeuge

volencap dsk0Bestehende Platte/Partition unter LSM-Kontrolle stellen
volreconfigVorbereitete Encapsulation abschließen (verlangt Reboot)
voldiskadmMenügeführte LSM-Plattenverwaltung
dxlsmGrafische LSM-Oberfläche (X11)
/etc/vol/volbootStartinformation für LSM – unbedingt mitsichern
/dev/vol/, /dev/rvol/Block- bzw. Raw-Devices der LSM-Volumes
# Defekte LSM-Platte ersetzen (Disk-Group datadg, alte Platte dsk13)
voldisk list                              # Status: failed / removed ?
voldg -g datadg -k rmdisk dsk13
voldisk rm dsk13
# --- Platte physisch tauschen, dann: ---
hwmgr -scan scsi
disklabel -z dsk13
disklabel -rw dsk13
voldisksetup -i dsk13 privlen=4096
voldg -g datadg -k adddisk dsk13=dsk13
volrecover -g datadg -sb dsk13
volprint -Aht                             # bis alle Plexes ACTIVE/ENABLED
AdvFS oder LSM? Beides gleichzeitig ist möglich (AdvFS-Domain auf einem LSM-Volume), erhöht aber die Komplexität deutlich. In 5.1B ist der übliche Weg: Spiegelung im Storage-Controller oder per LSM, Kapazitätsverwaltung per AdvFS addvol.
LSM auf Boot-Platten: Root/usr/var unter LSM machen jede Recovery aufwändiger. Vor Eingriffen unbedingt /etc/vol/volboot, /etc/fdmns, /etc/sysconfigtab und /etc/inittab sichern.

📈Swap Space

swapon -sAlle Swap-Geräte mit Gesamt-, Frei- und Reserved-Anteil
swapon /dev/disk/dsk1bSwap-Gerät sofort aktivieren (bis zum Reboot)
swapon -aAlle konfigurierten Swap-Geräte aktivieren
sysconfig -q vm swapdeviceKonfigurierte Swap-Geräte des Kernels anzeigen
sysconfig -q vm vm_swap_eagerSwap-Modus: 1 = Eager, 0 = Lazy
vmstat -PPhysische Speicherverteilung – Basis für die Swap-Bewertung
vmstat 2 10Spalten pin/pout beobachten (Paging-Aktivität)
/etc/sysconfigtabStanza vm: mit swapdevice und vm_swap_eager
# Zweites Swap-Geraet dauerhaft konfigurieren
disklabel -rw dsk1                       # falls neue Platte
swapon /dev/disk/dsk1b                   # sofort aktiv, Test
swapon -s

cat > /tmp/vm.stanza <<EOF
vm:
        swapdevice = /dev/disk/dsk0b,/dev/disk/dsk1b
EOF
sysconfigdb -m -f /tmp/vm.stanza vm      # dauerhaft eintragen
sysconfigdb -l vm                        # kontrollieren
Eager vs. Lazy: Bei Eager (vm_swap_eager=1, Standard) wird Swap-Platz bereits bei der Speicheranforderung reserviert – Prozesse scheitern früh und kontrolliert. Bei Lazy wird erst beim Auslagern reserviert; das erlaubt Overcommit, kann aber später zu swap space below 10 percent und harten Prozessabbrüchen führen. Für Datenbankserver Eager beibehalten.
Achtung: Swap-Partitionen (typisch dskNb) dürfen kein Filesystem enthalten und nicht Teil einer AdvFS-Domain sein. Änderungen an swapdevice werden erst nach einem Reboot wirksam.

⚙Prozesse, Jobs & IPC

ps -efAlle Prozesse im Full-Format (System-V-Syntax)
ps aux | head -20BSD-Syntax, nach CPU sortierte Kopfzeilen
ps -e -o pid,ppid,user,pcpu,vsz,rss,commandEigene Spaltenauswahl
ps -ef | grep -v grep | grep sshdProzess gezielt suchen
ps -e -o pid,user,pcpu,command | sort -k3 -rn | headTop-CPU-Verbraucher
kill -TERM 1234 / kill -KILL 1234Sauber beenden / hart abschießen
kill -HUP `cat /var/run/syslog.pid`Daemon zum Neulesen der Konfiguration bewegen
nice -n 10 cmd; renice 5 -p 1234Priorität beim Start / nachträglich setzen
nohup script.sh > /tmp/out 2>&1 &Job abgekoppelt im Hintergrund starten
jobs; fg %1; bg %1Shell-Jobverwaltung (ksh)
ipcs -aShared Memory, Semaphoren, Message Queues (Oracle!)
ipcrm -m 12345Verwaistes Shared-Memory-Segment entfernen
pset_infoProzessor-Sets und CPU-Zuordnung anzeigen
ulimit -aAktuelle Ressourcen-Limits der Shell

Zeitgesteuerte Jobs

crontab -l; crontab -eEigene Crontab anzeigen / bearbeiten
crontab -l oracleCrontab eines anderen Benutzers lesen
/var/spool/cron/crontabs/Speicherort aller Crontabs – Backup nicht vergessen
/var/adm/cron/logCron-Protokoll bei nicht gelaufenen Jobs prüfen
/var/adm/cron/cron.allow, cron.denyWer darf cron nutzen
at now + 2 hoursEinmaligen Job planen (Eingabe mit Ctrl-D beenden)
at -l; at -r 1234.aGeplante at-Jobs listen / löschen
Cron-Falle: Cron startet mit minimalem Environment ohne .profile. Immer absolute Pfade verwenden und benötigte Variablen (PATH, ORACLE_HOME, TZ) im Skript selbst setzen. Auf Tru64 liegen viele Admin-Kommandos in /sbin und /usr/sbin – im Cron-PATH fehlen sie häufig.

📊Performance-Analyse

Schnellüberblick

topInteraktive Prozessliste mit CPU- und Speicherverbrauch
monitorInteraktive Gesamtübersicht (CPU, Speicher, Disk, Netz)
uptimeLoad Average der letzten 1/5/15 Minuten
vmstat 2 10CPU-, Speicher- und Paging-Kennzahlen im 2-Sekunden-Takt
vmstat -PAufteilung des physischen Speichers (Wired, UBC, Free)
vmstat -RWerte je RAD (NUMA-Systeme wie GS80/GS1280)
iostat 2 5Disk-Durchsatz und CPU-Verteilung
sar -u 2 5CPU-Nutzung (usr/sys/wio/idle)
sar -d 2 5Disk-Aktivität und Warteschlangen
sar -b 2 5Buffer-Cache-Trefferquote
swapon -sSwap-Auslastung – erster Blick bei Speicherengpässen

Aufzeichnung mit collect

collectAlle Subsysteme im Klartext auf stdout, Standardintervall 10 s
collect -s cmdnNur ausgewählte Subsysteme (c=CPU, m=Memory, d=Disk, n=Net)
collect -f /var/tmp/collect.datBinäre Aufzeichnung in Datei (Auswertung im Playback-Modus)
/var/adm/collect.dat*Ablage des als Dienst laufenden collect-Recorders
sys_check -perfPerformance-orientierte Auswertung des Systems

Speicher, CPU & Kernel

sched_stat sleep 60Scheduler-Statistik über 60 Sekunden
lockinfo -percpu sleep 60 | moreKernel-Lock-Kontention je CPU
sysconfig -q vm ubc_maxpercentObergrenze des Unified Buffer Cache
sysconfig -q proc max_proc_per_userProzess-Limits des Kernels
kdbx -k /vmunix /dev/memKernel-Debugger am laufenden System (sum, swap, kps)
dbx -k /vmunix /dev/memKernel-Variablen lesen, z. B. p ncpus, p physmem

Storage- & Netz-Performance

advfsstat -b data_domainAdvFS-Buffer-Cache: Hits, Misses, Read-/Write-Verteilung
advfsstat -v 2 data_domainI/O-Verteilung auf die Volumes einer Domain
defragment -nv data_domainFragmentierung als Ursache für langsame I/O prüfen
volstatI/O-Statistik der LSM-Volumes
netstat -iPakete und Fehler je Interface
netstat -mmbuf-/Speichernutzung des Netzwerkstacks
netstat -s | moreProtokollstatistik (Retransmits, Drops)
netstat -p tcpNur TCP-Statistik
sysconfig -q socketSocket-Tunables (u. a. sominconn, somaxconn)
sysconfig -q inetTCP/IP-Tunables (Fenstergrößen, Timeouts)
nfsstat -c; nfsstat -sNFS-Statistik als Client / als Server
Vorgehen bei „System ist langsam“: 1. uptime und vmstat 2 5 – CPU-gebunden oder wartend? 2. vmstat -P und swapon -s – Speicherdruck? 3. iostat 2 5 und advfsstat -v 2 – welches Volume? 4. uerf -R -o terse | head -40 – Hardwarefehler im Hintergrund?
sys_check: Das Skript liefert einen HTML-Report mit Warnungen und Tuning-Vorschlägen und ist die schnellste Bestandsaufnahme eines fremden Systems. Es läuft mehrere Minuten und erzeugt Last – nicht im Peak starten.

🌐Netzwerk & TCP/IP

Interfaces

ifconfig -aAlle Interfaces mit Adresse, Maske und Flags
ifconfig ee0Ein einzelnes Interface abfragen
ifconfig ee0 10.1.1.5 netmask 255.255.255.0 upAdresse setzen und Interface aktivieren (flüchtig)
ifconfig ee0 downInterface deaktivieren
ifconfig ee0 deleteAdresse vom Interface entfernen
ifconfig ee0 alias 10.1.1.6 netmask 255.255.255.0Zweite IP-Adresse (Alias) auf dasselbe Interface legen
ifconfig nr0 nrmonitor 5 nrtimeout 5NetRAIN-Set anlegen bzw. Überwachungsintervalle setzen
ifconfig nr0 switchNetRAIN manuell auf das andere Interface umschalten (Failover-Test)
niffconfig -vNIFF-Status aller überwachten Interfaces (Green/Orange/Red)
niffconfig -sNIFF-Überwachung starten
lagconfig -c lag=lag0,key=1Link-Aggregation-Gruppe (LAG) mit Schlüssel 1 erzeugen
lagconfig -p ee0 key=1Physisches Interface der LAG-Gruppe zuordnen
lagconfig -d lag0LAG-Gruppe wieder auflösen
lan_config -i ee0 -x 1 -s 100 -a 0Speed/Duplex fest einstellen (Autoneg aus) – Werte je Treiber prüfen
lan_config -i ee0Aktuelle Einstellungen des Adapters anzeigen
hwmgr get attr -category networkMAC-Adressen und Treiberdaten der Netzwerkkarten

Routing & Diagnose

netstat -rnRoutingtabelle numerisch – wichtigster Netz-Befehl
netstat -inInterfaces mit IP-Adressen numerisch
netstat -an | grep LISTENAlle lauschenden Ports
netstat -a -f inetNur IPv4-Verbindungen anzeigen
route add default 10.1.1.1Default-Gateway setzen (flüchtig)
route add -net 10.2.0.0 -netmask 255.255.0.0 10.1.1.9Statische Netzroute hinzufügen
route delete default 10.1.1.1Route entfernen
/etc/routesStatische Routen persistent hinterlegen (wird beim Boot gelesen)
arp -aARP-Cache anzeigen
arp -d host1Einzelnen ARP-Eintrag löschen (nach IP-Umzug)
ping host1Erreichbarkeit prüfen (mit Ctrl-C beenden)
traceroute host1Weg zum Ziel Hop für Hop verfolgen
tcpdump -i ee0 -n host 10.1.1.9Paketmitschnitt ohne Namensauflösung
tcpdump -i ee0 -n -s 1500 -w /var/tmp/trace.pcapMitschnitt in Datei für spätere Analyse
nslookup host1Namensauflösung testen
hostname; /sbin/hostnameRechnername abfragen

Persistente Konfiguration

rcmgr get NUM_NETCONFIGAnzahl konfigurierter Interfaces
rcmgr get NETDEV_0Gerätename des ersten Interfaces (z. B. ee0)
rcmgr get IFCONFIG_0ifconfig-Parameter des ersten Interfaces
rcmgr set IFCONFIG_0 "10.1.1.5 netmask 255.255.255.0"IP-Konfiguration dauerhaft setzen
rcmgr get DEFAULTROUTERKonfiguriertes Default-Gateway
rcmgr get HOSTNAMEPersistenter Rechnername
/etc/rc.configZentrale Datei hinter allen rcmgr-Variablen
/etc/hostsLokale Namensauflösung
/etc/resolv.confDNS-Server und Suchdomains
/etc/svc.confReihenfolge der Namensdienste (local, bind, yp)
svcsetupInteraktive Pflege von /etc/svc.conf
sysconfig -q inetTCP/IP-Kernel-Parameter anzeigen
sysconfig -q socketSocket-Parameter anzeigen
/sbin/init.d/inet restartNetzwerk-Startskript neu ausführen
gated; /etc/gated.confDynamisches Routing (RIP/OSPF) – nur wenn wirklich benötigt
Interface-Namen: Tru64 benennt Adapter nach Treiber, nicht durchgehend nach Nummer: ee0/ei0 (Intel/DE500), tu0 (Tulip), alt0 (Broadcom/DEGXA), nr0 (NetRAIN), lag0 (Link Aggregation), tun0. Welches Gerät vorhanden ist, zeigt hwmgr get attr -category network oder netstat -in.
Flüchtig vs. dauerhaft: ifconfig und route wirken nur bis zum Reboot. Dauerhaft wird eine Konfiguration ausschließlich über rcmgr set (bzw. /etc/rc.config) und /etc/routes. Nie beide Wege gleichzeitig halb pflegen – sonst weicht der Zustand nach dem nächsten Boot ab.

📡NFS, Dienste & Zeitsynchronisation

NFS-Server

/etc/exportsExportliste des NFS-Servers
exportfs -aAlle Einträge aus /etc/exports exportieren
exportfs -vAktuell exportierte Verzeichnisse mit Optionen anzeigen
exportfs -u /dataEinzelnen Export zurücknehmen
showmount -eExportliste des lokalen Servers
showmount -e nfssrvExportliste eines fremden Servers abfragen
showmount -aWelche Clients haben was gemountet
nfsstat -sServer-seitige NFS-Statistik
nfsstat -cClient-seitige NFS-Statistik (Retrans = Problem)
nfsstat -zZähler zurücksetzen (vor einer Messung)
nfssetupInteraktive NFS-Konfiguration (Server/Client, Anzahl Daemons)
rcmgr get NFS_CONFIGUREDIst NFS-Server aktiviert
rcmgr get NUM_NFSD; rcmgr get NUM_NFSIODAnzahl nfsd- bzw. nfsiod-Prozesse
/sbin/init.d/nfs restartNFS-Dienste neu starten
/sbin/init.d/nfsmount startNFS-Mounts aus /etc/fstab nachziehen

NFS-Client & Automount

mount -t nfs nfssrv:/data /mntNFS-Freigabe manuell mounten
mount -t nfs -o ro,soft,intr nfssrv:/data /mntLesend, mit weichem Timeout und unterbrechbar
mount -t nfs -o rw,hard,bg nfssrv:/data /mntSchreibend, hard mount, Retry im Hintergrund
umount -f /mntErzwungenes Unmount bei hängendem Server
mountAlle aktiven Mounts inklusive NFS anzeigen
automount -vAutomounter mit Meldungen starten
/etc/auto.master, /etc/auto.directAutomount-Maps
rcmgr get AUTOMOUNT; rcmgr get AUTOFSAutomounter bzw. AutoFS aktiviert

Dienste, inetd & NTP

rpcinfo -pRegistrierte RPC-Dienste des lokalen Rechners
rpcinfo -p nfssrvRPC-Dienste eines fremden Rechners (portmap muss erreichbar sein)
/etc/inetd.confKonfiguration der von inetd gestarteten Dienste
kill -HUP `cat /var/run/inetd.pid`inetd zum Neulesen von inetd.conf bewegen
/etc/servicesZuordnung Portnummer zu Dienstname
/etc/ntp.confNTP-Server-Konfiguration
ntpq -pPeers und Offsets des NTP-Daemons (Stern = ausgewählte Quelle)
ntpdate -q ntpsrvZeitversatz abfragen, ohne die Uhr zu stellen
ntpdate ntpsrvUhr einmalig stellen (xntpd muss gestoppt sein)
/sbin/init.d/xntpd restartNTP-Daemon neu starten
rcmgr get XNTPD_CONFIst xntpd aktiviert
date; date -uLokale Zeit / UTC anzeigen
rusers -l; rup; ruptimeBenutzer, Uptime und Last anderer Rechner im Subnetz
rwall host1 "Reboot in 5 Minuten"Meldung an alle Benutzer eines Rechners
/etc/hosts.equiv, ~/.rhostsVertrauensstellungen für r-Kommandos (Sicherheitsrisiko)
Hard mount: Ein hard gemountetes NFS-Verzeichnis lässt Prozesse bei Serverausfall unterbrechungsfrei hängen – auch df und ls blockieren dann. Für nicht kritische Daten soft,intr verwenden, bei Datenbank-Daten dagegen hard (Datenintegrität vor Verfügbarkeit).
NFS-Diagnose in dieser Reihenfolge: 1. ping zum Server, 2. rpcinfo -p server (portmap/nfs/mountd registriert?), 3. showmount -e server (darf ich?), 4. nfsstat -c (Retrans/Timeouts?).

👤Benutzer, Gruppen & Sicherheit

Konten verwalten

useradd -u 500 -g staff -d /home/meier -s /bin/ksh -m meierBenutzer mit Homeverzeichnis anlegen
useradd -DVoreinstellungen für neue Benutzer anzeigen
usermod -s /bin/sh -G dba,oinstall meierShell ändern und Zusatzgruppen setzen
usermod -l mueller meierBenutzer umbenennen
userdel meierBenutzer entfernen (Home bleibt stehen)
userdel -r meierBenutzer samt Homeverzeichnis entfernen
groupadd -g 600 dba; groupmod -n dbadmin dba; groupdel dbaGruppen anlegen, umbenennen, löschen
id meier; groups meierUID/GID bzw. Gruppenmitgliedschaften anzeigen
passwd meierKennwort setzen
who; who -b; last | headAngemeldete Benutzer, Bootzeit, letzte Anmeldungen
finger meierKontodaten und letzte Anmeldung
su - meierBenutzerwechsel mit vollem Environment
/etc/passwd, /etc/groupBasis-Kontendaten (Base Security)
pwck; grpckpasswd- und group-Datei auf Konsistenz prüfen
vipw/etc/passwd gesperrt und geprüft bearbeiten
dxaccounts &Grafische Benutzerverwaltung (CDE)
sysman -accel usersSysMan-Kontenverwaltung im Textmodus

Enhanced Security

rcmgr get SECURITYAktiver Modus: BASE oder ENHANCED – immer zuerst prüfen
secconfigSicherheitsmodus konfigurieren (Base/Enhanced umschalten)
edauth -g meierErweitertes Kontenprofil aus /etc/auth anzeigen
edauth meierKontenprofil im Editor bearbeiten (VISUAL/EDITOR beachten)
edauth -g -dd defaultSystem-Vorgabewerte für alle Konten anzeigen
edauth -dd defaultSystem-Vorgabewerte bearbeiten (Ablauf, Länge, Historie)
usermod -x administrative_lock_applied=1 meierKonto administrativ sperren
usermod -x administrative_lock_applied=0 meierSperre wieder aufheben
usermod -x password_expiration_time=0 meierKennwortablauf für ein Konto abschalten
usermod -x u_maxtries=5 meierZahl der Fehlversuche bis zur Sperre setzen
authck -pKonsistenz der Authentifizierungsdatenbank prüfen
authck -aVollprüfung aller Sicherheitsdatenbanken
convuser -dKonten zwischen Base und Enhanced konvertieren
/etc/auth/subsystem/Ablage der erweiterten Kontenprofile
/tcb/bin/Programme des Trusted Computing Base (u. a. edauth)
/etc/securettysTerminals, an denen root sich anmelden darf

Rechte, ACLs & Audit

chmod 640 datei; chown meier:staff dateiKlassische Rechte und Eigentümer setzen
umask; umask 022Standardrechte für neue Dateien
getacl dateiAccess Control List einer Datei anzeigen
getacl -d verzeichnisDefault-ACL eines Verzeichnisses anzeigen
setacl -u user:meier:rw- dateiEinzelnen ACL-Eintrag hinzufügen bzw. ändern
setacl -U /tmp/acl.txt dateiACL aus Datei übernehmen (Massenänderung)
sysconfig -q sec acl_modeSind ACLs im Kernel aktiviert
audit_setupAuditing interaktiv einrichten
audit_tool /var/audit/auditlog.000Audit-Log lesbar auswerten
auditdAudit-Daemon (über rc.config gesteuert)
siacfg -lSIA-Konfiguration (Authentifizierungs-Layer) anzeigen
/etc/sia/matrix.confReihenfolge der SIA-Mechanismen – nie ohne Backup ändern
dop -lDelegierte Admin-Aufgaben für den aufrufenden Benutzer listen
dopconfigDelegation von privilegierten Aufgaben konfigurieren
ls -la /etc/passwd /etc/group /etc/authRechte der sicherheitsrelevanten Dateien prüfen
Falle Enhanced Security: Läuft das System im Modus ENHANCED, liegen Kennwort, Ablauf und Sperrstatus nicht in /etc/passwd, sondern in der Datenbank unter /etc/auth. Ein Konto, das in /etc/passwd unauffällig aussieht, kann dort gesperrt sein. Deshalb immer erst rcmgr get SECURITY, dann edauth -g benutzer – und Änderungen nur mit usermod -x oder edauth, niemals durch direktes Editieren der Dateien unter /etc/auth.
Nach jeder größeren Kontenänderung: authck -p laufen lassen. Inkonsistenzen zwischen /etc/passwd und der Auth-Datenbank führen dazu, dass sich Benutzer nicht mehr anmelden können – im Zweifel eine zweite root-Sitzung offen halten.

🚨Fehleranalyse: uerf, EVM & Crash-Dumps

Binary Error Log mit uerf

uerf -R | moreFehlerlog in umgekehrter Reihenfolge (neueste zuerst)
uerf -R -o full | moreVollständige Auflösung aller Felder
uerf -R -o terse | moreKompakte Darstellung für den schnellen Überblick
uerf -R -o brief -n 20Nur die letzten 20 Einträge
uerf -c err -R -o fullNur Einträge der Klasse „error“
uerf -r 199 -R -o fullNach Record-Typ filtern (z. B. Disk-Fehler)
uerf -f /var/adm/binary.errlog.saved -R -o fullArchiviertes Log auswerten
uerf -D dsk3 -R -o fullNur Einträge zu einem Gerät
uerf -R -o full > /var/tmp/uerf.txtAuszug für den Support erzeugen
/var/adm/binary.errlogBinäres Fehlerlog, geschrieben von binlogd
/etc/binlog.confSteuert, welche Ereignisse binlogd wohin schreibt
kill -HUP `cat /var/run/binlogd.pid`binlogd nach Änderung von binlog.conf neu einlesen lassen

DECevent / Compaq Analyze

dia -R | moreFehlerlog übersetzt anzeigen, neueste zuerst
dia -o terse -i disk -RNur Disk-Ereignisse in Kurzform
dia -o brief -i ios -RI/O-Subsystem-Ereignisse
dia -cFortlaufende Anzeige neuer Ereignisse
dia ls evtVerfügbare Ereignisklassen auflisten
dia ana -i disk -i iosAnalysemodus über mehrere Klassen
wseaWeb-basierte Fehleranalyse (Compaq Analyze), Browser-Oberfläche

Event Manager (EVM)

evmget | evmshow | moreGespeicherte Ereignisse lesbar ausgeben
evmget | evmsort | evmshow -t "@timestamp @name @@" | moreZeitlich sortierte Ereignisliste mit Meldungstext
evmget -f "[name *.binlog*]" | evmshow -dNur Ereignisse aus dem Binary-Error-Log, mit Details
evmget -f "[priority >= 500]" | evmshow -DNur hochpriore Ereignisse (Hardware, Panic)
evmget -A -f "[age < 1d]" | evmshow -t "@timestamp @@"Alle Ereignisse der letzten 24 Stunden
evmwatch -A | evmshow -t "@timestamp @name @@"Ereignisse live mitlesen (gutes Fenster während Wartung)
evmwatch -i | evmshow -t "@name"Alle registrierten Ereignisnamen anzeigen
evmpostEigenes Ereignis in den EVM-Kanal einspeisen (Skript-Meldungen)
evmreload -dEVM-Konfiguration neu laden
/etc/evmdaemon.conf, /etc/evmchannel.confEVM-Konfigurationsdateien
/var/evm/adm/logfiles/EVM-Logdateien
/sbin/init.d/evm restartEVM-Daemon neu starten

Syslog & Crash-Dumps

tail -100 /var/adm/messagesAktuelle Systemmeldungen
/var/adm/syslog.dated/Tagesverzeichnisse mit kern.log, daemon.log, auth.log usw.
ls -lt /var/adm/syslog.dated | headNeuestes Syslog-Verzeichnis finden
/etc/syslog.confWelche Facility/Priority wohin geschrieben wird
kill -HUP `cat /var/run/syslog.pid`syslogd neu konfigurieren lassen
/var/adm/crash/Ablage von vmunix.N, vmzcore.N und crash-data.N
cat /var/adm/crash/boundsNummer des nächsten Dumps
crashdc /var/adm/crash/vmunix.0 /var/adm/crash/vmzcore.0Crash-Data-Collection: Kurzbericht für den Support
dbx -k /var/adm/crash/vmunix.0 /var/adm/crash/vmzcore.0Dump analysieren (p panicstr, t für Stack)
kdbx -k /var/adm/crash/vmunix.0 /var/adm/crash/vmzcore.0Komfortabler Dump-Debugger (sum, kps, t)
savecore -d /var/adm/crashDump aus dem Swap-Bereich in Dateien sichern
dumpsysDump des laufenden Systems erzeugen (bei Hängern, Last!)
sysconfig -q generic dump_sp_thresholdDump-Konfiguration des Kernels prüfen
hwmgr status component -ngoodKomponenten, die nicht im Zustand „good“ sind
hwmgr show component -full | moreDetaillierter Hardware-Zustandsbericht
sys_check -escalateVollständige Systembeschreibung für ein Support-Ticket
# Fehlersuche bei vermutetem Plattenproblem
# 1) Zustand der Hardware aus Sicht des Kernels
hwmgr status component -ngood
hwmgr show scsi                       # welches dskN haengt an welchem Bus/Target

# 2) Binary Error Log: neueste Eintraege, kompakt
uerf -R -o terse | head -40
uerf -R -o full | grep -i -E "dsk|scsi|hard error" | head -40

# 3) Nur Disk-Ereignisse uebersetzt anzeigen
dia -o terse -i disk -R | head -40

# 4) EVM als zweite Quelle (5.1B: uerf allein reicht nicht)
evmget -A -f "[age < 2d]" | evmsort | \
  evmshow -t "@timestamp @name" | grep -i -E "disk|scsi|advfs"

# 5) Sicht des Dateisystems: welche Domain nutzt die Platte
showfdmn data_domain
/sbin/advfs/advscan dsk3               # Domain-Zugehoerigkeit der Platte

# 6) Auszug fuer den Support sichern
uerf -R -o full > /var/tmp/uerf_full.txt
evmget -A | evmshow -D > /var/tmp/evm_full.txt
sys_check -escalate > /var/tmp/sys_check.html 2>&1
uerf ist in 5.1B nur die halbe Wahrheit: Klassische Hardwarefehler landen weiter über binlogd in /var/adm/binary.errlog und sind mit uerf lesbar. Viele Subsysteme (AdvFS, Cluster, CAA, Netz) melden aber ausschließlich über den Event Manager. Bei einer Fehlersuche daher immer beide Quellen abfragen: uerf -R -o terse und evmget | evmsort | evmshow.
Reihenfolge, die sich bewährt hat: hwmgr status component -ngood (was ist kaputt) → uerf -R -o terse (seit wann) → dia -o terse -i disk -R (was genau) → evmget (was hat das Betriebssystem daraus gemacht).
dumpsys friert das System für die Dauer des Dumps praktisch ein und braucht Platz in Größe des Hauptspeichers unter /var/adm/crash. Vorher df -k /var prüfen und nur nach Rücksprache mit dem Support ausführen.

📦Software, Subsets & Patches

setld – Subset-Verwaltung

setld -i | moreAlle bekannten Subsets mit Installationsstatus
setld -i | grep installed | wc -lAnzahl installierter Subsets
setld -i OSFCMPLRS540Status eines bestimmten Subsets
setld -i OSFBASE540 | moreDateiliste eines installierten Subsets
setld -l /mnt/ALPHA/BASESubsets vom Kit-Verzeichnis installieren (interaktive Auswahl)
setld -l /mnt/ALPHA/BASE OSFCMPLRS540Genau ein Subset installieren
setld -d OSFCMPLRS540Subset deinstallieren
setld -v OSFBASE540Installiertes Subset gegen die Inventardatei verifizieren
setld -x /mnt/kit OSFXXX540Dateien nur entpacken, ohne zu installieren
setld -c OSFBASE540 "Meldung"Subset-Kontrollprogramm aufrufen (von Skripten genutzt)
/usr/.smdb./Datenbank aller Subsets (.inv, .ctrl, .lk)
ls /usr/.smdb./*.lkHängengebliebene Lock-Dateien einer abgebrochenen Installation
/usr/lbin/fverify -np < /usr/.smdb./OSFBASE540.invDateiinventar gegen die Platte prüfen
/var/adm/smlogs/setld.logProtokoll aller setld-Läufe
/var/adm/smlogs/install.logProtokoll der Betriebssysteminstallation

Patches mit dupatch

dupatchMenügeführte Patch-Verwaltung (Installieren, Entfernen, Auflisten)
dupatch -track -type kitInstallierte Patch-Kits mit Versionsstand anzeigen
dupatch -track -type patch -nologAlle einzelnen Patches auflisten, ohne Logdatei zu schreiben
dupatch -track -type patch -nolog | grep "Patch C"Nur die eigentlichen Patch-Zeilen filtern
dupatch -track -type patch -nolog > /var/tmp/patches_vorher.txtPatch-Stand vor einer Änderung dokumentieren
dupatch -delete -product Tru64_UNIX_V5.1B -patch "C 00362.02"Einzelnen Patch gezielt zurücknehmen
/var/adm/patch/log/event.logWas wurde wann gepatcht – erste Anlaufstelle
/var/adm/patch/backup/Von dupatch gesicherte Originaldateien (Platzbedarf beachten)
/var/adm/patch/patch.dbPatch-Datenbank des Systems
ls /var/adm/patch/doc/Beschreibungstexte der installierten Patches

Updates, Lizenzen & Installation

installupdate /mntUpdate-Installation auf ein neues Release
installupdate -cAbgebrochenes Update fortsetzen bzw. aufräumen
nhd_installNew Hardware Delivery einspielen (Treiber für neue Hardware)
sizer -vBetriebssystemversion und Build-Stand
/etc/motdEnthält bei Standardinstallation die Release-Zeile
risRemote Installation Services verwalten (Netz-Installation)
lmf listLizenzen im License Management Facility auflisten
lmf list full | moreLizenzdetails inklusive Ablaufdatum und Anzahl Units
lmf loadLizenzdatenbank in den Kernel laden
lmf register - < /tmp/pak.txtPAK aus Datei registrieren
lmf resetLizenz-Cache nach Änderungen aktualisieren
/var/adm/lmf/ldbLizenzdatenbank (in Backup einschließen)
# Patch-Kit einspielen  (Reihenfolge nicht abkuerzen)
# 1) Ausgangszustand dokumentieren
sizer -v
dupatch -track -type kit  -nolog > /var/tmp/kits_vorher.txt
dupatch -track -type patch -nolog > /var/tmp/patches_vorher.txt
df -k /var /usr /                      # Platz fuer /var/adm/patch/backup pruefen

# 2) Vollbackup der Systemdomains (siehe Abschnitt Backup)
vdump -0uf /dev/ntape/tape0_d1 /
vdump -0uf /dev/ntape/tape0_d1 /usr
vdump -0uf /dev/ntape/tape0_d1 /var

# 3) In den Single-User-Mode wechseln  (Kernel-Patches!)
shutdown now                           # bzw. init s
mountroot                              # nur falls noetig
bcheckrc                               # Filesysteme pruefen und mounten

# 4) Kit einspielen
mount -t cdfs -o noversion /dev/disk/cdrom0c /mnt
cd /mnt/patch_kit
./dupatch                              # Menue: Patch Kit Installation

# 5) Kernel neu bauen, falls dupatch dazu auffordert
doconfig -c `hostname | cut -d. -f1`
cp /sys/`hostname | cut -d. -f1`/vmunix /vmunix
shutdown -r now

# 6) Ergebnis kontrollieren
sizer -v
dupatch -track -type kit -nolog
grep -i error /var/adm/patch/log/event.log
dupatch niemals ohne Backup: Ein abgebrochener Patch-Lauf kann das System unbootbar machen. Immer vorher ein vollständiges vdump von /, /usr und /var, und Kernel-Patches ausschließlich im Single-User-Mode einspielen. Nach dem Lauf /var/adm/patch/log/event.log auf Fehler prüfen.
Platz für Backups: dupatch sichert jede ersetzte Datei unter /var/adm/patch/backup. Ist /var voll, bricht der Lauf mitten in der Installation ab. Vorher df -k /var prüfen und alte Patch-Backups nur nach bestätigtem Betrieb entfernen.
Im Cluster wird ein Patch-Kit mit dupatch auf einem Mitglied eingespielt und anschließend mit clu_upgrade Rolling über die restlichen Mitglieder gezogen – nicht parallel auf mehreren Knoten starten.

💾Backup & Recovery

vdump / vrestore (AdvFS)

vdump -0uf /dev/ntape/tape0_d1 /dataVollbackup Level 0, Datum in /etc/vdumpdates schreiben
vdump -1uf /dev/ntape/tape0_d1 /dataInkrementell: alles seit dem letzten Level 0
vdump -0f /var/tmp/data.vdump /dataBackup in eine Datei statt auf Band
vdump -0vf /dev/ntape/tape0_d1 /dataMit Fortschrittsanzeige (verbose)
vdump -0f - /data | gzip > /backup/data.vdump.gzKomprimiertes Backup über die Pipe
vdump -D /dataAuch bei nicht gemountetem Fileset arbeiten (Pfadangabe)
/etc/vdumpdatesHistorie der Backup-Level – unbedingt mitsichern
vrestore -tf /dev/ntape/tape0_d1 | moreInhaltsverzeichnis des Backups anzeigen (nichts schreiben)
vrestore -xf /dev/ntape/tape0_d1 -D /mntAlles nach /mnt zurückschreiben
vrestore -xf /dev/ntape/tape0_d1 -D /mnt ./etc/passwdEinzelne Datei gezielt zurückholen
vrestore -if /dev/ntape/tape0_d1 -D /mntInteraktiv auswählen (ls, cd, add, extract)
rvdump -f srv:/dev/ntape/tape0_d1 /dataBackup auf ein Bandlaufwerk eines anderen Rechners
rvrestore -xf srv:/dev/ntape/tape0_d1 -D /mntRücksicherung von einem entfernten Laufwerk
vdump -0f - /data | ssh srv "/sbin/vrestore -xf - -D /data"Fileset direkt auf einen anderen Rechner klonen

Band und UFS-Werkzeuge

mt -f /dev/ntape/tape0_d1 statusBandlaufwerk-Status (Gerät bereit, Band eingelegt)
mt -f /dev/ntape/tape0_d1 rewindBand zurückspulen
mt -f /dev/ntape/tape0_d1 fsf 2Zwei Dateimarken vorspulen (mehrere Backups pro Band)
mt -f /dev/ntape/tape0_d1 offlineBand auswerfen
mt -f /dev/ntape/tape0_d1 eraseBand löschen (dauert lange)
/dev/ntape/tape0_d1Bandgerät ohne Rückspulen (no-rewind) – für mehrere Saves
/dev/tape/tape0_d1Bandgerät mit automatischem Rückspulen
dump 0uf /dev/ntape/tape0_d1 /dev/rdisk/dsk2gVollbackup eines UFS-Dateisystems
restore -if /dev/ntape/tape0_d1Interaktive Rücksicherung eines dump-Backups
restore -rf /dev/ntape/tape0_d1Komplettes UFS-Dateisystem wiederherstellen
tar cvf /dev/ntape/tape0_d1 /homeVerzeichnis mit tar sichern
tar tvf /dev/ntape/tape0_d1 | moreInhalt eines tar-Archivs prüfen
tar xvf /dev/ntape/tape0_d1tar-Archiv im aktuellen Verzeichnis auspacken
pax -wf /var/tmp/home.pax /homePortables Archiv erzeugen (erhält große Dateien besser)
find /home -print | cpio -ocv > /var/tmp/home.cpiocpio-Archiv aus einer Dateiliste
dd if=/dev/rdisk/dsk0a of=/var/tmp/boot.img bs=64kRohkopie einer Partition (Bootblock-Sicherung)
btcreateBootfähiges Notfall-Band (Bootable Tape) erzeugen
# Konsistentes Online-Backup einer AdvFS-Domain mit Clone
# 1) Ausgangslage pruefen
showfdmn data_domain                   # freier Platz in der Domain?
showfsets data_domain

# 2) Clone-Fileset anlegen  (Snapshot, nur Metadaten)
clonefset data_domain data_fs data_fs_clone
mkdir -p /mnt/clone
mount -t advfs data_domain#data_fs_clone /mnt/clone

# 3) Vom Clone sichern - Anwendung laeuft weiter
vdump -0uvf /dev/ntape/tape0_d1 /mnt/clone

# 4) Clone wieder abbauen  (haelt sonst Platz in der Domain)
umount /mnt/clone
rmfset data_domain data_fs_clone
showfdmn data_domain                   # Platz zurueck?
# Systembackup vor einer Aenderung  (Patch, Kernel, Upgrade)
# 1) Konfiguration in Textform sichern - klein, aber Gold wert
mkdir -p /var/tmp/cfg.`date +%Y%m%d`
cd       /var/tmp/cfg.`date +%Y%m%d`
sizer -v                        > sizer.txt
hwmgr view devices              > hwmgr_devices.txt
hwmgr -view hierarchy           > hwmgr_hierarchy.txt
showfdmn '*'                    > showfdmn.txt 2>&1
ls -l /etc/fdmns/*              > fdmns.txt
disklabel -r dsk0               > disklabel_dsk0.txt
volprint -ht                    > volprint.txt 2>&1
sysconfig -q generic            > sysconfig_generic.txt
cp -p /etc/fstab /etc/rc.config /etc/sysconfigtab /etc/exports .
dupatch -track -type patch -nolog > patches.txt

# 2) Systemfilesets vollstaendig auf Band  (Level 0)
mt -f /dev/ntape/tape0_d1 rewind
vdump -0uvf /dev/ntape/tape0_d1 /
vdump -0uvf /dev/ntape/tape0_d1 /usr
vdump -0uvf /dev/ntape/tape0_d1 /var
mt -f /dev/ntape/tape0_d1 rewind

# 3) Backup verifizieren - ohne Pruefung kein Backup
mt -f /dev/ntape/tape0_d1 rewind
vrestore -tf /dev/ntape/tape0_d1 | head -20
mt -f /dev/ntape/tape0_d1 fsf 1
vrestore -tf /dev/ntape/tape0_d1 | head -20
mt -f /dev/ntape/tape0_d1 offline
vdump und dump sind nicht austauschbar: vdump/vrestore arbeiten nur mit AdvFS-Filesets, dump/restore nur mit UFS. Ein mit dump gesichertes AdvFS-Fileset ist nicht wiederherstellbar. Welches Dateisystem vorliegt, zeigt mount bzw. /etc/fstab (Typ advfs oder ufs).
Was häufig fehlt: /etc/fdmns (Struktur der AdvFS-Domains), /etc/vdumpdates, die Disklabel-Ausgaben, /var/adm/lmf/ldb (Lizenzen) und die Crontabs unter /var/spool/cron/crontabs. Ohne diese Daten ist ein Bare-Metal-Restore erheblich aufwendiger.
Verifizieren: Ein Backup, dessen Inhaltsverzeichnis nie gelesen wurde, ist eine Vermutung. Nach jedem Lauf mindestens vrestore -tf <device> | head ausführen und regelmäßig einen echten Restore in ein Testfileset üben.

🔗TruCluster Server

Cluster-Status & Quorum

clu_get_infoMitglieder, Member-IDs und Status des Clusters
clu_get_info -fullAusführlich: Votes, Interconnect, Cluster-Name
clu_get_info -rawMaschinenlesbare Ausgabe für Skripte
clu_get_info -m 2Nur Informationen zu Member 2
clu_quorumQuorum-Konfiguration und aktuelle Votes anzeigen
sysconfig -q clubase cluster_expected_votesErwartete Gesamtstimmen des Clusters
sysconfig -q clubase cluster_node_votesStimmen dieses Mitglieds
sysconfig -q clubase cluster_qdisk_votesStimme der Quorum-Disk
sysconfig -q clubase cluster_qdisk_major cluster_qdisk_minorWelche Platte ist die Quorum-Disk
/etc/sysconfigtabStanza clubase je Mitglied – hier stehen die Votes
cnxshowConnection-Manager-Status, Sicht auf die anderen Mitglieder
/cluster/members/member0/Member-spezifische Dateien (boot_partition, /var, /tmp)
memberid; /etc/rc.config: MEMBER_IDEigene Member-ID ermitteln
/var/adm/messagesCluster-Meldungen (Transitions, Quorum-Verlust)

CAA – Cluster Application Availability

caa_statStatus aller registrierten Ressourcen
caa_stat -tTabellarische Übersicht (Name, Typ, Target, State, Host)
caa_stat -vAusführlich inklusive Restart-Zähler und Fehlerursache
caa_stat oracle_appStatus einer einzelnen Ressource
caa_start oracle_appRessource starten (CAA wählt den Knoten nach Placement)
caa_stop oracle_appRessource stoppen
caa_stop -f oracle_appStopp erzwingen, auch bei hängendem Action-Skript
caa_relocate oracle_app -c host2Ressource geplant auf ein anderes Mitglied verschieben
caa_relocate -s host1 -c host2Alle Ressourcen von host1 nach host2 umziehen (Wartung)
caa_balance -allRessourcen gemäß Placement-Policy neu verteilen
caa_profile -print oracle_appRessourcenprofil anzeigen
caa_profile -validate oracle_appProfil auf Fehler prüfen, bevor es registriert wird
caa_register oracle_appRessource in der CAA-Registry aufnehmen
caa_unregister oracle_appRessource aus der Registry entfernen (vorher stoppen)
/var/cluster/caa/profile/Profildateien (*.cap) der Ressourcen
/var/cluster/caa/script/Action-Skripte (start/stop/check) der Ressourcen
/var/cluster/caa/log/CAA-Protokolle bei fehlgeschlagenem Start

CFS, DRD & Cluster-Alias

cfsmgrServer-Zuordnung aller Cluster-Dateisysteme
cfsmgr /dataWer serviert dieses Dateisystem gerade
cfsmgr -F rawMaschinenlesbare Ausgabe für Skripte
cfsmgr -a SERVER=host2 -d data_domainCFS-Server einer Domain auf host2 umstellen
cfsmgr -h host2 -r -a SERVER=host1 /dataRelokation von einem anderen Mitglied aus anstoßen
cfsmgr -a statistics /dataCFS-Statistik eines Dateisystems
cfsmgr -eNur die Dateisysteme mit ihren Mountpunkten auflisten
drdmgr dsk3Device Request Dispatcher: Server und Zugriffsart einer Platte
drdmgr -F raw dsk3DRD-Info maschinenlesbar
drdmgr -a server=host2 dsk3DRD-Server einer Platte wechseln
drdmgr -h host2 dsk3DRD-Sicht eines anderen Mitglieds abfragen
cluamgr -s allStatus aller Cluster-Aliase
cluamgr -r startCluster-Alias-Subsystem starten
cluamgr -a alias=clusrv,selw=3,joinMitglied einem Alias mit Gewichtung zuordnen
cluamgr -a alias=clusrv,leaveMitglied aus dem Alias herausnehmen (vor Wartung)
clua_active clusrvPrüfen, ob dieses Mitglied den Alias aktiv bedient
/etc/clu_alias.configPersistente Alias-Konfiguration
/etc/clua_servicesWelche Dienste über den Alias verteilt werden

Mitglieder, CDSLs & Wartung

clu_check_configCluster-Konfiguration auf Fehler prüfen (nach jeder Änderung)
clu_check_config -vAusführliche Prüfung mit Report
clu_createErsten Cluster aus einem Einzelsystem erzeugen
clu_add_memberWeiteres Mitglied aufnehmen (interaktiv)
clu_delete_member -m 3Mitglied 3 aus dem Cluster entfernen
clu_upgrade statusStand eines Rolling Upgrade abfragen
clu_upgrade check installVoraussetzungen für den nächsten Schritt prüfen
clu_upgrade -vRolling Upgrade mit Meldungen fortsetzen
mkcdsl -a /var/log/meinprog.logContext Dependent Symbolic Link anlegen (member-eigene Datei)
cdslinvchkCDSL-Inventar auf fehlende oder defekte Links prüfen
ls -l /var/adm | grep membersCDSLs erkennen: Ziel enthält {memb}
shutdown -h nowNur dieses Mitglied herunterfahren (Cluster läuft weiter)
shutdown -c nowDen gesamten Cluster herunterfahren
cluster_root#root, cluster_usr#usr, cluster_var#varGemeinsame AdvFS-Domains des Clusters
root2_domain#rootBoot-Partition von Member 2
# Mitglied fuer Wartung geordnet aus dem Betrieb nehmen
# 1) Ausgangszustand festhalten
clu_get_info -full
clu_quorum
caa_stat -t
cfsmgr -e

# 2) Anwendungen auf das andere Mitglied verschieben
caa_relocate -s host1 -c host2
caa_stat -t                            # laeuft alles auf host2?

# 3) Cluster-Alias abmelden, damit keine neuen Verbindungen kommen
cluamgr -a alias=clusrv,leave
cluamgr -s all

# 4) CFS-Serverrollen abgeben
cfsmgr -e                              # welche Filesysteme serviert host1
cfsmgr -a SERVER=host2 -d data_domain
cfsmgr -e                              # jetzt alle auf host2

# 5) Quorum pruefen  -  bleibt der Rest beschlussfaehig?
clu_quorum
# QV = (CEV >> 1) + 1 :  bei CEV=3 ist QV=2, ein Ausfall ist tragbar

# 6) Nur dieses Mitglied herunterfahren
shutdown -h now                        # NICHT shutdown -c (das faellt der Cluster)
Keine direkten mount-Eingriffe im Cluster: Ein Cluster-Dateisystem wird von genau einem Mitglied serviert. Wer mit mount/umount von Hand eingreift oder eine Domain auf zwei Knoten aktiviert, riskiert Metadaten-Korruption der AdvFS-Domain. Serverwechsel ausschließlich mit cfsmgr -a SERVER=..., Plattenzugriffe mit drdmgr, Anwendungen mit caa_relocate.
Quorum-Rechnung: Das benötigte Quorum ergibt sich aus den erwarteten Stimmen: QV = (CEV >> 1) + 1, also die Hälfte abgerundet plus eins. Zwei Mitglieder mit je einer Stimme (CEV=2, QV=2) sind nicht ausfallsicher – erst eine Quorum-Disk (CEV=3, QV=2) erlaubt den Verlust eines Knotens. Werte je Mitglied in der clubase-Stanza in /etc/sysconfigtab.
CDSLs respektieren: Pfade wie /var/adm/syslog.dated sind im Cluster Symlinks nach /cluster/members/{memb}/.... Wer sie durch echte Verzeichnisse ersetzt, bricht die Trennung der Mitglieder. Neue member-spezifische Dateien mit mkcdsl anlegen und mit cdslinvchk prüfen.

📄Wichtige Dateien & Verzeichnisse

Boot, Kernel & Konfiguration

/etc/fstabMount-Tabelle (Typ advfs oder ufs, Domain#Fileset)
/etc/inittabRunlevel und Startprozesse von init
/etc/rc.configZentrale Konfigurationsvariablen (nur mit rcmgr ändern)
/etc/rc.config.commonClusterweite Variablen, auf allen Mitgliedern identisch
/etc/rc.config.siteEigene, standortspezifische Variablen
/sbin/init.d/Startskripte der Dienste (start/stop/restart)
/sbin/rc3.d/Symlinks, die die Startreihenfolge in Runlevel 3 festlegen
/etc/sysconfigtabKernel-Parameter in Stanzas (nur mit sysconfigdb ändern)
/etc/sysconfigtab.protoVorlage der Kernel-Konfiguration
/sys/conf/HOSTNAMEKernel-Konfigurationsdatei für doconfig
/vmunixLaufender Kernel – vor jedem Neubau kopieren
/etc/ddr.dbaseDynamic Device Recognition: Definitionen der SCSI-Geräte
/etc/ddr.dbKompilierte DDR-Datenbank (mit ddr_config erzeugt)

Storage & Devices

/etc/fdmns/Je Domain ein Verzeichnis mit Symlinks auf die Volumes
/etc/fdmns/data_domain/dsk3cBeispiel: Volume dsk3c gehört zu data_domain
/dev/disk/dsk3cBlock-Gerätedatei einer Plattenpartition
/dev/rdisk/dsk3cZugehöriges Raw-Device (für disklabel, dd, newfs)
/dev/ntape/tape0_d1Bandlaufwerk ohne Rückspulen
/dev/tape/tape0_d1Bandlaufwerk mit Rückspulen
/dev/vol/rootdg/vol01LSM-Volume (Block), Raw unter /dev/rvol/
/etc/vol/volbootLSM-Bootinformation – ohne sie startet LSM nicht
/etc/dfsl.dat, /etc/dccd.datDatenbanken des Device-Special-File-Managers (dsfmgr)
/etc/vdumpdatesHistorie der vdump-Level je Fileset

Logs, Sicherheit & Cluster

/var/adm/messagesAllgemeine Systemmeldungen
/var/adm/syslog.dated/Tagesverzeichnisse mit kern.log, daemon.log, auth.log
/etc/syslog.confSteuerung von syslogd
/var/adm/binary.errlogBinäres Hardware-Fehlerlog (mit uerf lesen)
/etc/binlog.confKonfiguration von binlogd
/var/evm/adm/logfiles/Logdateien des Event Managers
/var/adm/crash/Crash-Dumps (vmunix.N, vmzcore.N, bounds)
/var/adm/wtmp, /var/adm/utmpAn- und Abmeldehistorie (last, who)
/var/adm/sialogProtokoll fehlgeschlagener Anmeldungen
/etc/auth/subsystem/Enhanced-Security-Kontenprofile
/tcb/bin/Programme des Trusted Computing Base
/etc/sia/matrix.confReihenfolge der Authentifizierungsmechanismen
/etc/securettysTerminals, an denen root-Login erlaubt ist
/var/spool/cron/crontabs/Crontabs aller Benutzer
/var/adm/patch/log/event.logPatch-Historie (dupatch)
/usr/.smdb./Subset-Datenbank von setld
/var/adm/smlogs/Protokolle von setld und der Installation
/var/adm/lmf/ldbLizenzdatenbank (lmf)
/cluster/members/memberN/Member-eigene Dateien im Cluster (Ziel der CDSLs)
/etc/clua_services, /etc/clu_alias.configCluster-Alias-Konfiguration
/var/cluster/caa/CAA-Profile, Action-Skripte und Logs
Diese Dateien nie von Hand editieren: /etc/rc.config* (nur rcmgr), /etc/sysconfigtab (nur sysconfigdb), /etc/fdmns/* (nur mkfdmn/addvol/rmvol), /etc/auth/* (nur edauth/usermod -x). Von Hand geänderte Einträge gehen beim nächsten Werkzeugaufruf verloren oder machen die Datenbank inkonsistent.

🔧SysMan, Shell-Tipps & Praxis-Workflows

SysMan & grafische Werkzeuge

sysmanSysMan Menu – startet grafisch, wenn DISPLAY gesetzt ist
sysman -ui cuiTextoberfläche erzwingen (auf der seriellen Konsole)
sysman -listAlle Accelerators (Kurznamen der Tasks) auflisten
sysman -list | grep -i diskPassenden Accelerator suchen
sysman -accel usersDirekt in die Benutzerverwaltung springen
sysman -accel diskDirekt in die Plattenverwaltung springen
sysman -menuVollständiges Menübaum-Fenster
sysman_stationGrafische Gesamtübersicht mehrerer Systeme/Cluster
sysman -stationAlternativer Aufruf der SysMan Station
dxkerneltunerKernel-Parameter grafisch anzeigen und ändern
dxadvfsAdvFS-Domains und Filesets grafisch verwalten
dxlsmLSM grafisch verwalten
dxaccountsBenutzer- und Gruppenverwaltung (CDE)
dxsetupGrafische Systemkonfiguration
swxcrmgrRAID-Array-Manager (StorageWorks Controller)
dop -l; dopconfigPrivilegierte Aufgaben an Nicht-root delegieren
DISPLAY=pc:0.0; export DISPLAYVoraussetzung für alle dx*-Werkzeuge

Shell & Alltag

set -o viKommandozeilen-Editing mit vi-Tasten (ksh) – ins .profile
whence -v befehlWo liegt das Kommando, ist es ein Alias oder eine Funktion
man -k advfsManpages nach Stichwort durchsuchen
man 4 advfs; man 8 hwmgrGezielt Abschnitt 4 (Formate) bzw. 8 (Admin) lesen
man sys_attrs_vmAlle Tunables eines Subsystems mit Bedeutung und Default
script /var/tmp/session.logKomplette Sitzung mitschneiden (vor Wartungsarbeiten)
cmd 2>&1 | tee /var/tmp/cmd.logAusgabe gleichzeitig sehen und protokollieren
find / -xdev -size +100000 -exec ls -l {} \;Große Dateien nur im aktuellen Dateisystem suchen
du -k /var | sort -rn | head -20Größte Verzeichnisse finden (Dateisystem voll)
df -k; df -k /dataBelegung aller bzw. eines Dateisystems in Kilobyte
for d in `ls /etc/fdmns`; do showfdmn $d; doneAlle AdvFS-Domains in einem Durchgang prüfen
for d in `ls /etc/fdmns`; do showfsets $d; doneAlle Filesets samt Quota-Werten anzeigen
gzip -9 datei; gunzip datei.gzDateien komprimieren und wieder auspacken
compress datei; uncompress datei.ZKlassische Kompression (auf alten Systemen verbreitet)
wall "Wartung in 10 Minuten"Meldung an alle angemeldeten Benutzer
env | sort; printenv PATHEnvironment prüfen (häufigste Fehlerursache in Skripten)
# Neue Platte in eine bestehende AdvFS-Domain aufnehmen
# 1) Platte vom Kernel erkennen lassen
hwmgr -scan scsi                       # Bus neu absuchen
hwmgr view devices | grep dsk          # welches dskN ist neu
hwmgr show scsi                        # Bus/Target/LUN zur Zuordnung

# 2) Falls kein Geraetename erscheint: Special Files erzeugen
dsfmgr -v                              # Datenbank pruefen
dsfmgr -K                              # fehlende Special Files anlegen
ls -l /dev/disk/dsk4*  /dev/rdisk/dsk4*

# 3) Disklabel schreiben  -  ohne Label ist die Platte nicht nutzbar
disklabel -r dsk4                      # vorhandenes Label lesen (Fehler = kein Label)
disklabel -rw dsk4                     # Standardlabel schreiben
disklabel -r dsk4                      # Partition c ueber die ganze Platte?

# 4) Volume der Domain hinzufuegen
showfdmn data_domain                   # Zustand vorher notieren
addvol /dev/disk/dsk4c data_domain
showfdmn data_domain                   # neues Volume mit Free Space sichtbar?
ls -l /etc/fdmns/data_domain           # Symlink auf dsk4c vorhanden?

# 5) Daten gleichmaessig verteilen
balance data_domain
showfdmn data_domain
df -k /data
# AdvFS-Domain ist voll  -  strukturiertes Vorgehen
# 1) Wo genau fehlt Platz: Domain oder Fileset-Quota
df -k /data
showfdmn data_domain                   # Free Space der Domain
showfsets data_domain                  # Quotas des Filesets

# 2) Schnellster Gewinn: Fragmentierung pruefen und beheben
defragment -nv data_domain             # -n = nur analysieren, nichts aendern
defragment -v  data_domain             # im Betrieb moeglich, erzeugt I/O-Last
showfile -x /data/grossedatei          # Extents einer einzelnen Datei

# 3) Grosse Verbraucher finden
du -k /data | sort -rn | head -20
find /data -xdev -size +200000 -exec ls -l {} \;

# 4) Quota des Filesets anheben, falls nicht die Domain die Grenze ist
chfsets -b 0 -f 0 data_domain data_fs  # 0 = unbegrenzt (Domain begrenzt dann)

# 5) Domain dauerhaft vergroessern
hwmgr -scan scsi
disklabel -rw dsk5
addvol /dev/disk/dsk5c data_domain
showfdmn data_domain
balance data_domain

# 6) Alternative ohne neue Platte: vfast dauerhaft aktivieren
vfast status  data_domain
vfast activate data_domain
vfast enable   -o defragment=enable data_domain
Vor jeder Änderung diese vier Befehle: sizer -v (welches Release), hwmgr view devices (welche Geräte), showfdmn '*' (welche Domains), clu_get_info (Cluster oder Einzelsystem). Die Ausgaben in eine Datei umleiten – sie sind später der einzige Beweis des Ausgangszustands.
Manpages sind auf Tru64 die beste Quelle: Neben den Kommando-Manpages gibt es sys_attrs_<subsystem> für jedes Kernel-Subsystem (z. B. man sys_attrs_advfs, man sys_attrs_inet) mit Default, Minimum und Maximum jedes Tunables. Vor jeder sysconfigdb-Änderung dort nachlesen.
Grundregel: Kein Eingriff an Kernel, AdvFS, LSM oder Cluster ohne aktuelles Backup und ohne notierten Ausgangszustand. Tru64 ist außer Support – ein defektes System lässt sich nicht mehr durch eine Neuinstallation von der Herstellerseite retten.