Keine Treffer – Suchbegriff anpassen.
💻System- & LPAR-Informationen
| oslevel -s | Genauer OS-Level inkl. TL/SP, z. B. 7300-02-01-2346 |
| oslevel -r | Recommended-Maintenance-Level (nur TL) |
| instfix -i | grep ML | Prüft, ob alle Filesets eines ML/TL komplett sind |
| uname -a | Kernel-Info: OS, Hostname, Version/Release, Maschinen-ID |
| uname -M | Maschinenmodell, z. B. IBM,9009-42A |
| uname -L | LPAR-ID und LPAR-Name |
| prtconf | Komplette Hardware-Übersicht (CPU, RAM, Firmware, Devices) |
| prtconf -m / -c / -s | Nur Memory / CPU-Anzahl / CPU-Typ |
| lsconf | Ähnlich prtconf, zusätzlich Netzwerk- und Paging-Details |
| lsattr -El sys0 | Systemweite Attribute (maxuproc, realmem, iostat …) |
| lsattr -El sys0 -a realmem | Physischer Speicher in KB |
| chdev -l sys0 -a maxuproc=8192 | Max. Prozesse pro User erhöhen (sofort aktiv) |
| lscfg -vp | grep -p Platform | Firmware-/Systemfirmware-Level |
| lparstat -i | LPAR-Konfiguration: Typ, Entitled Capacity, VPs, Weight, SMT |
| lsdev -Cc processor | Vorhandene (logische) Prozessoren |
| smtctl | SMT-Status anzeigen |
| smtctl -m off -w boot | SMT dauerhaft ausschalten (-w now = sofort) |
| bindprocessor -q | Verfügbare logische CPUs auflisten |
| date; uptime | Zeit, Laufzeit, Load Average, angemeldete User |
| who -b / last reboot | Letzter Bootzeitpunkt / Reboot-Historie |
| lslicense | Anzahl der Fixed-Lizenzen / Floating-Lizenzen |
Praxis: Vor jeder Änderung Ist-Zustand sichern:
prtconf > /tmp/prtconf_$(date +%F).txt und oslevel -s notieren.
ODM – Object Data Manager
| odmget -q "name=hdisk0" CuDv | ODM-Eintrag eines Devices anzeigen |
| odmget CuAt | more | Alle geänderten (custom) Attribute |
| odmdelete -q "name=hdisk9" -o CuDv | Verwaisten ODM-Eintrag löschen |
| synclvodm -v vgname | ODM mit VGDA/LVM-Struktur synchronisieren |
Achtung: odmdelete nur mit klarem Verständnis nutzen –
falsche Einträge zu löschen kann das System unbootbar machen. Bevorzugt rmdev.
⏻Boot, Shutdown & Bootlist
| bootlist -m normal -o | Aktuelle Bootreihenfolge (Normal-Mode) anzeigen |
| bootlist -m normal hdisk0 hdisk1 | Bootreihenfolge setzen (Reihenfolge = Priorität) |
| bootlist -m service -o | Service-Bootliste (z. B. für NIM/CD-Boot) |
| bosboot -ad /dev/hdisk0 | Bootimage neu schreiben (nach LVM-/Kernel-Änderung nötig) |
| lslv -m hd5 | Auf welchen Platten liegt das Boot-LV hd5 |
| shutdown -Fr | Sofortiger Reboot ohne Grace-Period (Standard für Wartung) |
| shutdown -F | System herunterfahren und ausschalten |
| shutdown -Fr +5 "Wartung" | Reboot in 5 Minuten mit Meldung an alle User |
| alt_disk_copy -B -d hdisk1 | Klon von rootvg auf freie Platte (Rollback-Sicherheit) |
| alt_rootvg_op -W -d hdisk1 | altinst_rootvg aufwecken/mounten zur Kontrolle |
| alt_rootvg_op -X altinst_rootvg | Alt-Disk-Klon wieder entfernen |
Boot-Modi & SMS
| 1 (bei Boot-Piep) | SMS-Menü (Bootreihenfolge, Netzwerk-Boot, Diagnose) |
| 5 / 6 | Boot von Default- bzw. angegebener Liste, Service Mode |
| 8 | Open-Firmware-Prompt (ok>) |
| Maintenance Mode | Boot von DVD/NIM → „Access a Root Volume Group“ → Shell für Reparaturen |
Runlevel & Init
| who -r | Aktuellen Runlevel anzeigen |
| lsitab -a | Alle Einträge aus /etc/inittab |
| mkitab "myapp:2:once:/usr/local/bin/start" | Autostart-Eintrag anlegen |
| chitab / rmitab myapp | Eintrag ändern bzw. entfernen |
| telinit q | inittab neu einlesen ohne Reboot |
Merke: Nach jeder Änderung an rootvg-LVs (mirrorvg, extendvg, Plattenwechsel)
immer bosboot -ad /dev/hdiskX und danach bootlist prüfen.
📦Software: Filesets, installp, RPM & dnf
Abfragen
| lslpp -L all | Alle installierten Filesets mit Level und Status |
| lslpp -l "bos.mp64" | Status eines bestimmten Filesets |
| lslpp -w /usr/bin/vmstat | Welches Fileset besitzt diese Datei? |
| lslpp -f bos.rte.commands | Alle Dateien eines Filesets |
| lslpp -h bos.rte | Installations-/Update-Historie |
| lppchk -v | Konsistenzprüfung: fehlen Requisites? (sollte leer sein) |
| lppchk -c bos.rte | Checksummen der Dateien prüfen |
| instfix -ivk IV12345 | Prüfen, ob ein APAR installiert ist |
Installieren & Updaten (installp)
| inutoc . | Im Fileset-Verzeichnis .toc erzeugen – immer zuerst! |
| installp -apXYgd . all | Preview (Testlauf) – nichts wird geändert |
| installp -aXYgd . all | Installieren: a=apply X=FS erweitern Y=Lizenz g=Requisites |
| install_all_updates -d /mnt/tl03 | Empfohlener Weg für TL/SP-Updates |
| smitty update_all | Menu-gestütztes Update aller installierten Filesets |
| installp -c all | Applied → Committed (alte Version wird verworfen) |
| installp -r all | Reject: Applied-Update zurückrollen |
| installp -u fileset.name | Fileset deinstallieren |
| emgr -l | Installierte Interim Fixes (ifixes) anzeigen |
| emgr -e IJ12345.epkg.Z | Interim Fix installieren |
| emgr -r -L IJ12345 | Interim Fix entfernen |
Applied vs. Committed: applied behält die Vorgängerversion und ist
zurückrollbar (installp -r). Erst nach erfolgreichem Test commiten –
committed belegt weniger Platz, lässt sich aber nicht mehr rejecten.
RPM / Open Source (AIX Toolbox)
| rpm -qa | grep -i bash | Installierte RPMs suchen |
| rpm -ivh paket.rpm | RPM installieren (-Uvh = Upgrade) |
| rpm -e paket | RPM entfernen |
| dnf search / install / update nmon | AIX Toolbox über dnf verwalten (ab AIX 7.2) |
| dnf list installed | Alle über dnf verwalteten Pakete |
🔌Devices, Disks & MPIO
| lsdev -C | Alle Devices aus der ODM-Customized-Datenbank |
| lsdev -Cc disk | Alle Platten mit Status (Available/Defined) |
| lsdev -Cc adapter | Alle Adapter (FC, Ethernet, SCSI …) |
| lsdev -p fscsi0 | Alle Kind-Devices eines FC-Adapters |
| cfgmgr -v | Neue Hardware erkennen und konfigurieren (verbose) |
| cfgmgr -l fcs0 | Nur einen Adapter neu scannen (schneller, schonender) |
| rmdev -dl hdisk5 | Device entfernen inkl. ODM-Definition |
| rmdev -Rl fcs0 | Adapter + alle Kinder auf Defined setzen |
| mkdev -l hdisk5 | Defined-Device wieder verfügbar machen |
| lsattr -El hdisk0 | Attribute einer Platte (queue_depth, reserve_policy …) |
| chdev -l hdisk0 -a queue_depth=32 -P | Attribut ändern, -P = erst nach Reboot aktiv |
| lscfg -vpl hdisk0 | Details: Hersteller, Modell, Serien-/WWN, Microcode |
| bootinfo -s hdisk0 | Plattengröße in MB |
| lsattr -El hdisk0 -a unique_id | Eindeutige LUN-ID (Mapping zum Storage) |
| chdev -l hdisk3 -a pv=yes | PVID auf Platte schreiben |
| lspv | Alle Platten mit PVID und VG-Zuordnung |
| lsdev -Cc disk -S d | Nur Devices im Status Defined (häufig Leichen) |
MPIO / Multipathing
| lspath | Alle Pfade mit Status (Enabled/Failed/Missing) |
| lspath -l hdisk3 -F "status parent connection" | Pfade einer LUN detailliert |
| chpath -l hdisk3 -p fscsi0 -s disable | Pfad deaktivieren (z. B. vor SAN-Wartung) |
| chpath -l hdisk3 -p fscsi0 -s enable | Pfad wieder aktivieren |
| rmpath -dl hdisk3 -p fscsi1 | Toten Pfad entfernen |
| lsattr -El hdisk3 -a algorithm | Load-Balancing-Algorithmus (round_robin / fail_over / shortest_queue) |
| chdev -l hdisk3 -a algorithm=shortest_queue -a reserve_policy=no_reserve | Typische Einstellung für SAN-/Cluster-LUNs |
| lsmpio -l hdisk3 | MPIO-Status und Pfadstatistik (AIX 7.2+) |
| lsmpio -qe | Storage-Identifikation aller MPIO-Disks |
FC-Adapter & WWPN
| lscfg -vpl fcs0 | grep Network | WWPN des FC-Adapters ermitteln (für Zoning) |
| fcstat fcs0 | FC-Statistik: Fehler, Link-Failures, Durchsatz |
| fcstat -e fcs0 | Erweiterte Statistik inkl. Adapter-Queue-Auslastung |
| lsdev -Cc driver | grep fcp | FC-Protokoll-Devices prüfen |
Neue LUN einbinden: Zoning/Mapping im SAN → cfgmgr -l fcs0 und
cfgmgr -l fcs1 → lspv → lspath prüfen →
Attribute setzen → extendvg oder mkvg.
🗃LVM – Physical Volumes & Volume Groups
Physical Volumes
| lspv | Übersicht aller PVs mit PVID und VG |
| lspv hdisk1 | Details: VG, PP-Größe, FREE PPs, USED PPs, Status |
| lspv -l hdisk1 | Welche LVs liegen auf dieser Platte |
| lspv -p hdisk1 | Belegungskarte (Region: outer edge … inner edge) |
| lspv -M hdisk1 | PP-zu-LP-Mapping der Platte |
| getconf DISK_SIZE /dev/hdisk1 | Plattengröße in MB |
| migratepv hdisk1 hdisk2 | Alle Daten online auf andere Platte verschieben |
| migratepv -l lv01 hdisk1 hdisk2 | Nur ein LV verschieben |
Volume Groups
| lsvg | Alle bekannten VGs |
| lsvg -o | Nur aktive (varied on) VGs |
| lsvg rootvg | PP-Größe, Total/Free PPs, Quorum, VG-Typ, Max LVs |
| lsvg -l rootvg | Alle LVs der VG mit Typ, LPs/PPs, Mountpoint |
| lsvg -p rootvg | Alle PVs der VG mit freien PPs |
| lsvg -M datavg | Komplettes PP/LP-Mapping der VG |
| mkvg -S -y datavg -s 128 hdisk2 hdisk3 | Scalable VG anlegen, PP-Size 128 MB |
| mkvg -B -y bigvg -s 64 hdisk4 | Big VG (-C = Enhanced Concurrent für PowerHA) |
| extendvg datavg hdisk5 | Platte zur VG hinzufügen (-f erzwingt) |
| reducevg datavg hdisk5 | Platte aus VG entfernen (muss leer sein) |
| reducevg -df datavg hdisk5 | Erzwingen, wenn Platte defekt/weg ist |
| varyonvg datavg / varyoffvg datavg | VG aktivieren / deaktivieren |
| importvg -y datavg hdisk5 | VG auf anderem System importieren |
| exportvg datavg | VG-Definition aus ODM entfernen (Daten bleiben) |
| chvg -a y datavg | Auto-Varyon beim Boot einschalten (-a n für Cluster) |
| chvg -Q n datavg | Quorum abschalten (bei 2-Platten-Mirror sinnvoll) |
| chvg -g datavg | VG-Größe nach LUN-Vergrößerung neu einlesen |
| syncvg -v datavg | Stale Partitions synchronisieren |
| lsvg datavg | grep STALE | Auf stale PPs prüfen (muss 0 sein) |
| redefinevg -d hdisk2 datavg | VG-Definition aus VGDA rekonstruieren |
VG-Typen: Normal VG (max. 32 PVs, 255 LVs), Big VG (128 PVs, 512 LVs),
Scalable VG (1024 PVs, 4096 LVs, LVM-Metadaten dynamisch). Neuanlagen immer als
mkvg -S (Scalable) – spätere Konvertierung erfordert Varyoff.
PP-Size: Max. 1016 PPs pro PV bei Faktor 1. Bei 1 TB-LUN also
mindestens 1024 MB PP-Size wählen oder Scalable VG nutzen.
🧩LVM – Logical Volumes & Mirroring
| lslv lv01 | LV-Details: Typ, LPs, Copies, Policy, Mountpoint |
| lslv -l lv01 | Auf welchen PVs liegt das LV, Verteilung |
| lslv -m lv01 | LP-zu-PP-Mapping inkl. Mirror-Kopien |
| mklv -y lv01 -t jfs2 datavg 50 | LV mit 50 LPs anlegen |
| mklv -y lv01 -t jfs2 -c 2 -s s datavg 50 hdisk2 hdisk3 | Gespiegeltes LV (2 Kopien, strict) auf 2 Platten |
| mklv -y loglv01 -t jfs2log datavg 1 | Separates JFS2-Log-LV anlegen |
| logform /dev/loglv01 | Log-LV formatieren – Pflicht vor der Nutzung |
| extendlv lv01 20 | LV um 20 LPs vergrößern |
| rmlv lv01 | LV löschen (Filesystem vorher entfernen) |
| chlv -x 2048 lv01 | Max. LPs erhöhen (bei „exceeds maximum“-Fehler) |
| cplv -v datavg -y lvneu lvalt | LV kopieren (z. B. für Testkopie) |
Mirroring
| mirrorvg -S rootvg hdisk1 | Komplette VG spiegeln, Sync im Hintergrund |
| mirrorvg -c 3 datavg hdisk4 hdisk5 | Dreifach-Spiegel |
| unmirrorvg rootvg hdisk1 | Spiegel wieder auflösen |
| mklvcopy -s n lv01 2 hdisk3 | Einzelnes LV spiegeln |
| rmlvcopy lv01 1 hdisk3 | Mirror-Kopie eines LV entfernen |
| syncvg -p hdisk3 | Synchronisation einer Platte anstoßen |
# rootvg spiegeln - kompletter Ablauf
extendvg rootvg hdisk1
mirrorvg -S rootvg hdisk1 # -S = Background-Sync
lsvg rootvg | grep STALE # warten bis STALE PPs = 0
bosboot -ad /dev/hdisk0
bosboot -ad /dev/hdisk1
bootlist -m normal hdisk0 hdisk1
bootlist -m normal -o # kontrollieren
Nicht vergessen: Nach mirrorvg rootvg zwingend
bosboot auf beide Platten und bootlist anpassen –
sonst bootet das System beim Ausfall der ersten Platte nicht.
📁Filesystems (JFS2)
| df -g | Belegung in GB (-m MB, -k KB) |
| df -g /usr | Einzelnes Filesystem |
| lsfs | Alle Filesystems mit LV, Typ, Größe, Optionen |
| lsfs -q /data | Detailinfos inkl. Blockgröße, Inodes, ea-Format |
| mount / mount -a | Gemountete FS anzeigen / alle aus /etc/filesystems mounten |
| mount /data | Einzelnes FS mounten |
| umount /data | Aushängen (fuser -kxuc /data falls busy) |
| crfs -v jfs2 -g datavg -m /data -a size=20G -A yes | FS anlegen, LV wird automatisch erzeugt, Automount an |
| crfs -v jfs2 -d lv01 -m /data -A yes | FS auf bestehendem LV anlegen |
| chfs -a size=+10G /data | Online vergrößern (relativ – sicherste Variante) |
| chfs -a size=50G /data | Auf absolute Größe setzen |
| chfs -a size=-2G /data | JFS2 online verkleinern (Vorsicht, Backup!) |
| chfs -A yes /data | Automount beim Boot aktivieren |
| rmfs -r /data | FS inkl. LV und Mountpoint löschen |
| fsck -y /dev/lv01 | FS prüfen und reparieren (nur im umounted Zustand!) |
| defragfs -q /data | Fragmentierung prüfen (defragfs /data = defragmentieren) |
| mount -o rw,remount /data | Mountoption ohne Aushängen ändern |
| mount -o cio /data | Concurrent I/O (typisch für Oracle/DB2-Datenfiles) |
Platz & Analyse
| du -sm /var/* | sort -rn | head -20 | Größte Unterverzeichnisse in MB |
| find /var -xdev -size +100000c -ls | sort -k7 -rn | head | Große Dateien, ohne Mount-Grenzen zu überschreiten |
| df -i /var | Inode-Auslastung (100 % = „voll“ trotz freiem Platz) |
| fuser -cu /data | Wer benutzt das Filesystem (PID + User) |
| fuser -kxuc /data | Alle Zugriffe hart beenden, dann umount |
| lsof +D /data | Offene Dateien im Pfad (falls lsof installiert) |
Volles Filesystem, aber du zeigt wenig? Meist hält ein Prozess
eine gelöschte Datei offen – mit fuser -dV /data bzw.
lsof /data | grep deleted finden und den Prozess neu starten.
Snapshots (JFS2)
| snapshot -o snapfrom=/data /dev/snaplv | Externen Snapshot erzeugen |
| snapshot -q /data | Vorhandene Snapshots anzeigen |
| rollback -s /dev/snaplv /data | FS auf Snapshot zurückrollen |
| snapshot -d /dev/snaplv | Snapshot löschen |
📈Paging Space
| lsps -a | Alle Paging Spaces mit Größe und Auslastung |
| lsps -s | Summe aller Paging Spaces und Gesamtauslastung |
| mkps -a -n -s 8 -t lv datavg hdisk3 | Neuen PS anlegen (8 LPs, sofort aktiv, Autostart) |
| chps -s 4 paging00 | Um 4 LPs vergrößern (online möglich) |
| chps -d 2 paging00 | Um 2 LPs verkleinern (dynamisch, kann dauern) |
| chps -a y paging00 | Beim Boot automatisch aktivieren |
| swapon /dev/paging00 | Paging Space aktivieren |
| swapoff /dev/paging00 | Deaktivieren (muss vor rmps erfolgen) |
| rmps paging00 | Paging Space löschen |
| vmstat 2 5 | awk '{print $5,$6,$7,$8}' | Paging-Aktivität: fre, pi, po beobachten |
Faustregel: hd6 (Standard-PS in rootvg) nicht löschen. Auslastung
dauerhaft > 50 % oder anhaltendes pi/po > 0 deutet auf zu wenig RAM hin –
mehr Paging Space löst das Problem nicht, sondern verzögert es nur.
⚙Prozesse, Jobs & Subsysteme
| ps -ef | Alle Prozesse, Full-Format |
| ps aux | head -20 | Nach CPU sortierte Top-Prozesse |
| ps -ef | grep -v grep | grep sshd | Prozess gezielt suchen |
| ps gv | head -1; ps gv | egrep -v RSS | sort +6b -7 -n -r | head | Speicherhungrigste Prozesse |
| ps -eo pid,ppid,user,pcpu,vsz,args | Eigene Spaltenauswahl |
| ps -T <pid> | Prozessbaum ab PID |
| ps -mo THREAD -p <pid> | Threads eines Prozesses |
| kill -15 <pid> / kill -9 <pid> | Sauber beenden / hart abschießen |
| nice -n 10 cmd / renice -n 5 -p <pid> | Priorität beim Start / nachträglich setzen |
| svmon -P <pid> -O unit=MB | Detaillierte Speichernutzung eines Prozesses |
| procstack <pid> | Aktuellen Stack-Trace ausgeben (Hang-Analyse) |
| procfiles <pid> | Offene File Descriptors eines Prozesses |
| procwdx <pid> | Arbeitsverzeichnis eines Prozesses |
| nohup cmd > /tmp/log 2>&1 & | Job abgekoppelt im Hintergrund starten |
| jobs / fg %1 / bg %1 | Shell-Jobverwaltung |
SRC – System Resource Controller
| lssrc -a | Alle Subsysteme mit Status |
| lssrc -s sshd | Status eines Subsystems |
| lssrc -g tcpip | Alle Subsysteme einer Gruppe |
| startsrc -s sshd / stopsrc -s sshd | Subsystem starten / stoppen |
| refresh -s sshd | Konfiguration neu einlesen ohne Neustart |
| stopsrc -cs inetd | Hart stoppen (-c = cancel) |
| mkssys / rmssys | Eigenes Subsystem im SRC registrieren / entfernen |
Zeitgesteuerte Jobs
| crontab -l / -e | Eigene Crontab anzeigen / bearbeiten |
| crontab -l -u oracle | Crontab eines anderen Users lesen |
| /var/spool/cron/crontabs/ | Speicherort der Crontabs (Backup nicht vergessen) |
| at now + 2 hours | Einmaligen Job planen (mit Ctrl-D beenden) |
| atq / at -r <job> | Geplante at-Jobs listen / löschen |
| /var/adm/cron/log | Cron-Protokoll bei Problemen prüfen |
Cron-Falle: Cron startet mit minimalem Environment (kein .profile).
Immer absolute Pfade nutzen und benötigte Variablen (PATH, ORACLE_HOME,
LIBPATH) im Skript selbst setzen.
📊Performance-Analyse
Schnellüberblick
| topas | Interaktiver Gesamtüberblick (CPU, RAM, Disk, Netz, Top-Prozesse) |
| topas -L | LPAR-Ansicht (Shared Pool, Entitlement) |
| topas -D | Disk-Detailansicht |
| nmon | Interaktiv: c=CPU m=Memory d=Disk n=Netz t=Top |
| nmon -f -s 60 -c 1440 -m /tmp | 24 h aufzeichnen im Minutentakt (Auswertung mit nmon-Analyser) |
| vmstat 2 10 | 10 Messungen im 2-Sekunden-Takt |
| vmstat -Iwt 2 | Erweiterte Ausgabe mit Threads und Zeitstempel |
| vmstat -v | Wichtige VMM-Kennzahlen (pending disk I/O blocked, fsbufwaitcnt) |
| mpstat 2 5 | Auslastung pro logischer CPU |
| sar -u 2 5 / sar -P ALL 2 3 | CPU-Nutzung gesamt / je Prozessor |
CPU & LPAR
| lparstat 2 5 | Physische CPU-Nutzung, Entitlement, %entc, lbusy |
| lparstat -h 2 5 | Zusätzlich Hypervisor-Zeiten |
| mpstat -s 2 2 | SMT-Thread-Verteilung pro Core |
| curt -i trace.out -o curt.out | Detaillierte CPU-Analyse aus Trace |
%entc > 100: Die LPAR nutzt mehr als ihr Entitlement aus dem Shared Pool –
das ist normal, solange app (available physical processors) im Pool > 0 ist.
Memory
| svmon -G -O unit=GB | Globale Speicherübersicht in GB |
| svmon -P -O sortseg=pgsp -t 10 | Top-10-Prozesse nach Paging-Space-Nutzung |
| svmon -U -O unit=MB | Speicher nach User gruppiert |
| vmo -a | more | Alle VMM-Tunables anzeigen |
| vmo -o minperm%=3 -o maxperm%=90 -p | Tunable dauerhaft setzen (-p = perm) |
| vmo -L lru_file_repage | Beschreibung und Grenzwerte eines Tunables |
Disk-I/O
| iostat 2 5 | Disk-Auslastung, tps, KB/s pro hdisk |
| iostat -D 2 3 | Erweitert: avgserv, avgtime, avgwqsz (Queue-Wartezeit!) |
| iostat -a 2 2 | Auslastung pro Adapter |
| iostat -m 2 2 | Statistik je MPIO-Pfad |
| filemon -o /tmp/fmon.out -O all -T 2000000; trcstop | Detaillierte I/O-Analyse (kurz laufen lassen!) |
| fileplace -pv /pfad/datei | Physische Verteilung/Fragmentierung einer Datei |
| ioo -a | more | I/O-Tunables anzeigen |
| lvmstat -e -v datavg; lvmstat -v datavg | Statistik je LV aktivieren und auslesen |
Faustwerte: iostat -D → avgserv bei SAN-LUNs sollte
< 10 ms sein; avgwqsz deutlich > 0 heißt: queue_depth der hdisks
oder num_cmd_elems des FC-Adapters zu klein.
Netzwerk-Performance
| netstat -v ent0 | more | Adapter-Statistik, Errors, Speed, Flow Control |
| entstat -d ent0 | Detaillierte Ethernet-Statistik |
| netstat -in | Pakete/Fehler pro Interface |
| no -a | more | Netzwerk-Tunables anzeigen |
| no -p -o tcp_sendspace=262144 | Tunable dauerhaft setzen |
| netstat -m | mbuf-Nutzung, Failed-Allocations prüfen |
Perfstat / Reporting
| topasrec -L -s 300 -R 1 -o /tmp/topas.rec | Kontinuierliche Aufzeichnung im Binärformat |
| topasout -R detailed /etc/perf/daily/xxx | topas-Recording auswerten |
| /etc/perf/daily/ | Automatische topas-Aufzeichnungen (falls aktiv) |
🌐Netzwerk – TCP/IP
| ifconfig -a | Alle Interfaces mit IP, Netmask, Status |
| netstat -in | Kompakte Interface-Übersicht (numerisch) |
| lsdev -Cc if | Konfigurierte Interfaces (en0, et0, lo0 …) |
| lsattr -El en0 | IP-Attribute des Interface |
| lsattr -El ent0 | Adapter-Attribute (media_speed, jumbo_frames, chksum_offload) |
| mktcpip -h aixsrv -a 10.0.0.10 -m 255.255.255.0 -i en0 -g 10.0.0.1 -A no | Grundkonfiguration in einem Schritt |
| chdev -l en0 -a netaddr=10.0.0.10 -a netmask=255.255.255.0 -a state=up | IP dauerhaft ändern |
| chdev -l en0 -a mtu=9000 | MTU setzen (Jumbo Frames – Switch muss mitspielen) |
| ifconfig en0 alias 10.0.0.11 netmask 255.255.255.0 | Zweite IP (Alias) temporär hinzufügen |
| chdev -l en0 -a alias4=10.0.0.11,255.255.255.0 | Alias dauerhaft (bootpersistent) |
| ifconfig en0 down / up / detach | Interface deaktivieren / aktivieren / komplett lösen |
| netstat -rn | Routing-Tabelle (numerisch) |
| route add default 10.0.0.1 | Default-Route temporär setzen |
| chdev -l inet0 -a route=net,-hopcount,0,,0,10.0.0.1 | Default-Route dauerhaft in ODM |
| route add -net 192.168.5.0 -netmask 255.255.255.0 10.0.0.254 | Statische Route hinzufügen |
| netstat -an | grep LISTEN | Lauschende Ports |
| netstat -Aan | grep 22 | Verbindungen zu Port 22 inkl. PCB-Adresse |
| rmsock <pcb> tcpcb | Prozess zu einem Socket/Port ermitteln |
| arp -a / arp -d 10.0.0.5 | ARP-Cache anzeigen / Eintrag löschen |
| ping -c 3 host / traceroute host | Erreichbarkeit / Pfad prüfen |
| iptrace -a -i en0 /tmp/ip.trace | Paketmitschnitt starten – Stop mit stopsrc -s iptrace |
| ipreport /tmp/ip.trace > /tmp/ip.txt | Mitschnitt lesbar aufbereiten |
| tcpdump -i en0 -s 0 -w /tmp/dump.pcap | Mitschnitt für Wireshark (falls installiert) |
EtherChannel / Link Aggregation
| lsdev -Cc adapter | grep ent | Physische und virtuelle Ethernet-Adapter |
| mkdev -c adapter -s pseudo -t ibm_ech -a adapter_names=ent0,ent1 -a mode=8023ad | EtherChannel (LACP) anlegen |
| lsattr -El ent4 | EtherChannel-Attribute (mode, backup_adapter, netaddr) |
| entstat -d ent4 | grep -i active | Aktiven Kanal / Failover-Status prüfen |
| /usr/lib/methods/ethchan_config -f ent4 | Manuelles Failover auf Backup-Adapter erzwingen |
Wichtige Dateien: /etc/hosts, /etc/resolv.conf,
/etc/netsvc.conf (Reihenfolge Namensauflösung),
/etc/services, /etc/inetd.conf, /etc/rc.tcpip.
📡NFS, Namensauflösung & Remote-Zugriff
NFS – Server
| lssrc -g nfs | Status aller NFS-Subsysteme |
| mknfsexp -d /export/data -t rw -B | Export anlegen, sofort und dauerhaft aktiv |
| exportfs -a / exportfs -u /export/data | Alle Exporte aktivieren / einen zurücknehmen |
| exportfs -v | Aktive Exporte mit Optionen anzeigen |
| rmnfsexp -d /export/data -B | Export entfernen |
| showmount -a | Welche Clients haben gemountet |
NFS – Client
| showmount -e nfsserver | Verfügbare Exporte eines Servers anzeigen |
| mount nfssrv:/export/data /mnt | Temporär mounten |
| mknfsmnt -f /mnt -d /export/data -h nfssrv -A -t rw -w bg | Dauerhaften NFS-Mount anlegen (Autostart) |
| mount -o vers=3,hard,intr,bg nfssrv:/data /mnt | Mount mit typischen Optionen |
| nfsstat -c / -s | Client-/Server-Statistik (Retransmits prüfen) |
| rpcinfo -p nfssrv | RPC-Dienste des Servers prüfen (portmapper, nfs, mountd) |
DNS & Zeit
| host aixsrv / nslookup aixsrv | Namensauflösung testen |
| cat /etc/resolv.conf | Nameserver und Suchdomains |
| cat /etc/netsvc.conf | Reihenfolge: hosts = local, bind |
| lssrc -s xntpd; ntpq -p | NTP-Status und Peers |
| ntpdate -d timeserver | Zeitabgleich testen (ohne zu setzen) |
| chtz / echo $TZ | Zeitzone prüfen/ändern (/etc/environment) |
SSH & Dateitransfer
| lssrc -s sshd; stopsrc -s sshd; startsrc -s sshd | SSH-Daemon verwalten |
| ssh-keygen -t rsa -b 4096 | Schlüsselpaar erzeugen |
| cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys | Public Key hinterlegen (Rechte 600 / .ssh 700!) |
| scp -p datei user@host:/pfad/ | Datei kopieren mit Zeitstempel |
| rsync -avz --progress /src/ user@host:/dst/ | Inkrementell synchronisieren (falls installiert) |
| sftp user@host | Interaktiver, verschlüsselter Transfer |
👤User, Gruppen & Berechtigungen
| lsuser -a id home shell ALL | Alle User mit ausgewählten Attributen |
| lsuser -f rene | Alle Attribute eines Users im Klartext |
| mkuser -a id=5001 pgrp=staff home=/home/rene shell=/usr/bin/ksh rene | User anlegen |
| chuser groups=staff,dba rene | Gruppenmitgliedschaften setzen |
| chuser login=false account_locked=true rene | Account sperren |
| chuser fsize=-1 nofiles=10240 oracle | Limits setzen (unbegrenzte Dateigröße, mehr FDs) |
| rmuser -p rene | User samt Security-Einträgen löschen (Home bleibt) |
| passwd rene / pwdadm rene | Passwort setzen (pwdadm ohne Kenntnis des alten) |
| pwdadm -c rene | Flag ADMCHG löschen (kein Zwangswechsel beim Login) |
| chuser maxage=13 minage=1 minlen=8 histsize=8 rene | Passwort-Policy je User |
| lsgroup ALL / lsgroup -f dba | Gruppen anzeigen |
| mkgroup -a id=2001 users=rene,oracle dba | Gruppe anlegen mit Mitgliedern |
| chgroup users=rene,tom dba / rmgroup dba | Mitglieder ändern / Gruppe löschen |
| id / groups / whoami | Eigene IDs und Gruppen |
| su - oracle | Benutzerwechsel mit vollem Environment |
| usrck -y ALL; grpck -y ALL; pwdck -y ALL | Konsistenzprüfung der Security-Dateien |
| chsec -f /etc/security/login.cfg -s usw -a logindelay=5 | Systemweite Login-Einstellungen ändern |
Rechte, ACLs & RBAC
| chmod 750 datei / chmod g+s dir | Rechte setzen / SetGID auf Verzeichnis |
| chown user:group datei | Eigentümer und Gruppe ändern (-R rekursiv) |
| umask 022 | Standardrechte für neue Dateien |
| aclget datei / acledit datei | AIXC-ACL anzeigen / bearbeiten |
| aclput -i acl.txt datei | ACL aus Datei setzen |
| setsecattr / lssecattr -c ALL | RBAC: Kommando-Berechtigungen |
| lsrole ALL; mkrole; chuser roles=isso rene | RBAC-Rollen verwalten und zuweisen |
| swrole isso | In eine Rolle wechseln |
| visudo / sudo -l | sudo-Konfiguration (AIX Toolbox), eigene Rechte prüfen |
Anmeldeüberwachung
| who / w / users | Aktuell angemeldete User |
| last | head -20 | Letzte Anmeldungen |
| lastlogin / lsuser -a time_last_login ALL | Letzter Login je User |
| who /etc/security/failedlogin | Fehlgeschlagene Anmeldeversuche |
| >/etc/security/failedlogin | Failedlogin-Datei leeren (wächst sonst unbegrenzt) |
| audit start / audit query / audit shutdown | AIX-Audit-Subsystem steuern |
Security-Dateien: /etc/passwd, /etc/group,
/etc/security/passwd, /etc/security/user,
/etc/security/limits, /etc/security/login.cfg.
Änderungen möglichst über die ch*-Kommandos, nicht per Editor.
🚨Fehleranalyse: errpt, Logs & Dumps
| errpt | Fehlerübersicht, neueste zuerst |
| errpt -a | more | Detaillierte Einträge mit Beschreibung und Empfehlung |
| errpt -aj <IDENTIFIER> | Details zu einem konkreten Fehlereintrag |
| errpt -s 0818000026 | Ab Zeitpunkt MMTTHHMMJJ (hier: 18.08. 00:00, 2026) |
| errpt -d H | Nur Hardware-Fehler (-d S = Software) |
| errpt -T PERM | Nur permanente Fehler (PERM/TEMP/PEND/PERF/INFO/UNKN) |
| errpt -N hdisk3 | Nur Einträge einer Ressource |
| errclear 30 | Einträge älter als 30 Tage löschen (errclear 0 = alle) |
| errlogger "Wartung Change 12345 abgeschlossen" | Eigene Meldung ins Errorlog schreiben |
| /usr/lib/errdemon -l | Konfiguration des Error-Daemon (Logdatei, Größe) |
| /usr/lib/errdemon -s 4194304 | Errorlog auf 4 MB vergrößern |
Erste Schritte bei Störungen: errpt | head -30 →
errpt -a für die auffälligen IDs → alog -o -t boot →
lspath/lsvg -o/df -g → topas.
Logs
| alog -o -t boot | Boot-Log lesen (Fehler beim Systemstart) |
| alog -o -t console | Console-Log |
| alog -L | Alle verfügbaren alog-Typen |
| tail -50 /var/adm/ras/errlog.bak | Gesicherte Errorlog-Kopie |
| cat /var/adm/ras/bootlog | Rohes Boot-Log |
| tail -f /var/log/syslog | Syslog live (Pfad je /etc/syslog.conf) |
| refresh -s syslogd | syslog.conf neu einlesen |
| /smit.log /smit.script | Protokoll aller SMIT-Aktionen (im Home des Users) |
| /var/adm/ras/conslog | Konsolenausgaben |
Diagnose & Dumps
| diag | Interaktive Hardware-Diagnose (Menu) |
| diag -d hdisk1 -c | Diagnose eines Devices im Batch-Modus |
| sysdumpdev -l | Dump-Konfiguration (primary/secondary Device, Dumpdir) |
| sysdumpdev -e | Geschätzte Dumpgröße – muss ins Dump-LV passen |
| sysdumpdev -L | Info zum letzten Systemdump |
| sysdumpdev -P -p /dev/lg_dumplv | Primary Dump Device dauerhaft setzen |
| sysdumpstart -p | Dump manuell erzeugen (System startet neu!) |
| snap -gc | Support-Datensammlung erzeugen → /tmp/ibmsupt/snap.pax.Z |
| snap -r | Alte snap-Daten löschen (vorher aufräumen!) |
| snap -a | Alles sammeln (groß, benötigt viel Platz in /tmp) |
| trace -a -o /tmp/trc; trcstop; trcrpt /tmp/trc | Systemtrace aufzeichnen und auswerten |
| dbx -a <pid> | An laufenden Prozess anhängen (Analyse von Hängern) |
Vor dem IBM-Call: snap -gc ausführen,
oslevel -s, errpt -a-Auszug und die betroffene Ressource bereithalten.
/tmp braucht dafür mehrere hundert MB frei.
💾Backup & Restore
mksysb – rootvg-Systemsicherung
| mksysb -i /backup/mksysb_$(hostname)_$(date +%F) | Bootfähiges Systemimage in Datei (-i = image.data neu) |
| mksysb -ieX /dev/rmt0 | Auf Band, e = Exclude-Liste beachten, X = /tmp erweitern |
| /etc/exclude.rootvg | Auszuschließende Pfade (regex, z. B. ^./tmp/) |
| lsmksysb -f /backup/mksysb.img | Inhalt eines mksysb-Images prüfen |
| restorevgfiles -f /backup/mksysb.img ./etc/hosts | Einzelne Datei aus mksysb zurückholen |
| mkszfile | Erzeugt /image.data (LVM-Struktur für Restore) |
savevg – Daten-VGs
| savevg -if /backup/datavg.img datavg | Komplette VG sichern |
| savevg -ief /backup/datavg.img datavg | Mit Exclude-Datei /etc/exclude.datavg |
| restvg -f /backup/datavg.img hdisk5 | VG auf Zielplatte wiederherstellen |
| restvg -r -f /backup/datavg.img | Nur LVM-Struktur anlegen, keine Daten |
| listvgbackup -f /backup/datavg.img | Inhalt eines savevg-Images anzeigen |
Dateien & Verzeichnisse
| tar -cvf /backup/etc.tar /etc | tar-Archiv erzeugen (-xvf entpacken, -tvf listen) |
| find /data -print | backup -ivqf /dev/rmt0 | Backup by name |
| backup -0 -uf /dev/rmt0 /data | Backup by inode, Level 0 (Vollsicherung) |
| restore -xvqf /dev/rmt0 ./data/datei | Selektiver Restore |
| restore -Tvf /backup/img | Inhaltsverzeichnis eines Archivs |
| find /data | cpio -ovC512 > /backup/data.cpio | cpio-Sicherung |
| cpio -idmvC512 < /backup/data.cpio | cpio-Restore mit Verzeichnisstruktur |
| pax -wvf /backup/a.pax /data | pax-Archiv (Standard bei AIX-Fixes) |
| dd if=/dev/lv01 of=/backup/lv01.dd bs=1m | Raw-Kopie eines LV |
Bandlaufwerke
| tctl -f /dev/rmt0 rewind | Band zurückspulen |
| tctl -f /dev/rmt0 status | Status/Position des Bands |
| tctl -f /dev/rmt0.1 fsf 1 | Ein Filemark vorspulen (.1 = no rewind) |
| tctl -f /dev/rmt0 offline | Band auswerfen |
Backup-Routine: Wöchentlich mksysb auf NIM/NFS,
täglich savevg der Daten-VGs, vor jedem Change zusätzlich
alt_disk_copy von rootvg als schneller Rollback. Restore mindestens einmal
jährlich testen – ein ungetestetes Backup ist kein Backup.
🖥NIM – Network Installation Manager
Auf dem NIM-Master
| lsnim | Alle NIM-Objekte (Master, Clients, Ressourcen) |
| lsnim -t standalone | Alle Client-Maschinen |
| lsnim -l aixsrv01 | Alle Attribute eines Objekts inkl. Cstate |
| lsnim -c resources | Alle Ressourcen (lpp_source, spot, mksysb, bosinst_data) |
nim -o define -t standalone -a platform=chrp -a netboot_kernel=64 \ -a if1="netz aixsrv01 0" aixsrv01 | Client definieren |
| nim -o remove aixsrv01 | Objekt entfernen |
| nim -o define -t lpp_source -a source=/dev/cd0 -a location=/export/lpp/aix73 lpp_aix73 | lpp_source anlegen |
| nim -o define -t spot -a source=lpp_aix73 -a location=/export/spot spot_aix73 | SPOT (Boot-Image) erzeugen |
| nim -o check spot_aix73 | Ressource prüfen und Boot-Images neu bauen |
Installation & Wartung
| nim -o bos_inst -a source=rte -a lpp_source=lpp_aix73 -a spot=spot_aix73 aixsrv01 | Netzinstallation vorbereiten |
| nim -o bos_inst -a source=mksysb -a mksysb=mksysb_srv01 -a spot=spot_aix73 aixsrv01 | Restore aus mksysb über Netz |
| nim -o cust -a lpp_source=lpp_aix73 -a fixes=update_all aixsrv01 | TL/SP-Update über NIM verteilen |
| nim -o cust -a lpp_source=lpp_aix73 -a filesets="openssh.base" aixsrv01 | Einzelne Filesets installieren |
| nim -o define -t mksysb -a server=master -a location=/export/mksysb/srv01 mksysb_srv01 | mksysb als NIM-Ressource registrieren |
| nim -o reset -F aixsrv01; nim -Fo deallocate -a subclass=all aixsrv01 | Hängenden Client zurücksetzen und Ressourcen freigeben |
| nim -o showlog -a log_type=boot aixsrv01 | Boot-/Installations-Log des Clients |
| nim -o lslpp aixsrv01 | Fileset-Stand eines Clients remote abfragen |
| nimadm -c aixsrv01 -s spot_aix73 -l lpp_aix73 -d hdisk1 -Y | Migration per alt_disk mit minimaler Downtime |
Auf dem NIM-Client
| niminit -a name=aixsrv01 -a master=nimmaster -a pif_name=en0 | Client beim Master registrieren |
| lsnim -l master | Master-Definition auf dem Client prüfen |
| nimclient -l -L | Zugewiesene Ressourcen anzeigen |
| nimclient -o cust -a lpp_source=lpp_aix73 -a fixes=update_all | Update vom Client aus anfordern |
Cstate/Mstate: Vor jeder Aktion lsnim -l client prüfen – steht
Cstate nicht auf „ready for a NIM operation“, zuerst
nim -o reset -F und deallocate ausführen.
🔗PowerHA / SystemMirror (Basics)
| clmgr query cluster | Cluster-Konfiguration anzeigen (modernes Interface) |
| clmgr query node / clmgr query resource_group | Knoten bzw. Resource Groups auflisten |
| clmgr -v query rg RG_DB | Details einer Resource Group |
| clRGinfo -v | RG-Status je Knoten (ONLINE/OFFLINE) – wichtigster Check |
| lssrc -ls clstrmgrES | Cluster-Manager-Status (ST_STABLE ist gut) |
| clstat -o | Cluster-Übersicht (benötigt clinfoES) |
| cldump | Snapshot des aktuellen Cluster-Zustands |
| cltopinfo | Topologie: Knoten, Netze, Interfaces, Repository Disk |
| clmgr move rg RG_DB node=node2 | Resource Group auf anderen Knoten schwenken |
| clmgr online rg RG_DB / clmgr offline rg RG_DB | RG starten / stoppen |
| clmgr start node node1 / clmgr stop node node1 | Cluster-Services eines Knotens starten/stoppen |
| clmgr stop node node1 WHEN=now MANAGE=unmanage | Cluster-Services stoppen, Ressourcen online lassen |
| clmgr verify cluster | Verify & Synchronize (immer nach Änderungen) |
| clmgr add snapshot mysnap | Konfigurations-Snapshot sichern |
| lscluster -m / -i / -d | CAA: Knoten / Interfaces / Repository-Disk |
| smitty sysmirror | Menügeführte PowerHA-Administration |
| /var/hacmp/log/hacmp.out | Wichtigstes Log für Event-/Script-Fehler |
| /var/hacmp/adm/cluster.log | Zusammenfassung der Cluster-Events |
Regel: In einem Cluster niemals VGs/Filesystems direkt mit
varyonvg/mount anfassen – immer über PowerHA (C-SPOC bzw.
clmgr), sonst droht Datenkorruption durch Doppelzugriff.
🧮Virtualisierung: LPAR, DLPAR, WPAR & VIOS
DLPAR & Ressourcen
| lparstat -i | grep -E "Memory|Processor|Capacity" | Zugewiesene Ressourcen und Grenzwerte (min/desired/max) |
| cfgmgr | Nach DLPAR-Zuweisung neuer Adapter erforderlich |
| rmcstat / lssrc -a | grep rsct | RMC-Status prüfen – Voraussetzung für DLPAR von der HMC |
| /usr/sbin/rsct/bin/rmcctrl -z; rmcctrl -A; rmcctrl -p | RMC neu starten (häufigste DLPAR-Störung) |
| lsrsrc IBM.ManagementServer | Verbundene HMCs anzeigen |
| chdev -l mem0 -a ... | Memory-DLPAR erfolgt von der HMC, nicht aus AIX |
WPAR – Workload Partitions
| lswpar / lswpar -L wpar1 | WPARs auflisten / Details |
| mkwpar -n wpar1 -N address=10.0.0.20 interface=en0 | System-WPAR anlegen |
| startwpar wpar1 / stopwpar wpar1 | WPAR starten / stoppen |
| clogin wpar1 | In die WPAR-Konsole wechseln |
| rmwpar -F wpar1 | WPAR entfernen |
| chwpar -R active=yes -R CPU=10%-30%,50% wpar1 | Ressourcenlimits setzen |
VIOS (padmin-Shell)
| ioslevel | VIOS-Version anzeigen |
| lsmap -all | Alle vSCSI-Mappings (vhost → hdisk → Client) |
| lsmap -all -npiv | NPIV-Mappings (vfchost → fcs) |
| lsdev -virtual | Virtuelle Devices des VIOS |
| mkvdev -vdev hdisk10 -vadapter vhost2 -dev vtd_srv01 | Platte an Client-LPAR mappen |
| rmvdev -vtd vtd_srv01 | Mapping entfernen |
| vfcmap -vadapter vfchost0 -fcp fcs1 | NPIV-Adapter an physischen FC-Port binden |
| lsnports | NPIV-fähige Ports und freie Kapazität |
| viosbr -backup -file /home/padmin/viosbr_$(date +%F) | VIOS-Konfiguration sichern |
| updateios -commit; updateios -accept -install -dev /mnt | VIOS-Update einspielen |
| oem_setup_env | Aus padmin in die root-Shell wechseln (nur wenn nötig) |
Dual-VIOS-Regel: Immer nur einen VIOS warten. Vorher auf dem Client
lspath prüfen – alle Pfade über den zweiten VIOS müssen Enabled sein.
📄Wichtige Dateien & Verzeichnisse
| /etc/filesystems | Mount-Definitionen (statt fstab) |
| /etc/inittab | Startreihenfolge, Autostart-Einträge |
| /etc/rc.tcpip | Start der Netzwerkdienste |
| /etc/environment | Systemweite Umgebungsvariablen (TZ, LANG, PATH) |
| /etc/profile, /etc/security/.profile | Login-Umgebung für alle User |
| /etc/motd | Begrüßungstext nach dem Login |
| /etc/hosts, /etc/resolv.conf, /etc/netsvc.conf | Namensauflösung |
| /etc/security/limits | Ressourcen-Limits je User (fsize, nofiles, data) |
| /etc/security/user | User-Attribute und Passwort-Policies |
| /etc/exclude.rootvg | Ausschlussliste für mksysb |
| /var/adm/ras/errlog | Binäres Errorlog (nur über errpt lesen) |
| /var/adm/ras/bootlog, /var/adm/ras/conslog | Boot- und Konsolen-Log |
| /var/spool/cron/crontabs/ | Crontabs aller User |
| /var/hacmp/log/hacmp.out | PowerHA-Eventlog |
| /usr/lpp/<produkt> | Installationsverzeichnis von Filesets |
| /dev/hdiskX, /dev/rhdiskX | Block- bzw. Raw-Device einer Platte |
| ~/smit.log, ~/smit.script | SMIT-Protokoll und generierte Kommandos |
Standard-LVs in rootvg
| hd5 | Boot Logical Volume (BLV) |
| hd6 | Primärer Paging Space |
| hd8 | JFS2-Log der rootvg |
| hd4 / hd2 / hd9var / hd3 / hd1 / hd10opt / hd11admin | / · /usr · /var · /tmp · /home · /opt · /admin |
| lg_dumplv | Dump Logical Volume |
🔧SMIT, Shell-Tipps & Praxis-Workflows
SMIT
| smitty | ASCII-Menüoberfläche (empfohlen gegenüber smit) |
| smitty lvm / fs / tcpip / user / installp | Direkt in den passenden Fastpath springen |
| smitty mksysb / chfs / mkvg / update_all | Häufig genutzte Fastpaths |
| F6 im Dialog | Zeigt das Kommando, das SMIT ausführen würde – ideal zum Lernen |
| F3 / F10 / F4 | Zurück / Beenden / Auswahlliste |
| grep -v "^#" ~/smit.script | SMIT-Aktionen als Kommandos nachlesen und skripten |
Shell & Textwerkzeuge
| set -o vi | vi-Editiermodus in der ksh (Esc + k für History) |
| which cmd / whence -v cmd / type cmd | Pfad und Typ eines Kommandos |
| man -k begriff | Manpages nach Stichwort durchsuchen |
| grep -n -i "muster" datei | Suche mit Zeilennummern, ohne Groß-/Kleinschreibung |
| sed -e 's/alt/neu/g' datei > neu.txt | Textersetzung |
| awk '{print $1, $5}' datei | Spalten extrahieren |
| for i in $(lsvg -o); do lsvg -l $i; done | Schleife über alle aktiven VGs |
| nohup script.sh > /tmp/out 2>&1 & | Langlaufende Skripte abgekoppelt starten |
| script /tmp/session.log | Komplette Terminalsitzung protokollieren (für Change-Nachweis) |
| tee -a /tmp/log | Ausgabe gleichzeitig anzeigen und mitschreiben |
| compress / uncompress / gzip -9 | Komprimieren (AIX-Fixes nutzen meist .Z) |
Workflow: Neues Filesystem auf neuer LUN
cfgmgr -l fcs0 && cfgmgr -l fcs1 # LUN einlesen
lspv | grep None # neue Platte finden -> hdisk7
lspath -l hdisk7 # alle Pfade Enabled?
chdev -l hdisk7 -a algorithm=shortest_queue -a reserve_policy=no_reserve \
-a queue_depth=32
extendvg datavg hdisk7 # oder: mkvg -S -y newvg -s 128 hdisk7
crfs -v jfs2 -g datavg -m /data2 -a size=100G -A yes
mount /data2 && df -g /data2
Workflow: Filesystem ist voll
df -g # betroffenes FS
du -sm /var/* | sort -rn | head # Verursacher finden
fuser -dV /var # geloeschte, offene Dateien?
lsvg datavg | grep "FREE PPs" # ist Platz in der VG?
chfs -a size=+5G /var # online erweitern
df -g /var
Workflow: Change-Vorbereitung (Standard)
oslevel -s > /tmp/pre_change.txt
lppchk -v >> /tmp/pre_change.txt # muss leer sein
errpt | head -30 >> /tmp/pre_change.txt
lsvg -o; lsvg rootvg | grep STALE # STALE PPs = 0
df -g; lsps -a
mksysb -i /backup/mksysb_pre_change # oder alt_disk_copy -B -d hdisk1
bootlist -m normal -o # Bootreihenfolge dokumentieren
Merksatz: Auf AIX ist fast alles über die ODM abgebildet.
Temporäre Änderungen (ifconfig, mount) sind nach dem Reboot weg –
dauerhaft wird es erst über chdev, chfs, mktcpip oder SMIT.