Keine Treffer – Suchbegriff anpassen.
💻System- & Hardware-Informationen
| hinv | Hardware-Inventar: CPU, RAM, Platten, Grafik, Adapter – wichtigster Einstiegsbefehl |
| hinv -v | Verbose: zusätzliche Details je Komponente |
| hinv -m | Modul-/Board-Informationen inkl. Seriennummern und Revisionen |
| hinv -mv | Kombination: Boards ausführlich (typisch für Hardware-Tickets) |
| hinv -b | Bus-spezifische Informationen (VME/PCI/XIO) |
| hinv -c disk | Nur Platten (Controller-/Drive-Adresse ablesen) |
| hinv -c processor | Nur CPUs: Typ, Takt, Anzahl, Cache |
| hinv -c memory | Nur Speicher: Hauptspeicher und Bankbelegung |
| hinv -c tape | Nur Bandlaufwerke |
| hinv -c network | Nur Netzwerk-Controller |
| hinv -c graphics | Nur Grafik-Subsystem |
| uname -a | Hostname, OS, Release, Maschinentyp, Prozessorklasse |
| uname -R | Release inkl. Minor-Release, z. B. 6.5 6.5.30f |
| uname -m | CPU-Board-Typ, z. B. IP30 (Octane), IP27 (Origin), IP32 (O2) |
| uname -p | Prozessortyp, z. B. mips |
| uname -n | Hostname – kommt aus /etc/sys_id |
| cat /etc/sys_id | Definiert den Systemnamen (Hostname) verbindlich |
| sysinfo | System-ID (Host-ID) in hexadezimaler Form |
| sysinfo -s | Seriennummer/System-ID dezimal – Basis vieler FLEXlm-Lizenzen |
| /usr/gfx/gfxinfo | Grafik-Pipe(s): Typ, Speicher, Auflösung, Board-Revisionen |
| /usr/gfx/gfxinfo -vv | Grafik-Details ausführlich |
| /sbin/nvram | Alle NVRAM-Variablen aus IRIX heraus anzeigen |
| /sbin/nvram netaddr | Einzelne NVRAM-Variable lesen |
| /sbin/nvram netaddr 10.0.0.10 | NVRAM-Variable aus IRIX heraus setzen (persistent) |
| date; uptime; w | Zeit, Laufzeit, Load Average, angemeldete Benutzer |
| who -r | Aktuellen Runlevel anzeigen |
| last reboot | head | Reboot-Historie aus /var/adm/wtmp |
| versions -b eoe | Installierten IRIX-Stand (Execution Environment) ablesen |
Praxis: Vor jedem Change den Ist-Zustand wegschreiben:
hinv -mv > /var/tmp/hinv.txt, versions -b > /var/tmp/versions.txt,
prtvtoc > /var/tmp/vtoc.txt und xlv_mgr -c "show all" sichern.
/proc und /hw
| ls /proc | Ein Eintrag je Prozess (PID) – Basis für dbx und par |
| ls -R /hw | Hardware-Graph-Filesystem: physische Gerätetopologie (ab IRIX 6.4) |
| ls -l /hw/module | Module/Bricks eines Origin-Systems |
Merke: /etc/sys_id bestimmt den Hostnamen – nicht hostname.
Eine Änderung erfordert einen passenden Eintrag in /etc/hosts und einen Neustart des
Netzwerks (/etc/init.d/network stop; /etc/init.d/network start), sonst startet das
Netzwerk nicht korrekt.
⏻Boot, PROM-Monitor & Runlevel
System Maintenance Menu (Esc beim Einschalten)
| 1 Start System | Normal booten (identisch zum Autoboot) |
| 2 Install System Software | Miniroot/inst von CD, Band oder Netzwerk starten |
| 3 Run Diagnostics | Erweiterte Hardware-Diagnose (nicht auf allen Modellen) |
| 4 Recover System | Systemwiederherstellung von Install-Medium (Root-FS reparieren) |
| 5 Enter Command Monitor | PROM-Kommandozeile >> |
| 6 Select Keyboard Layout | Nur bei Grafikkonsole: Tastaturlayout wählen |
PROM Command Monitor (>>)
| help | Vom PROM tatsächlich unterstützte Kommandos anzeigen |
| hinv | Hardware, die das PROM sieht (Platten, RAM, Grafik) |
| hinv -v | Ausführliches PROM-Inventar |
| printenv | Alle PROM-/NVRAM-Variablen anzeigen |
| setenv netaddr 10.0.0.10 | IP-Adresse für Netzwerk-Boot/-Install setzen |
| setenv -p bootfile "dksc(0,1,8)sash" | Standard-Loader/Bootplatte setzen (-p = persistent) |
| setenv AutoLoad Yes | Automatisch booten nach Reset/Power-On (früher bootmode c) |
| setenv console d | Konsole auf erste serielle Schnittstelle legen (g = Grafik) |
| setenv dbaud 9600 | Baudrate der Diagnose-/Serienkonsole |
| setenv diagmode v | Power-On-Diagnose ausführlich und vollständig |
| setenv showconfig istrue | IRIX gibt beim Booten zusätzliche Informationen aus |
| setenv rebound y | Nach Kernel-Panic automatisch rebooten |
| unsetenv OSLoadOptions | Variable löschen |
| resetenv | Alle NVRAM-Variablen auf Werkseinstellung (Passwort bleibt) |
| resetpw | PROM-Passwort entfernen |
| boot | Bootet die in bootfile hinterlegte Datei |
| boot -f dksc(0,1,8)sash | Explizit den Standalone-Shell-Loader von Partition 8 laden |
| boot dksc()unix initstate=s | Kernel booten und in den Single-User-Modus gehen |
| boot -f bootp()server:/pfad/unix | Über BOOTP/TFTP vom Netzwerk booten |
| single | Direkt in den Single-User-Modus booten |
| auto | Normal booten (wie Menüpunkt 1) |
| ls dksc(0,1,8) | Dateien im Volume Header auflisten (sash, ide, sgilabel) |
| update | Gespeichertes Hardware-Inventar aktualisieren |
| version | PROM-/Command-Monitor-Version |
| exit | Zurück ins System Maintenance Menu |
Gerätesyntax im PROM: device(controller,unit,partition)file.
dksc = SCSI-Platte, tpsc = SCSI-Band, bootp = Ethernet.
Beispiel: dksc(0,1,0) = Controller 0, Drive 1, Partition 0 (root).
Fehlende Werte sind 0, die Kommas sind Platzhalter und dürfen nicht entfallen.
Runlevel, init & Dienste
| init s | In den Single-User-Modus wechseln (aus dem Multiuser-Betrieb) |
| init 2 | Zurück in den Multiuser-Modus |
| telinit q | Nach Änderung von /etc/inittab neu einlesen |
| /etc/inittab | initdefault, Konsolen-getty, Startskripte je Runlevel |
| ls /etc/init.d | Alle Start-/Stop-Skripte (network, nfs, xdm, swap, cron …) |
| /etc/init.d/network stop | Dienst einzeln stoppen (analog start) |
| ls /etc/rc0.d /etc/rc2.d | Symlinks in die init.d-Skripte für Runlevel 0 bzw. 2 |
| chkconfig | Alle Konfigurations-Flags mit Status on/off |
| chkconfig -s | Nach Status sortiert ausgeben |
| chkconfig nfs | Exit-Status 0 = on, 1 = off – für Skripte |
| chkconfig nfs on | Dienst dauerhaft aktivieren (wirkt beim nächsten Boot) |
| chkconfig -f myflag on | -f legt die Flag-Datei an, falls sie fehlt |
| ls /var/config | Ablage der chkconfig-Flags (/etc/config ist ein Symlink darauf) |
| ls /etc/config/*.options | Optionsdateien der Dienste (netif, ifconfig-1, static-route …) |
chkconfig ist kein Runlevel-Werkzeug: Es schaltet nur Flag-Dateien in
/var/config um. Die Skripte in /etc/init.d prüfen diese Flags beim
Start. Symlinks in /etc/rc2.d selbst anzufassen ist unnötig und fehleranfällig.
Herunterfahren & Neustart
| shutdown -y -g0 -i6 | Sofort rebooten ohne Rückfrage (Standard bei Wartung) |
| shutdown -y -g300 -i0 | In 5 Minuten herunterfahren, Meldung an alle Benutzer |
| shutdown -y -g0 -i5 | Herunterfahren und ausschalten (Power off, falls unterstützt) |
| reboot | Schneller Neustart ohne init-Skripte – nur wenn nötig |
| halt | System sofort anhalten (Puffer werden geschrieben, keine rc0-Skripte) |
| sync; sync | Vor harten Eingriffen Puffer schreiben |
Achtung: reboot und halt umgehen die
/etc/rc0.d-Skripte – XLV-Volumes werden nicht saubergefahren und NFS-Exporte
nicht abgemeldet. Für Produktion immer shutdown -y -g0 -i6 verwenden.
🧠Kernel, systune & autoconfig
| systune | Alle Tunables mit aktuellem Wert anzeigen (nichtinteraktiv) |
| systune nproc | Einzelnen Parameter anzeigen |
| systune numproc | Ganze Parametergruppe anzeigen (z. B. numproc, ipc, vm) |
| systune -i | Interaktiver Modus, Prompt systune-> |
| systune-> help | Alle Gruppennamen und Kommandos listen |
| systune-> all | Alle Tunables ausgeben |
| systune-> nproc 400 | Wert setzen (mit Sicherheitsrückfrage) |
| systune-> quit | Beenden – bereits gesetzte Werte bleiben gesetzt |
| echo y | systune nproc 400 | Nichtinteraktiv ohne Rückfrage (für Skripte) |
| systune -r rsshogslop 0 | -r: nur laufendes System ändern, nichts persistieren |
| systune -b nproc 400 | -b (Default): laufendes System und Zielkernel + stune |
| systune -f nproc 400 | Kein /unix.install anlegen |
| systune -n /unix.save nproc | Anderen Kernel als /unix untersuchen |
Ablauf beachten: Nicht dynamisch änderbare Tunables schreibt
systune in /unix.install und in /var/sysgen/stune.
Erst nach Reboot (das System zieht /unix.install nach /unix) ist der Wert
aktiv. systune sagt jeweils selbst, ob ein Reboot nötig ist.
Kernel neu bauen (autoconfig / lboot)
| autoconfig | Kernel aus /var/sysgen neu konfigurieren, wenn nötig |
| autoconfig -f | Neubau erzwingen, auch ohne erkannte Änderung |
| autoconfig -vf | Erzwungener Neubau mit ausführlicher Ausgabe |
| lboot -v | Kernel-Link direkt aufrufen (wird von autoconfig genutzt) |
| ls -l /unix /unix.install | Laufender Kernel und neu gebauter Kernel im Vergleich |
| cp /unix /unix.save | Fallback-Kernel sichern – vor jeder Kernel-Änderung! |
Wichtige Kernel-Verzeichnisse
| /var/sysgen/master.d/ | Beschreibungsdateien der Kernel-Module (Treiber, Subsysteme) |
| /var/sysgen/system/ | *.sm-Dateien: INCLUDE/EXCLUDE/ROOTDEV |
| /var/sysgen/boot/ | Objektdateien der Kernel-Module |
| /var/sysgen/mtune/ | Vorgaben und gültige Wertebereiche aller Tunables |
| /var/sysgen/stune | Lokale, dauerhafte Tunable-Werte dieses Systems |
| /var/sysgen/system/irix.sm | Zentrale Kernel-Konfiguration von IRIX |
Praxisfalle: Nach Änderungen in /var/sysgen oder nach
Einspielen von Treiber-Subsystemen muss autoconfig laufen und das System
neu gestartet werden. Ohne Reboot bleibt der alte Kernel aktiv. Vorher immer
cp /unix /unix.save – ein defekter Kernel lässt sich dann per
boot -f dksc(0,1,0)/unix.save aus dem PROM starten.
📦Software: inst, versions & Patches
Installierte Software abfragen
| versions | Alle installierten Produkte, Images und Subsysteme auflisten |
| versions -b | Kurzform: nur die obersten Produkt-Ebenen (brief) |
| versions long | Ausführliche Liste mit Datum, Größe und Beschreibung |
| versions -av | Alle Subsysteme inklusive nicht installierter Teile anzeigen |
| versions eoe | Nur Produkt eoe (Execution Only Environment = Basis-OS) |
| versions -b eoe | Schnellster Weg zur exakten IRIX-Release (z. B. 6.5.30) |
| versions changed | Dateien, die nach der Installation verändert wurden (Delta-Zustand) |
| versions -m changed | Geänderte Dateien mit Angabe des Unterschieds |
| versions missing | Dateien, die laut Datenbank fehlen – Hinweis auf Löschungen |
| versions -n patchSG0004145 | Prüfen, ob ein bestimmter Patch installiert ist |
| versions -j | Nur Patch-Subsysteme (patch products) auflisten |
| versions remove patchSG0004145 | Patch bzw. Subsystem wieder entfernen |
| showprods | Link auf versions – Produktübersicht (gewohnter Name) |
| showfiles -F /usr/bin/ls | Zeigt, aus welchem Subsystem eine Datei stammt |
| showfiles eoe.sw.base | Alle Dateien eines Subsystems auflisten |
| relnotes | Release Notes eines Produkts im Terminal lesen |
| relnotes patchSG0004145 | Beschreibung und Voraussetzungen eines Patches |
| grelnotes | Grafischer Release-Notes-Browser (X11 erforderlich) |
inst – interaktive Installation
| inst | Interaktives Installationsprogramm starten (eigene Befehlssprache) |
| inst -f /CDROM/dist | Direkt mit einer Distribution als Quelle starten |
| inst -f host:/dist/6.5.30 | Quelle über Netz (benötigt rsh-Zugang zum Server) |
| inst -a -f /dist | Automatikmodus: Standardauswahl installieren, keine Rückfragen |
| swmgr | Grafisches Software-Manager-Frontend für inst |
| swmgr -f /CDROM/dist | Software Manager mit vorgegebener Distribution öffnen |
| distcopy /CDROM/dist /dist/6.5.30 | Distribution von CD auf Platte kopieren (Prfx-Struktur bleibt) |
| inst -V /dist | Distribution prüfen, ohne zu installieren |
Befehle innerhalb von inst
| from /CDROM/dist | Distributionsquelle setzen oder wechseln |
| list | Alle Subsysteme mit Status (I/R/N) und Auswahl anzeigen |
| list new | Nur Subsysteme anzeigen, die noch nicht installiert sind |
| install * | Alles zur Installation vormerken |
| install patchSG* | Nur Patches vormerken (Muster erlaubt) |
| remove eoe.sw.unused | Subsystem zum Entfernen vormerken |
| keep eoe.sw.base | Subsystem unangetastet lassen (Auswahl zurücknehmen) |
| step | Auswahl Subsystem für Subsystem interaktiv durchgehen |
| conflicts | Abhängigkeitskonflikte der aktuellen Auswahl anzeigen |
| go | Vorgemerkte Aktionen ausführen (eigentliche Installation) |
| space | Platzbedarf der Auswahl je Filesystem prüfen |
| versions | Installationsdatenbank aus inst heraus abfragen |
| help | Hilfe zur inst-Befehlssprache |
| quit | Beenden – nicht ausgeführte Auswahl wird verworfen |
Praxisfalle: inst ist ein eigener Interpreter mit eigener
Befehlssprache – Auswahl (install/remove/keep) und
Ausführung (go) sind getrennt. Ohne go passiert nichts. Nach dem Patchen
zeigt versions changed den Delta-Zustand gegenüber der Installationsdatenbank.
Tipp: Konfigurationsdateien werden von inst nie
überschrieben: die neue Version landet als datei.N, die alte bleibt bzw. wird als
datei.O gesichert. Nach größeren Updates immer nach
find /etc -name '*.N' suchen und manuell zusammenführen.
Vorsicht: Basis-OS-Updates laufen über die Miniroot
(Installation von CD/Netz mit angehaltenem System). Der Rechner ist dabei nicht nutzbar und ein
Abbruch mitten in der Miniroot-Phase kann das System unbootbar machen – vorher Backup
(xfsdump) und Konsolenzugang sicherstellen.
# --- Patch-Set einspielen (Beispiel 6.5.30) ---
# 1) Distribution von CD auf lokale Platte kopieren (schneller, wiederholbar)
distcopy /CDROM/dist /dist/patches_6530
# 2) Ausgangszustand dokumentieren
versions -b eoe > /var/tmp/versions.vorher
versions -j >> /var/tmp/versions.vorher
# 3) inst starten
inst -f /dist/patches_6530
Inst> list new # was ist neu?
Inst> install patchSG* # alle Patches vormerken
Inst> conflicts # Abhaengigkeiten pruefen
Inst> space # Platzbedarf pruefen
Inst> go # ausfuehren
Inst> quit
# 4) Kernel neu bauen, falls Treiber/Kernel-Teile dabei waren
autoconfig -vf
reboot
# 5) Ergebnis kontrollieren
versions -b eoe
versions -j
versions changed | more
find /etc -name '*.N' -print # neue Konfigdateien nachziehen
🔌Devices, Platten & SCSI
Hardware und SCSI-Bus untersuchen
| hinv -c disk | Alle erkannten Platten mit Controller, Unit und Größe |
| hinv -c tape | Bandlaufwerke am SCSI-Bus anzeigen |
| hinv -c scsi | SCSI-Controller und angeschlossene Geräte |
| hinv -vv | Maximale Detailtiefe über alle Geräteklassen |
| scsicontrol -i /dev/scsi/sc0d2l0 | Inquiry: Hersteller, Modell, Firmware eines Geräts |
| scsicontrol -c /dev/scsi/sc0d2l0 | Read Capacity: Blockzahl und Blockgröße |
| scsicontrol -r /dev/scsi/sc0d2l0 | Gerät zurücksetzen (Bus Device Reset) |
| scsiha -p 0 | SCSI-Bus 0 nach Geräten absuchen (probe) |
| scsiha -r 0 | SCSI-Bus 0 zurücksetzen – nur bei hängendem Bus |
| ioconfig -f /hw | Controller-Nummern neu zuordnen, /hw durchlaufen |
| ls -l /dev/scsi | Rohe SCSI-Geräteknoten (Controller/Target/LUN) |
| ls -l /dev/dsk | Blockorientierte Plattenpartitionen |
| ls -l /dev/rdsk | Zeichenorientierte (raw) Plattenpartitionen |
Gerätenamen verstehen
| /dev/dsk/dks0d1s0 | Controller 0, Drive 1, Partition 0 – blockorientiert |
| /dev/rdsk/dks0d1s0 | Gleiche Partition, aber raw (für fx, mkfs, dd) |
| /dev/dsk/dks0d1s7 | Partition 7 = konventionell die gesamte Datenpartition |
| /dev/rdsk/dks0d1vh | Volume Header: Label, Partitionstabelle, Bootblocks |
| /dev/rdsk/dks0d1vol | Die komplette Platte einschließlich Volume Header |
| /dev/dsk/xlv/name | XLV-Volume (logisches Volume) – siehe Sektion XLV |
| /dev/rmt/tps0d3nr | Band ohne Rewind (nr) an Controller 0, Target 3 |
| /dev/rmt/tps0d3 | Gleiches Band mit automatischem Rewind beim Schließen |
fx – Platten labeln und partitionieren
| fx | Startet interaktiv und fragt Gerätetyp, Controller und Drive ab |
| fx "dksc(0,2,0)" | Direkt Controller 0, Drive 2 öffnen (PROM-Schreibweise) |
| fx -x | Expertenmodus mit zusätzlichen, gefährlichen Menüs |
| fx -c dksc -x | Geräteklasse vorgeben und im Expertenmodus starten |
| [l]abel | Untermenü: Label anzeigen, schreiben, sichern, erzeugen |
| label/show/all | Komplettes Plattenlabel mit allen Partitionen ausgeben |
| label/sync | Geändertes Label auf die Platte schreiben |
| [r]epartition | Partitionierung ändern (rootdrive, optiondrive, expert) |
| repartition/optiondrive | Datenplatte: eine große Partition s7 anlegen |
| repartition/rootdrive | Systemplatte: root (s0) und swap (s1) anlegen |
| [b]adblock | Defekte Blöcke anzeigen bzw. neu zuordnen |
| [exe]rcise | Oberflächentest der Platte (schreibend, löscht Daten) |
| [d]ebug | Rohe Blöcke lesen/schreiben – nur für Notfälle |
| /exit | fx verlassen (Label wird beim Verlassen synchronisiert) |
Label, Volume Header und Bootblocks
| prtvtoc /dev/rdsk/dks0d1vh | Partitionstabelle einer Platte lesbar ausgeben |
| prtvtoc -f /dev/rdsk/dks0d1vh | Freien, nicht partitionierten Platz anzeigen |
| prtvtoc -h /dev/rdsk/dks0d1vh | Ausgabe ohne Kopfzeilen (skriptfreundlich) |
| dvhtool /dev/rdsk/dks0d1vh | Volume-Header-Dateien verwalten (sash, ide, symmon) |
| dvhtool -v list /dev/rdsk/dks0d1vh | Inhalt des Volume Headers auflisten |
| dvhtool -v get sash /var/tmp/sash | Datei aus dem Volume Header herauskopieren |
| dvhtool -v creat /stand/sash sash | Standalone-Loader sash in den Volume Header schreiben |
Bandlaufwerke
| mt -f /dev/rmt/tps0d3nr status | Status, Blockgröße und Position des Bandes |
| mt -f /dev/rmt/tps0d3 rewind | Band an den Anfang zurückspulen |
| mt -f /dev/rmt/tps0d3nr fsf 2 | Zwei Dateimarken vorspulen (nächstes Archiv wählen) |
| mt -f /dev/rmt/tps0d3nr bsf 1 | Eine Dateimarke zurückspulen |
| mt -f /dev/rmt/tps0d3 erase | Band löschen – Daten sind danach verloren |
| mt -f /dev/rmt/tps0d3 offline | Zurückspulen und Kassette auswerfen |
Praxisfalle: fx arbeitet direkt auf dem Plattenlabel
und ist destruktiv. Ein neues Label oder repartition macht alle Daten der Platte
unerreichbar – es gibt keine Rückfrage nach dem letzten Bildschirm. Immer zuerst
hinv -c disk und prtvtoc zur Kontrolle, dann die richtige
Controller/Drive-Nummer eingeben. Niemals fx auf die laufende Systemplatte
anwenden.
Tipp: Vor jedem Eingriff das Label sichern:
prtvtoc /dev/rdsk/dks0d2vh > /var/tmp/label_dks0d2.txt. Mit dieser Ausgabe lässt
sich die Partitionierung in fx im Expertenmodus wieder von Hand nachbauen.
# --- Neue Datenplatte in Betrieb nehmen ---
# 1) Erkennung pruefen (Platte muss im Inventory auftauchen)
hinv -c disk
# ergibt z. B.: Disk drive: unit 2 on SCSI controller 0
# 2) Falls nicht sichtbar: Bus absuchen
scsiha -p 0
ioconfig -f /hw
scsicontrol -i /dev/scsi/sc0d2l0
# 3) Platte labeln und partitionieren (ACHTUNG: destruktiv!)
fx "dksc(0,2,0)"
fx> label
label> show all # aktuellen Zustand ansehen
label> ..
fx> repartition
repartition> optiondrive # eine grosse Partition s7
repartition> ..
fx> /exit
# 4) Ergebnis kontrollieren
prtvtoc /dev/rdsk/dks0d2vh
# 5) XFS-Filesystem anlegen (raw device!)
mkfs -t xfs /dev/rdsk/dks0d2s7
# 6) Mountpunkt und Dauereintrag in /etc/fstab
mkdir -p /data1
echo "/dev/dsk/dks0d2s7 /data1 xfs rw 0 0" >> /etc/fstab
# 7) Mounten und pruefen
mount /data1
df -k /data1
xfs_info /data1
📁XFS-Filesysteme
Anlegen und Informationen
| mkfs -t xfs /dev/rdsk/dks0d2s7 | XFS-Filesystem mit Standardwerten anlegen |
| mkfs_xfs /dev/rdsk/dks0d2s7 | Direkter Aufruf des XFS-Formatierers |
| mkfs_xfs -b size=4096 /dev/rdsk/dks0d2s7 | Blockgröße explizit auf 4 KB setzen |
| mkfs_xfs -l size=10m /dev/rdsk/dks0d2s7 | Größe des internen Logs festlegen |
| mkfs_xfs -d name=/dev/rxlv/xlv0 -l ... | Filesystem auf einem XLV-Volume anlegen |
| mkfs_xfs -f /dev/rdsk/dks0d2s7 | Erzwingen, obwohl bereits ein Filesystem erkannt wird |
| mkfs_xfs -n /dev/rdsk/dks0d2s7 | Nur anzeigen, was angelegt würde (dry run) |
| xfs_info /data1 | Geometrie eines gemounteten XFS: Blocks, AGs, Log, Realtime |
| xfs_growfs /data1 | Filesystem auf die volle Größe des Geräts ausdehnen |
| xfs_growfs -D 2000000 /data1 | Datenbereich auf eine bestimmte Blockzahl vergrößern |
| xfs_growfs -n /data1 | Nur Geometrie ausgeben, nichts ändern (wie xfs_info) |
| xfs_admin -L DATA1 /dev/dsk/dks0d2s7 | Label des Filesystems setzen (nur ungemountet) |
| xfs_admin -u /dev/dsk/dks0d2s7 | UUID des Filesystems anzeigen |
Mounten und /etc/fstab
| mount /data1 | Mounten nach Eintrag in /etc/fstab |
| mount -t xfs /dev/dsk/dks0d2s7 /data1 | Explizit mit Typangabe mounten |
| mount -o ro /dev/dsk/dks0d2s7 /data1 | Nur lesend mounten (Analyse, Datenrettung) |
| mount -a | Alle Einträge aus /etc/fstab mounten |
| mount | Alle aktuell gemounteten Filesysteme mit Optionen anzeigen |
| umount /data1 | Filesystem aushängen |
| umount -k /data1 | Prozesse mit offenen Dateien abschießen und aushängen |
| fuser -c /data1 | Prozesse ermitteln, die das Filesystem belegen |
| df -k | Belegung aller Filesysteme in Kilobyte |
| df -i | Inode-Nutzung anzeigen |
| df -k /data1 | Belegung eines einzelnen Filesystems |
| du -sk /data1/* | Größe der Unterverzeichnisse in KB |
| du -sk /data1 | sort -n | Platzfresser sortiert ermitteln |
| /etc/fstab | Statische Mount-Tabelle: Device, Mountpunkt, Typ, Optionen |
| /etc/mtab | Liste der aktuell gemounteten Filesysteme |
Prüfen und Reparieren
| xfs_check /dev/dsk/dks0d2s7 | Konsistenzprüfung, nur lesend – Filesystem muss ungemountet sein |
| xfs_repair -n /dev/dsk/dks0d2s7 | Trockenlauf: Fehler melden, aber nichts ändern |
| xfs_repair /dev/dsk/dks0d2s7 | Filesystem reparieren (nur ungemountet!) |
| xfs_repair -L /dev/dsk/dks0d2s7 | Log verwerfen – letzte Maßnahme, Datenverlust möglich |
| xfs_repair -l /dev/dsk/dks0d1s0 ... | Externes Log angeben (bei getrenntem Log-Subvolume) |
| fsck -t xfs /dev/dsk/dks0d2s7 | Ruft für XFS im Wesentlichen den Log-Replay auf |
| xfs_logprint /dev/dsk/dks0d2s7 | Inhalt des XFS-Logs ausgeben (Analyse) |
| xfs_logprint -t /dev/dsk/dks0d2s7 | Nur Transaktionsübersicht des Logs |
| xfs_db -r /dev/dsk/dks0d2s7 | Debugger nur lesend öffnen (gefahrlos) |
| xfs_db /dev/dsk/dks0d2s7 | Debugger schreibend – nur mit klarem Plan benutzen |
| xfs_ncheck /dev/dsk/dks0d2s7 | Inode-Nummern in Pfadnamen auflösen |
| xfs_bmap -v /data1/grossedatei | Blockbelegung (Extents) einer Datei anzeigen |
| xfs_copy /dev/dsk/dks0d2s7 /dev/dsk/dks0d3s7 | Filesystem blockweise auf ein anderes Gerät klonen |
| xfs_fsr | Defragmentierung (Filesystem Reorganizer) aller XFS |
| xfs_fsr -v /data1 | Ein Filesystem defragmentieren, ausführlich |
| xfs_estimate /pfad | Abschätzen, wieviel Platz ein Baum als XFS benötigt |
Quotas
| mount -o quota /dev/dsk/dks0d2s7 /data1 | Filesystem mit Quota-Unterstützung mounten |
| quotaon /data1 | Quotas für ein Filesystem aktivieren |
| quotaoff /data1 | Quotas deaktivieren |
| edquota benutzer | Soft- und Hard-Limits eines Benutzers bearbeiten |
| edquota -t | Gnadenfrist (grace period) für Soft-Limits setzen |
| edquota -p vorlage benutzer | Limits von einem Vorlagebenutzer übernehmen |
| repquota /data1 | Quota-Bericht für alle Benutzer eines Filesystems |
| repquota -a | Bericht für alle Filesysteme mit Quotas |
| quota -v benutzer | Verbrauch und Limits eines Benutzers anzeigen |
| quotacheck -a | Quota-Verbrauchsdaten neu berechnen |
Praxisfalle: xfs_repair und xfs_check laufen
nur auf ungemounteten Filesystemen. Bei einem gemounteten Gerät sind die Ergebnisse
wertlos oder zerstörend. Und xfs_repair -L verwirft das Log: alle noch nicht
geschriebenen Transaktionen sind weg. -L nur einsetzen, wenn ein normaler Replay
fehlschlägt und ein Backup existiert.
Tipp: XFS spielt sein Log beim Mounten selbst zurück. Nach einem
Absturz genügt in der Regel ein einfacher mount – erst wenn dieser
fehlschlägt, kommen xfs_repair -n (Analyse) und dann xfs_repair zum
Einsatz.
🗃XLV Volume Manager
Aufbau: Ein XLV-Volume besteht aus bis zu drei
Subvolumes: data (Pflicht), log und rt (Realtime).
Jedes Subvolume enthält einen oder mehrere Plexes (Spiegelhälften), jeder Plex
besteht aus Volume Elements (Partitionen). Striping entsteht durch mehrere Partitionen in
einem Volume Element, Spiegelung durch mehrere Plexes.
Volumes erzeugen und verwalten
| xlv_make | Interaktiv Volumes definieren und Labels schreiben |
| xlv_make -f /var/tmp/xlv.cfg | Volume-Definition aus einer Skriptdatei einlesen |
| vol xlv0 | In xlv_make: neues Volume mit Namen xlv0 |
| data | Data-Subvolume beginnen (Pflichtteil jedes Volumes) |
| log | Log-Subvolume beginnen (externes XFS-Log) |
| rt | Realtime-Subvolume beginnen (Video/Streaming) |
| plex | Neuen Plex im aktuellen Subvolume anlegen (Spiegelhälfte) |
| ve /dev/dsk/dks0d2s7 | Volume Element aus einer Partition bilden |
| ve -stripe -stripe_unit 128 dev1 dev2 | Gestriptes Volume Element, Stripe Unit in 512-Byte-Blöcken |
| show | Aktuelle, noch nicht geschriebene Definition anzeigen |
| end | Definition des aktuellen Objekts abschließen |
| exit | Labels schreiben und xlv_make beenden |
| quit | Beenden, ohne Labels zu schreiben |
xlv_mgr – laufender Betrieb
| xlv_mgr | Interaktive Verwaltung bestehender XLV-Objekte |
| xlv_mgr -c "show all" | Einzelbefehl ohne Interaktion ausführen (skriptfähig) |
| show all | Alle bekannten Volumes und deren Zustand auflisten |
| show -v all | Ausführlich: Plexes, Volume Elements, Blockbereiche |
| show vol xlv0 | Details eines einzelnen Volumes |
| show config | Konfiguration wie im Kernel bekannt anzeigen |
| show labels | Rohe XLV-Labels aller Platten lesen |
| attach plex ... vol xlv0 | Plex an ein Volume anhängen (Spiegel aufbauen) |
| detach plex xlv0.data.1 | Plex aus dem Volume herausnehmen |
| delete plex xlv0.data.1 | Plex endgültig entfernen |
| delete vol xlv0 | Volume-Definition löschen (Labels werden entfernt) |
| change name xlv0 daten | Volume umbenennen |
| quit | xlv_mgr beenden |
Assemblieren, Status, Wartung
| xlv_assemble | Platten nach XLV-Labels scannen und Volumes aktivieren |
| xlv_assemble -l | Nur anzeigen, welche Volumes gefunden werden |
| xlv_assemble -q | Leise arbeiten (wie beim Systemstart) |
| xlv_shutdown | Alle XLV-Volumes sauber deaktivieren |
| xlv_shutdown -m | Auch gemountete Filesysteme vorher aushängen |
| xlvstat | E/A-Statistik je Volume und Subvolume |
| xlvstat 5 | Statistik alle 5 Sekunden fortschreiben |
| xlv_labd | Daemon, der XLV-Labels aktuell hält (läuft automatisch) |
| xlv_plexd | Daemon für Plex-Revive (Resynchronisation der Spiegel) |
| /etc/init.d/xlv | Startskript, das xlv_assemble beim Boot aufruft |
| chkconfig xlv | Prüfen, ob XLV beim Systemstart aktiviert wird |
Praxisfalle: Vor jedem Hardware-Eingriff an Platten, die Teil eines
XLV-Volumes sind, erst die Filesysteme aushängen und dann xlv_shutdown ausführen.
Wird eine Platte im laufenden Betrieb entfernt, bleiben Kernel und Labels inkonsistent und das
Volume kann beim nächsten xlv_assemble unvollständig zusammengesetzt werden.
Hinweis zur Spiegelung: Plexing (Mirroring) ist in IRIX 6.5 eine
lizenzpflichtige Zusatzoption (Disk Plexing Option, FLEXlm-Lizenz). Ohne Lizenz erlaubt XLV
nur einen Plex je Subvolume – Striping und Concatenation funktionieren dagegen ohne
Lizenz.
Tipp: XLV-Definitionen immer als xlv_make-Skript
aufbewahren (xlv_mgr -c "show -v all" > /var/tmp/xlv_doku.txt zusätzlich). Nach
einem Plattentausch lässt sich das Layout so nachvollziehbar rekonstruieren.
# --- Gestriptes XLV-Volume ueber zwei Platten anlegen ---
# 0) Beide Platten mit fx als optiondrive partitioniert (s7), Groesse gleich
prtvtoc /dev/rdsk/dks0d2vh
prtvtoc /dev/rdsk/dks0d3vh
# 1) Definition als Skript schreiben (stripe_unit in 512-Byte-Bloecken: 128 = 64 KB)
cat > /var/tmp/xlv.cfg <<'EOF'
vol daten
data
plex
ve -stripe -stripe_unit 128 /dev/dsk/dks0d2s7 /dev/dsk/dks0d3s7
EOF
# 2) Volume erzeugen (schreibt die XLV-Labels auf beide Platten)
xlv_make -f /var/tmp/xlv.cfg
# 3) Kontrolle
xlv_mgr -c "show all"
xlv_mgr -c "show -v vol daten"
ls -l /dev/xlv /dev/rxlv
# 4) XFS darauf anlegen (raw XLV-Device!)
mkfs -t xfs /dev/rxlv/daten
# 5) Mounten und dauerhaft eintragen
mkdir -p /daten
echo "/dev/xlv/daten /daten xfs rw 0 0" >> /etc/fstab
mount /daten
xfs_info /daten
xlvstat 5
# --- Volume spaeter vergroessern ---
# neues Volume Element anhaengen, dann Filesystem online ausdehnen
xlv_mgr # ve an den Plex anhaengen
xfs_growfs /daten
df -k /daten
🗄EFS & Fremd-Filesysteme
| mkfs -t efs /dev/rdsk/dks0d2s7 | Altes EFS-Filesystem anlegen (nur für Kompatibilität) |
| mkfs_efs /dev/rdsk/dks0d2s7 | Direkter Aufruf des EFS-Formatierers |
| fsck -t efs /dev/rdsk/dks0d2s7 | EFS prüfen und reparieren (ungemountet) |
| fsck -y -t efs /dev/rdsk/dks0d2s7 | Alle Rückfragen automatisch mit ja beantworten |
| mount -t efs /dev/dsk/dks0d2s7 /alt | EFS-Filesystem mounten |
| growfs /dev/rdsk/dks0d2s7 | EFS auf die volle Partitionsgröße ausdehnen |
| dumpfs /dev/rdsk/dks0d2s7 | Superblock-Informationen eines EFS ausgeben |
| mount -t iso9660 -o ro /dev/... /CDROM | CD-ROM mounten (meist automatisch per mediad) |
| mount -t fat /dev/dsk/... /dos | DOS/FAT-Medium einbinden |
| mount -t hfs /dev/dsk/... /mac | Macintosh-HFS-Medium einbinden |
| mkfp -t fat /dev/rdsk/... | Fremd-Filesystem (foreign) auf einem Medium erzeugen |
| fpck -t fat /dev/rdsk/... | Fremd-Filesystem prüfen |
| mediad | Daemon für Wechselmedien; steuert /CDROM automatisch |
| chkconfig mediad on | Automatisches Einbinden von Wechselmedien aktivieren |
Hinweis: EFS ist das Vorgänger-Filesystem von XFS und in IRIX 6.5
nur noch für alte Datenträger und Installations-CDs relevant. Neue Filesysteme werden immer
als XFS angelegt. EFS-Partitionen sind auf 8 GB begrenzt und kennen kein Journal.
📈Swap & virtueller Speicher
| swap -l | Alle Swap-Bereiche mit Größe und freiem Platz auflisten |
| swap -s | Zusammenfassung: belegter, freier und virtueller Swap |
| swap -a /dev/dsk/dks0d2s1 | Swap-Partition sofort hinzufügen |
| swap -a /var/swap1 | Swap-Datei hinzufügen (vorher mit mkfile anlegen) |
| swap -d /dev/dsk/dks0d2s1 | Swap-Bereich wieder entfernen (muss auslagerbar sein) |
| swap -a -v /var/swap1 | Hinzufügen mit ausführlicher Meldung |
| mkfile 512m /var/swap1 | 512-MB-Swap-Datei vorab vollständig allozieren |
| mkfile -n 512m /var/swap1 | Datei nur logisch anlegen (spärlich – für Swap ungeeignet) |
| /etc/fstab | Dauerhafte Swap-Einträge mit Typ swap |
| chkconfig vswap | Virtuellen Swap (Overcommit ohne Backing Store) steuern |
| /etc/config/vswap.options | Größe des virtuellen Swap-Bereichs konfigurieren |
| systune -i | Tunables wie maxdmasz, rsshogfrac anpassen |
| osview -i 5 | Swap- und Speichernutzung live beobachten |
| gmemusage | Speicherverbrauch je Prozess und gemeinsame Segmente |
| sar -w 5 10 | Swapping-Aktivität messen |
fstab-Beispiel: Zeile für eine Swap-Partition:
/dev/dsk/dks0d2s1 swap swap pri=3 0 0. Für eine Swap-Datei:
/var/swap1 swap swap pri=3 0 0. Die Priorität pri= steuert, welcher
Bereich zuerst genutzt wird.
Praxisfalle: IRIX kennt neben echtem Swap auch virtual swap –
zugesagten Speicher ohne physische Hinterlegung. Wird er überbucht, sterben Prozesse mit
„out of logical swap space“, obwohl swap -l noch Platz zeigt. In solchen
Fällen echten Swap ergänzen, nicht nur vswap vergrößern.
⚙Prozesse, Jobs & cron
Prozesse ansehen und steuern
| ps -ef | Alle Prozesse mit Benutzer, PID, PPID und Kommandozeile |
| ps -elf | Zusätzlich Priorität, Nice-Wert und Zustand |
| ps -ef | grep -i nfsd | Gezielt nach einem Dienst suchen |
| ps -o pid,pcpu,vsz,comm -e | Eigene Spaltenauswahl (POSIX-Format) |
| ps -u benutzer | Nur Prozesse eines Benutzers |
| top | Interaktive Prozessübersicht im Terminal |
| top -i 2 | Aktualisierungsintervall auf 2 Sekunden setzen |
| gr_top | Grafische Variante von top (X11) |
| kill -TERM 1234 | Prozess höflich beenden (Standardsignal) |
| kill -HUP 1234 | Konfiguration neu einlesen lassen (z. B. inetd) |
| kill -9 1234 | Hart abschießen – nur wenn nichts anderes hilft |
| nice -20 lange_rechnung | Programm mit niedrigerer Priorität starten |
| renice -n 10 -p 1234 | Priorität eines laufenden Prozesses senken |
| npri -h 30 -p 1234 | IRIX-spezifisch: Non-Degrading-Priorität setzen |
| nohup skript.sh & | Job abgekoppelt von der Sitzung im Hintergrund starten |
| jobs / fg / bg | Shell-Jobsteuerung im interaktiven Betrieb |
| ptree 1234 | Prozessbaum ab einer PID darstellen |
| fuser -u /data1/datei | Wer hält eine Datei offen (mit Benutzernamen) |
| par -s -p 1234 | Systemaufrufe eines laufenden Prozesses mitschneiden |
| dbx -p 1234 | Debugger an einen laufenden Prozess anhängen |
| limit / ulimit -a | Ressourcengrenzen der Shell anzeigen |
Zeitgesteuerte Ausführung
| crontab -l | Eigene cron-Tabelle anzeigen |
| crontab -e | Eigene cron-Tabelle bearbeiten |
| crontab -l -u root | cron-Tabelle eines anderen Benutzers ansehen |
| crontab -r | Eigene cron-Tabelle löschen (Vorsicht!) |
| /var/spool/cron/crontabs/ | Ablage der cron-Tabellen aller Benutzer |
| /var/cron/log | Protokoll aller cron- und at-Läufe |
| /etc/cron.d/cron.allow | Liste der Benutzer, die cron nutzen dürfen |
| /etc/cron.d/cron.deny | Liste der gesperrten Benutzer |
| at 22:00 | Einmaligen Job für eine Uhrzeit einplanen |
| at -l | Eingeplante at-Jobs auflisten |
| at -r job_nummer | Eingeplanten at-Job entfernen |
| batch | Job ausführen, sobald die Systemlast es erlaubt |
| /etc/init.d/cron stop; ... start | cron-Daemon neu starten, wenn er hängt |
Praxisfalle: IRIX kennt killall, aber mit
System-V-Bedeutung: der Befehl beendet alle Prozesse und wird beim Herunterfahren benutzt.
Er ist kein Linux-killall. Zum Neuladen eines Dienstes immer
kill -HUP <pid> oder das Skript in /etc/init.d verwenden.
📊Performance-Analyse
Systemweite Übersicht
| osview | Zentrales IRIX-Werkzeug: CPU, Speicher, Swap, E/A, Netz |
| osview -i 5 | Alle 5 Sekunden aktualisieren |
| osview -n 10 -i 2 | Zehn Messungen im Abstand von 2 Sekunden |
| gr_osview | Grafische Live-Anzeige derselben Kennzahlen (X11) |
| gr_osview -a | Alle verfügbaren Balken/Metriken einblenden |
| uptime | Laufzeit, angemeldete Benutzer und Load Average |
| w | Wer ist angemeldet und was läuft dort |
| sysmon | Grafischer System-Monitor mit Logdatei-Ansicht |
| gmemusage | Speicher je Prozess, inklusive gemeinsam genutzter Regionen |
| gmemusage -d | Detailansicht der Speichersegmente |
sar und Messreihen
| sar -u 5 12 | CPU-Auslastung: 12 Messungen alle 5 Sekunden |
| sar -d 5 12 | Plattenaktivität je Gerät |
| sar -b 5 12 | Puffer-Cache-Trefferquote |
| sar -w 5 12 | Swapping und Context Switches |
| sar -q 5 12 | Länge der Run-Queue |
| sar -A | Alle Kennzahlen aus der aktuellen Sammlung |
| sar -f /var/adm/sa/sa18 | Historische Daten des 18. Tages auswerten |
| chkconfig sar on | Dauerhafte Datensammlung in /var/adm/sa aktivieren |
| sa1 / sa2 | Sammel- und Auswerteskripte, die cron aufruft |
| timex -s befehl | Laufzeit eines Befehls plus sar-Kennzahlen |
| time befehl | Reine Laufzeitmessung (real/user/sys) |
Detailanalyse einzelner Programme
| par befehl | Systemaufrufe und Scheduling-Ereignisse aufzeichnen |
| par -s -SS befehl | Zusammenfassung der Systemaufrufe statt Einzelzeilen |
| padc -o /var/tmp/par.out | Systemweite Aktivität in eine Datei mitschneiden |
| ssrun -usertime programm | SpeedShop: Zeitprofil der Nutzerfunktionen erstellen |
| ssrun -pcsamp programm | SpeedShop: PC-Sampling (geringer Overhead) |
| ssrun -ideal programm | SpeedShop: Instruktionszählung ohne Störungen |
| prof programm.usertime.m1234 | SpeedShop-Ergebnis als Textprofil auswerten |
| cvperf programm.pcsamp.m1234 | Grafische Auswertung im Performance Analyzer |
| dplace / dprof | Prozessplatzierung und Profiling auf Origin-Systemen |
Performance Co-Pilot (PCP, optional)
| chkconfig pmcd on | PCP-Sammeldaemon beim Systemstart aktivieren |
| pminfo -f kernel.all.load | Einzelne PCP-Metrik abfragen |
| pmval kernel.all.cpu.user | Metrik im Zeitverlauf ausgeben |
| pmchart | Grafische PCP-Diagramme (X11) |
| pmlogger -c config /var/tmp/log | Metriken für spätere Auswertung aufzeichnen |
| pmie | Regelbasierte Auswertung mit Schwellwert-Alarmen |
Vorgehen: Erst osview für den Gesamteindruck (CPU vs.
Speicher vs. E/A), dann sar -d bzw. xlvstat für die Platten und
top/gmemusage für die Verursacher. Erst danach mit par
oder SpeedShop in ein einzelnes Programm hineinsehen.
🌐Netzwerk – TCP/IP
Schnittstellen und Adressen
| ifconfig -a | Alle Schnittstellen mit Adresse, Netzmaske und Status |
| ifconfig ec0 | Eine bestimmte Schnittstelle abfragen |
| ifconfig ec0 inet 10.0.0.5 netmask 0xffffff00 up | Adresse zur Laufzeit setzen (nicht dauerhaft) |
| ifconfig ec0 down | Schnittstelle deaktivieren |
| ifconfig ec0 mtu 1500 | MTU einer Schnittstelle ändern |
| hinv -c network | Vorhandene Netzwerk-Adapter im Inventory |
| /etc/sys_id | Enthält den Hostnamen – wird beim Boot ausgelesen |
| hostname | Aktuellen Hostnamen anzeigen |
| /etc/config/netif.options | Primäre Schnittstelle: if1name, if1addr |
| /etc/config/ifconfig-1.options | Zusätzliche ifconfig-Parameter je Interface |
| /etc/config/static-route.options | Dauerhafte statische Routen definieren |
| /etc/init.d/network start | Netzwerk-Konfiguration neu anwenden |
| /etc/init.d/network stop | Netzwerk anhalten (Konsole erforderlich!) |
| chkconfig network on | Netzwerkstart beim Booten aktivieren |
Routing, Namen und Tests
| netstat -rn | Routingtabelle numerisch anzeigen |
| netstat -in | Schnittstellenstatistik mit Fehlern und Kollisionen |
| netstat -an | Alle Sockets und Verbindungen numerisch |
| netstat -s | Protokollstatistiken (IP, TCP, UDP, ICMP) |
| netstat -m | mbuf-Nutzung des Netzwerkstacks |
| netstat -C | Fortlaufende Anzeige der Schnittstellenlast |
| route add default 10.0.0.1 | Standard-Gateway zur Laufzeit setzen |
| route add net 192.168.5.0 10.0.0.9 1 | Statische Netzroute mit Hop-Count hinzufügen |
| route delete default 10.0.0.1 | Route wieder entfernen |
| arp -a | ARP-Cache anzeigen |
| arp -d 10.0.0.7 | Einzelnen ARP-Eintrag löschen |
| ping -c 5 10.0.0.1 | Erreichbarkeit mit fünf Paketen prüfen |
| ping -s 10.0.0.1 | Fortlaufend mit Statistik pingen |
| traceroute 10.0.0.1 | Weg zum Ziel Hop für Hop verfolgen |
| nslookup rechner | DNS-Auflösung testen |
| ttcp -r -s / ttcp -t -s host | Durchsatz zwischen zwei Systemen messen |
| netsnoop -a | IRIX-Paketmitschnitt (nicht Solaris snoop) |
| netsnoop -i ec0 host 10.0.0.7 | Mitschnitt auf ein Interface und einen Host begrenzen |
| netstat -p tcp | Statistik eines einzelnen Protokolls |
Namensauflösung & Konfigurationsdateien
| /etc/hosts | Lokale Namenszuordnung |
| /etc/resolv.conf | DNS-Server und Suchdomains |
| /etc/nsswitch.conf | Reihenfolge der Namensdienste (files, dns, nis) |
| /etc/networks | Symbolische Netznamen |
| /etc/services | Zuordnung Portnummer zu Dienstname |
| /etc/protocols | Protokollnummern |
| /etc/gateways | Routen für routed/gated |
| chkconfig named on | Lokalen DNS-Server aktivieren |
| chkconfig routed off | Dynamisches Routing abschalten (statische Routen nutzen) |
Praxisfalle: Die dauerhafte Netzkonfiguration steht nicht in
ifconfig-Skripten, sondern in /etc/config/netif.options und
/etc/sys_id. Wer nur ifconfig aufruft, verliert die Änderung beim
nächsten Reboot. Nach dem Bearbeiten der Dateien
/etc/init.d/network restart bzw. einen Reboot einplanen.
PROM-Ebene: Für Netzboot und Diagnose ist die NVRAM-Variable
netaddr zuständig: nvram netaddr zeigt sie an,
nvram netaddr 10.0.0.5 setzt sie. Sie ist unabhängig von der IRIX-Konfiguration
und wird nur vom PROM benutzt.
📡NFS & Netzdienste
NFS-Server
| chkconfig nfs on | NFS-Server-Dienste beim Systemstart aktivieren |
| /etc/exports | Liste der freigegebenen Verzeichnisse mit Optionen |
| exportfs -av | Alle Einträge aus /etc/exports exportieren |
| exportfs | Aktuell exportierte Verzeichnisse anzeigen |
| exportfs -u /daten | Einzelne Freigabe zurücknehmen |
| exportfs -ua | Alle Freigaben zurücknehmen |
| showmount -a | Welche Clients haben was gemountet |
| showmount -e | Exportliste des lokalen Servers |
| showmount -e server | Exportliste eines entfernten Servers abfragen |
| nfsstat -s | Serverseitige NFS-Statistik |
| nfsstat -c | Clientseitige NFS-Statistik (Retransmits beachten) |
| nfsstat -z | Zähler zurücksetzen vor einer Messung |
| /etc/init.d/nfs start | NFS-Dienste manuell starten |
| /etc/config/nfsd.options | Anzahl der NFS-Server-Threads einstellen |
NFS-Client und Automounter
| mount -t nfs server:/daten /mnt | NFS-Freigabe manuell einbinden |
| mount -o ro,soft,intr server:/daten /mnt | Lesend, unterbrechbar – empfohlen für wackelige Netze |
| mount -o vers=3,proto=tcp server:/daten /mnt | NFS-Version und Transportprotokoll erzwingen |
| umount -f /mnt | Hängenden NFS-Mount erzwungen lösen |
| chkconfig autofs on | Automounter autofs aktivieren (empfohlen) |
| chkconfig automount on | Alten Automounter aktivieren (Alternative) |
| /etc/auto_master | Haupttabelle des Automounters |
| /etc/auto.direct | Direkte Automounter-Zuordnungen |
| /etc/config/autofs.options | Optionen für den autofs-Start |
| /etc/init.d/autofs restart | Automounter neu starten, damit Maps greifen |
inetd, RPC und Zeitdienste
| /etc/inetd.conf | Konfiguration der über inetd gestarteten Dienste |
| kill -HUP `cat /etc/inetd.pid` | inetd zum Neulesen der Konfiguration bringen |
| rpcinfo -p | Alle beim Portmapper registrierten RPC-Dienste |
| rpcinfo -p server | RPC-Dienste eines entfernten Systems prüfen |
| rpcinfo -u server nfs 3 | Konkreten NFS-Dienst per UDP anpingen |
| chkconfig timed on | Zeitsynchronisation per timed aktivieren |
| timeslave -h zeitserver | Uhr an einem Server ausrichten (langsam nachziehen) |
| chkconfig ntp on | NTP-Dienst aktivieren (aus /usr/freeware oder eoe) |
| /etc/config/ntp.conf | NTP-Serverliste und Drift-Datei |
| date 0818143000 | Systemzeit manuell stellen (MMTTHHMM[JJ]) |
| /etc/TIMEZONE | Zeitzone des Systems (TZ-Variable) |
| chkconfig ftpd on | FTP-Dienst freischalten |
| chkconfig sshd on | SSH-Dienst aktivieren (Freeware/OpenSSH-Paket) |
exports-Beispiel:
/daten -access=web1:web2,rw=web1,root=web1 gibt /daten für zwei
Rechner frei, erlaubt nur web1 Schreibzugriff und behandelt dort root als
root. Nach jeder Änderung exportfs -av ausführen – ein
Neustart des Servers ist nicht nötig.
Hinweis: Bei hängenden NFS-Zugriffen zuerst nfsstat -c
prüfen: viele timeout/retrans deuten auf Netzprobleme, nicht auf den
Server. Harte Mounts (hard, Standard) blockieren Prozesse unbegrenzt – für
unkritische Daten soft,intr verwenden.
🔒Benutzer & Sicherheit
Konten verwalten
| /usr/sysadm/privbin/addUserAccount | Konto anlegen (Backend des System Managers) |
| /usr/sysadm/privbin/modUserAccount | Bestehendes Konto ändern |
| /usr/sysadm/privbin/delUserAccount | Konto entfernen |
| sysmgr | Grafischer System Manager mit Benutzerverwaltung (X11) |
| vi /etc/passwd | Klassischer Weg: Konto von Hand eintragen |
| vipw | Passwortdatei mit Sperre und Syntaxprüfung bearbeiten |
| passwd benutzer | Passwort setzen oder ändern |
| passwd -l benutzer | Konto sperren |
| passwd -s benutzer | Status der Passwortalterung anzeigen |
| pwck | Konsistenz von /etc/passwd prüfen |
| grpck | Konsistenz von /etc/group prüfen |
| pwconv | Auf Shadow-Passwörter (/etc/shadow) umstellen |
| id benutzer | UID, GID und Gruppenzugehörigkeit anzeigen |
| groups benutzer | Gruppen eines Benutzers auflisten |
| who / who -r | Angemeldete Benutzer bzw. aktueller Runlevel |
| last benutzer | Anmeldehistorie aus /var/adm/wtmp |
| su - benutzer | Benutzerwechsel mit vollem Login-Umfeld |
| /usr/people/name | Übliches Heimatverzeichnis unter IRIX |
| /etc/default/login | Login-Vorgaben: Umask, Pfade, Root-Login auf Konsole |
| /etc/passwd /etc/group /etc/shadow | Die drei zentralen Kontendateien |
Rechte, ACLs und Capabilities
| chmod 750 /daten/projekt | Klassische UNIX-Rechte setzen |
| chown benutzer:gruppe datei | Eigentümer und Gruppe ändern |
| umask 022 | Vorgabemaske für neu erzeugte Dateien |
| ls -D datei | ACL und MAC-Label einer Datei anzeigen |
| ls -@ datei | Erweiterte Attribute anzeigen |
| chacl u::rwx,g::r-x,o::--- datei | Zugriffs-ACL setzen (XFS unterstützt POSIX-ACLs) |
| chacl -b acl dacl verzeichnis | Access-ACL und Default-ACL getrennt setzen |
| chacl -d dacl verzeichnis | Nur die Default-ACL eines Verzeichnisses ändern |
| chacl -D verzeichnis | Default-ACL entfernen |
| /etc/capability | Datei mit Capability-Zuordnungen je Benutzer |
| chkconfig capabilities on | Capability-Mechanismus einschalten |
| runpriv befehl | Definierten privilegierten Befehl ohne vollen root ausführen |
| chkconfig noiconlogin | Grafische Benutzerauswahl im Login-Bildschirm steuern |
| /usr/freeware/bin/sudo | sudo ist kein IRIX-Bestandteil – nur aus Freeware-Paketen |
| /var/adm/sulog | Protokoll aller su-Versuche |
| /etc/hosts.equiv, ~/.rhosts | Vertrauensbeziehungen der r-Kommandos – möglichst leer halten |
Praxisfalle: IRIX 6.5 hat kein useradd,
usermod oder userdel. Wer diese Befehle erwartet, landet ins Leere. Konten
werden über den System Manager, die privbin-Programme oder direkt in
/etc/passwd gepflegt – danach immer pwck laufen lassen und das
Heimatverzeichnis unter /usr/people manuell mit korrektem Eigentümer anlegen.
Trusted IRIX: Es gibt eine separate Variante Trusted IRIX/CMW mit
Mandatory Access Control, Labels und Auditing. Befehle wie chlabel, dbedit
und die MAC-Ausgabe von ls -D sind nur dort vollständig nutzbar. Auf
Standard-IRIX bleiben ACLs und Capabilities die praktischen Werkzeuge.
🔧Fehleranalyse & Crash-Dumps
Logdateien und Kernelmeldungen
| /var/adm/SYSLOG | Zentrales Systemprotokoll – erste Anlaufstelle |
| tail -f /var/adm/SYSLOG | Protokoll live mitlesen |
| /var/adm/oSYSLOG | Vorherige, rotierte Fassung des Protokolls |
| grep -i panic /var/adm/SYSLOG | Nach Panics und harten Fehlern suchen |
| dmesg | Kernel-Ringpuffer: Boot- und Treibermeldungen |
| dmesg | grep -i scsi | SCSI-Fehler und Bus-Resets herausfiltern |
| /etc/syslog.conf | Zuordnung von Facility/Level zu Zieldateien |
| kill -HUP `cat /etc/syslog.pid` | syslogd zum Neulesen bringen |
| logger -p daemon.notice "Text" | Eigene Meldung ins SYSLOG schreiben (Wartungsvermerk) |
| /var/adm/sulog | su-Versuche |
| /var/adm/wtmp, /var/adm/utmp | An- und Abmeldungen (mit last/who lesen) |
| /var/adm/avail/availmon | Availability-Monitor: Verfügbarkeit und Neustarts |
| availmon | Bericht über Uptime, Abstürze und Ursachen |
Crash-Dumps auswerten
| /var/adm/crash/ | Ablage der Crash-Dumps: unix.N und vmcore.N.comp |
| ls -l /var/adm/crash | Vorhandene Dumps mit Zeitstempel prüfen |
| savecore -v /var/adm/crash | Dump aus dem Swap-Bereich sichern (läuft beim Boot) |
| chkconfig savecore on | Automatisches Sichern von Dumps aktivieren |
| icrash | Analyse des laufenden Kernels (Livesystem) |
| icrash -v unix.0 vmcore.0.comp | Gesicherten Dump öffnen |
| icrash -o /var/tmp/analyse.txt ... | Ausgabe in eine Datei mitschreiben |
| panic | In icrash: Panic-Meldung und Ursache anzeigen |
| stack | In icrash: Aufrufstapel zum Zeitpunkt des Absturzes |
| proc -a | In icrash: Prozesstabelle des Dumps |
| summary | In icrash: Kurzübersicht über den Dump |
| quit | icrash beenden |
| symmon | Symbolischer Kernel-Debugger von der PROM-Ebene |
| ide | Diagnoseprogramm im Volume Header (Hardwaretests) |
| hinv -mv | Board- und Modulkennungen für Serviceanfragen |
Systematische Eingrenzung
| df -k | Erste Prüfung: volles / oder /var |
| swap -l | Zweite Prüfung: Swap erschöpft? |
| osview -i 2 | Dritte Prüfung: CPU, Speicher oder E/A als Engstelle |
| netstat -in | Netzfehler und Kollisionen prüfen |
| xlv_mgr -c "show all" | Volume-Zustand prüfen (degraded plexes) |
| versions changed | Wurde am Softwarestand etwas verändert? |
| who -r; ls -l /unix | Runlevel und Kernelalter/-datum kontrollieren |
Reihenfolge nach einem Absturz: 1) /var/adm/SYSLOG und
/var/adm/oSYSLOG um den Zeitpunkt lesen. 2) ls -l /var/adm/crash: liegt ein
Dump vor? 3) icrash mit panic und stack aufrufen. 4) Bei
Hardware-Verdacht hinv -mv, dmesg und die ide-Diagnose.
Praxisfalle: Dumps brauchen Platz – /var/adm/crash muss
mindestens so groß sein wie der Hauptspeicher, sonst wird der Dump verworfen und die
Absturzursache ist verloren. Vor Wartungsfenstern df -k /var prüfen und alte Dumps
archivieren.
# --- Nach einer Kernel-Panic ---
# 1) Zeitpunkt und Meldung suchen
grep -i -E 'panic|PANIC' /var/adm/SYSLOG /var/adm/oSYSLOG
tail -200 /var/adm/oSYSLOG
# 2) Wurde ein Dump gesichert?
ls -l /var/adm/crash
# erwartet: unix.0 vmcore.0.comp (Nummer steigt je Absturz)
# 3) Dump analysieren
cd /var/adm/crash
icrash -v unix.0 vmcore.0.comp -o /var/tmp/crash0.txt
icrash> summary
icrash> panic
icrash> stack
icrash> proc -a
icrash> quit
# 4) Hardware-Verdacht gegenpruefen
hinv -mv
dmesg | grep -i -E 'error|reset|scsi'
availmon
# 5) Software-Stand gegenpruefen
versions -b eoe
versions -j # kuerzlich eingespielte Patches
ls -l /unix # passt das Kerneldatum zur letzten Aenderung?
💾Backup & Recovery
xfsdump / xfsrestore
| xfsdump -l 0 -f /dev/rmt/tps0d3nr /daten | Vollsicherung (Level 0) auf Band |
| xfsdump -l 1 -f /dev/rmt/tps0d3nr /daten | Inkrementell: nur Änderungen seit Level 0 |
| xfsdump -f /var/backup/daten.dump /daten | Sicherung in eine Datei statt auf Band |
| xfsdump -L "Vor Patch" -M Band1 -f ... /daten | Session-Label und Medienlabel vergeben |
| xfsdump -J -f ... /daten | Ohne Eintrag ins Inventory sichern (Sonderfälle) |
| xfsdump -e -f ... /daten | Auf Bandende warten und Medienwechsel erlauben |
| xfsdump -I | Inventory anzeigen: alle bisherigen Sicherungen und Level |
| /var/xfsdump/inventory | Ablage des Dump-Inventorys (kein /etc/dumpdates) |
| xfsrestore -f /dev/rmt/tps0d3nr /daten | Komplette Sicherung zurückschreiben |
| xfsrestore -i -f /dev/rmt/tps0d3nr /daten | Interaktiv einzelne Dateien auswählen |
| xfsrestore -t -f /dev/rmt/tps0d3nr | Nur Inhaltsverzeichnis der Sicherung ausgeben |
| xfsrestore -r -f ... /daten | Kumulativ: Level 0 plus alle Inkremente einspielen |
| xfsrestore -s pfad/datei -f ... /ziel | Einzelne Datei oder Teilbaum wiederherstellen |
| xfsrestore -S sitzungs_id -f ... /ziel | Bestimmte Session vom Medium wählen |
Weitere Sicherungswerkzeuge
| Backup /daten | Einfaches IRIX-Skript um bru/tar |
| Restore /daten | Gegenstück zu Backup |
| bru -cvf /dev/rmt/tps0d3nr /daten | Archiv erzeugen (Backup and Restore Utility) |
| bru -tvf /dev/rmt/tps0d3nr | Archivinhalt auflisten |
| bru -xvf /dev/rmt/tps0d3nr | Archiv zurücklesen |
| bru -iv -f archiv | Archiv auf Lesbarkeit prüfen |
| tar cvf /dev/rmt/tps0d3nr /daten | Klassisches tar-Archiv auf Band |
| tar tvf /dev/rmt/tps0d3nr | tar-Archiv auflisten |
| tar xvf /dev/rmt/tps0d3nr pfad | Gezielt aus tar zurückholen |
| find /daten -print | cpio -ocv > archiv | cpio-Archiv erzeugen |
| cpio -icdv < archiv | cpio-Archiv mit Verzeichnissen zurücklesen |
| dd if=/dev/rdsk/dks0d1s0 of=/backup/root.img bs=1024k | Rohkopie einer Partition |
| dd if=/dev/rdsk/dks0d1vh of=/backup/vh.img bs=512 count=4096 | Volume Header sichern (Label und Bootblocks) |
| /usr/freeware/bin/cdrecord -scanbus | CD-Brenner erkennen (Freeware-Paket) |
| /usr/freeware/bin/mkisofs -o cd.iso /daten | ISO-Abbild erzeugen |
Bandhygiene: Immer das no-rewind-Device
(/dev/rmt/tps0d3nr) verwenden, wenn mehrere Sicherungen hintereinander auf ein Band
geschrieben werden. Vorher mt rewind, danach mt offline. Position mit
mt fsf n setzen, bevor eine spätere Session gelesen wird.
Praxisfalle: Ein Dateisystem-Backup rettet keine Bootfähigkeit. Zum
vollständigen Wiederaufsetzen gehören zusätzlich das Plattenlabel
(prtvtoc-Ausgabe), die XLV-Definition (xlv_mgr -c "show -v all") und der
Volume Header. Diese drei Angaben ausdrucken oder auf einem anderen System ablegen.
Wiederherstellung des Systems: Von der IRIX-Installations-CD in die
Miniroot booten und die Option Recover System wählen. Sie erwartet eine
Backup- bzw. xfsdump-Sicherung des Rootfilesystems. Ohne aktuelles
Root-Backup bleibt nur eine Neuinstallation mit anschließendem Restore der Daten.
# --- Sicherung vor einer Aenderung und selektives Zurueckholen ---
# 1) Bandlaufwerk vorbereiten
hinv -c tape
mt -f /dev/rmt/tps0d3 rewind
mt -f /dev/rmt/tps0d3nr status
# 2) Vollsicherung mit sprechendem Label
xfsdump -l 0 -L "vor_Patch_6530_$(date +%Y%m%d)" -M Band1 \
-f /dev/rmt/tps0d3nr /daten
# 3) Zusaetzlich die Systemplatte sichern
xfsdump -l 0 -L "root_vor_Patch" -f /var/backup/root.dump /
# 4) Metadaten dokumentieren (rettet spaeter Zeit)
prtvtoc /dev/rdsk/dks0d1vh > /var/backup/label_dks0d1.txt
xlv_mgr -c "show -v all" > /var/backup/xlv_layout.txt
versions -b > /var/backup/versions.txt
# 5) Sicherung pruefen
xfsdump -I | more # Inventory: Session sichtbar?
mt -f /dev/rmt/tps0d3 rewind
xfsrestore -t -f /dev/rmt/tps0d3nr | head -40
# 6) Spaeter: nur ein Verzeichnis zurueckholen
mkdir -p /var/tmp/restore
mt -f /dev/rmt/tps0d3 rewind
xfsrestore -s projekt/konfig -f /dev/rmt/tps0d3nr /var/tmp/restore
# 7) Oder interaktiv auswaehlen
xfsrestore -i -f /dev/rmt/tps0d3nr /var/tmp/restore
xfsrestore> ls
xfsrestore> add projekt/konfig
xfsrestore> extract
xfsrestore> quit
mt -f /dev/rmt/tps0d3 offline
🖥Desktop, X11 & Grafik
| startgfx | Grafische Oberfläche (xdm und Desktop) starten |
| stopgfx | Grafische Oberfläche sauber beenden |
| chkconfig xdm on | Grafisches Login beim Systemstart aktivieren |
| chkconfig windowsystem on | Fenstersystem überhaupt beim Boot starten |
| chkconfig visuallogin on | Grafischen Anmeldebildschirm einschalten |
| /etc/init.d/xdm start | xdm manuell starten |
| /etc/init.d/xdm stop | xdm beenden (Konsole bleibt nutzbar) |
| 4Dwm | Der IRIX-Fenstermanager (Motif-basiert) |
| toolchest | Das IRIX-Hauptmenü in der linken oberen Ecke |
| /usr/lib/X11/system.chestrc | Systemweite Toolchest-Menüdefinition |
| ~/.auxchestrc | Benutzereigene Erweiterung des Toolchest |
| gfxinfo | Grafikkarte, Speicher und Monitorauflösung anzeigen |
| gfxinfo -v | Ausführliche Grafik-Informationen |
| setmon -x 1280x1024_60 | Videomodus/Monitortiming umschalten |
| setmon -g | Aktuell aktives Videoformat anzeigen |
| xdpyinfo | Eigenschaften des X-Displays abfragen |
| xset q | X-Einstellungen wie Bildschirmschoner und Tastatur anzeigen |
| xset s off; xset -dpms | Bildschirmschoner und Energiesparen abschalten |
| xhost +rechner | Anderem Rechner Zugriff auf das Display erlauben |
| DISPLAY=rechner:0.0; export DISPLAY | Ausgabe auf ein entferntes Display umleiten |
| winterm -t xterm | IRIX-Terminalfenster öffnen |
| /var/adm/SYSLOG, /var/X11/xdm/xdm-errors | Fehlersuche bei nicht startender Oberfläche |
Praxisfalle: IRIX hat kein startx. Die Oberfläche wird mit
startgfx bzw. stopgfx gesteuert, dauerhaft über
chkconfig xdm und chkconfig windowsystem. Bei einem headless betriebenen
System beide Flags auf off setzen – sonst wartet der Boot auf die Grafik.
Tipp: gfxinfo gibt Board-Typ (z. B. Impact, Odyssey, CRM)
und die aktive Auflösung aus. Passt das Timing nicht zum Monitor, hilft
setmon -x mit einem der Formate aus /usr/gfx/ucode/*/vof/.
🖨Drucken (System V lp)
| lpstat -t | Kompletter Status: Drucker, Klassen, Aufträge, Scheduler |
| lpstat -a | Welche Drucker nehmen Aufträge an |
| lpstat -p drucker | Status eines einzelnen Druckers |
| lp -d drucker datei | Datei an einen Drucker senden |
| lp -d drucker -n 2 datei | Zwei Kopien drucken |
| cancel drucker-123 | Druckauftrag abbrechen |
| enable drucker / disable drucker | Drucker für die Ausgabe frei- bzw. sperren |
| accept drucker / reject drucker | Annahme neuer Aufträge steuern |
| lpsched / lpshut | Druck-Scheduler starten bzw. anhalten |
| lpadmin -p ... | Drucker anlegen und Schnittstelle zuordnen |
| /var/spool/lp/ | Spool-Verzeichnis und Drucker-Konfiguration |
| printers | Grafisches Druckermanager-Werkzeug des Desktops |
| chkconfig lp on | Drucksystem beim Systemstart aktivieren |
📜Wichtige Dateien & Verzeichnisse
Konfiguration
| /etc/sys_id | Hostname des Systems |
| /etc/config/ | Symlink nach /var/config: chkconfig-Flags und Optionen |
| /var/config/ | Tatsächlicher Ort der chkconfig-Flag-Dateien |
| /etc/config/netif.options | Netzwerkschnittstellen und deren Adressen |
| /etc/config/static-route.options | Statische Routen |
| /etc/fstab | Filesysteme und Swap-Bereiche für den Boot |
| /etc/inittab | Runlevel-Definition und Konsolen-Getty |
| /etc/init.d/ | Start-/Stopskripte der Dienste |
| /etc/rc0.d/, /etc/rc2.d/, /etc/rc3.d/ | Runlevel-Verknüpfungen auf /etc/init.d |
| /etc/inetd.conf | Netzdienste, die inetd startet |
| /etc/exports | NFS-Freigaben |
| /etc/syslog.conf | Protokollziele des syslogd |
| /etc/TIMEZONE | Zeitzone |
| /etc/default/login | Login-Vorgaben (Umask, root-Konsolenzwang) |
| /etc/motd, /etc/issue | Begrüßungstexte nach bzw. vor dem Login |
Kernel und System
| /unix | Der laufende Kernel |
| /unix.install | Neu gebauter Kernel, wird beim nächsten Boot aktiv |
| /unix.save | Selbst angelegte Sicherheitskopie des Kernels |
| /var/sysgen/system/ | Kernel-Konfigurationsdateien (*.sm) |
| /var/sysgen/master.d/ | Kernelmodul-Beschreibungen |
| /var/sysgen/boot/ | Objektdateien für den Kernelbau |
| /var/sysgen/mtune/ | Vorgaben und Grenzen der Tunables |
| /var/sysgen/stune | Dauerhaft geänderte Tunable-Werte |
| /hw/ | Hardware-Graph: alle erkannten Geräte als Dateibaum |
| /stand/ | Standalone-Programme (sash, fx, ide) |
| /debug/ | Debug-Schnittstellen des Kernels |
Daten, Logs und Software
| /var/adm/SYSLOG | Zentrales Systemprotokoll |
| /var/adm/crash/ | Crash-Dumps |
| /var/adm/sa/ | sar-Messdaten |
| /var/inst/ | Installationsdatenbank von inst/versions |
| /var/xfsdump/inventory/ | Inventory aller xfsdump-Sicherungen |
| /var/spool/cron/crontabs/ | cron-Tabellen |
| /usr/people/ | Heimatverzeichnisse der Benutzer |
| /usr/freeware/ | Nachinstallierte Open-Source-Software (bin, lib, man) |
| /usr/sysadm/ | System-Manager-Werkzeuge und privbin-Programme |
| /usr/gfx/ | Grafik-Microcode und Videoformate |
| /CDROM/ | Automatisch eingebundene CD (per mediad) |
Tipp: /usr/freeware/bin und
/usr/freeware/man gehören nicht standardmäßig in PATH und
MANPATH. Auf Systemen mit Freeware-Paketen beide Pfade in
/etc/profile ergänzen, sonst wirken Werkzeuge wie gcc,
tcpdump oder sudo als nicht vorhanden.
🛠Praxis-Workflows & Tipps
Standard-Kontrollgang
| hinv -v; versions -b eoe | Was ist das für ein System und welche Release läuft |
| uptime; who -r | Laufzeit, Last und Runlevel |
| df -k; swap -l | Platz und Swap – die zwei häufigsten Ursachen |
| tail -100 /var/adm/SYSLOG | Aktuelle Meldungen sichten |
| xlv_mgr -c "show all"; xfs_info / | Volume- und Filesystemzustand |
| netstat -in; ifconfig -a | Netzanbindung und Fehlerzähler |
| versions changed | head -40 | Wurde am System etwas verändert |
| chkconfig | Welche Dienste sind aktiviert |
| xfsdump -I | tail -20 | Wann wurde zuletzt gesichert |
Merksätze für IRIX
| inst, swmgr, versions | Softwareverwaltung – kein pkgadd, kein rpm |
| XLV | Volume-Management – kein LVM, kein VxVM, kein ZFS |
| chkconfig + /etc/init.d | Dienststeuerung – kein systemctl, kein svcadm |
| systune + autoconfig + reboot | Kernel-Parameter – kein sysctl, kein kmtune |
| fx + prtvtoc | Plattenlabel – kein fdisk, kein format |
| xfsdump/xfsrestore | Backup – kein ufsdump, kein mksysb |
| netsnoop | Paketmitschnitt – snoop ist Solaris |
| osview / gr_osview | Systemmonitor – kein vmstat-Zentrismus |
Die acht wichtigsten Stolperfallen:
fx arbeitet destruktiv direkt am Plattenlabel ·
chkconfig setzt Flags in /var/config und ersetzt keine Runlevel-Links ·
vor Hardware-Eingriffen immer xlv_shutdown ·
xfs_repair nur ungemountet und -L nur als letzte Maßnahme ·
nach Patches den Delta-Zustand mit versions changed prüfen ·
der Hostname kommt aus /etc/sys_id ·
nach Kerneländerungen autoconfig und Reboot ·
inst ist interaktiv und führt ohne go nichts aus.
Vor jeder Wartung dokumentieren:
hinv -v, versions -b, prtvtoc aller Platten,
xlv_mgr -c "show -v all", df -k, chkconfig,
ifconfig -a und netstat -rn in eine Datei umleiten und außerhalb des
Systems ablegen. Diese acht Ausgaben ersparen im Fehlerfall Stunden.
# --- Systemzustand vor einer Aenderung komplett festhalten ---
D=/var/tmp/doku_$(hostname)_$(date +%Y%m%d)
mkdir -p $D
hinv -v > $D/hinv.txt
hinv -mv > $D/hinv_boards.txt
uname -aR > $D/uname.txt
versions -b > $D/versions.txt
versions -j > $D/patches.txt
chkconfig > $D/chkconfig.txt
systune > $D/systune.txt
df -k > $D/df.txt
swap -l > $D/swap.txt
cat /etc/fstab > $D/fstab.txt
xlv_mgr -c "show -v all" > $D/xlv.txt
ifconfig -a > $D/ifconfig.txt
netstat -rn > $D/routes.txt
cat /etc/sys_id > $D/sys_id.txt
# Plattenlabels aller erkannten Platten sichern
for vh in /dev/rdsk/dks*vh; do
echo "=== $vh ===" >> $D/labels.txt
prtvtoc $vh >> $D/labels.txt
done
# Paket schnueren und wegkopieren
cd /var/tmp && tar cvf - $(basename $D) | gzip > $D.tar.gz
rcp $D.tar.gz backupserver:/doku/
Abschluss-Checkliste nach Arbeiten am System: Kernel gebaut
(autoconfig) und rebootet? – versions changed geprüft und
*.N-Dateien zusammengeführt? – alle Filesysteme aus /etc/fstab
gemountet (df -k)? – XLV-Volumes vollständig
(xlv_mgr -c "show all")? – Dienste aktiv (chkconfig,
rpcinfo -p)? – Netz erreichbar (ping, netstat -rn)?
– /var/adm/SYSLOG ohne neue Fehler? – Sicherung erfolgreich
(xfsdump -I)?