AIX Tips und Tricks

which_fileset

Mit AIX 4.3.3 wird ein neues Tool geliefert, daß Auskunft darüber geben kann, in welchem lpp eine bestimmte Datei / ein bestimmtes Programm enthalten ist. Es besteht aus zwei Teilen, dem Abfrageprogramm und einer kleinen Datenbank. Das Abfrageprogramm heißt /usr/sbin/which_fileset und wird mit bos.rte.install installiert. Die Datenbank befindet sich in bos.content_list. Letztere wird hin und wieder mit neuen MLs aktualisiert. Mit ML10 war es fix-level 50.

Einige bekannte Programme, die nicht standardmäßig installiert werden:

vmstat, iostat - bos.acct

li - bos.compat.cmds (Zeigt Dateibaum an)

di - bos.compat.cmds (Zeigt Dateibaum an)

<Top>

LED setzen

# /usr/lib/methods/showled <LED Code in Hex>

# /usr/lib/methods/showled     (ohne Hexcode wird LED zurückgesetzt)

Dies kann man benutzen um die LED Anzeige zu animieren:

# while true; do

> /usr/lib/methods/showled 0x888; sleep 1; /usr/lib/methods/showled ; sleep 1

> done

<Top>

Einzelne config methods

Cfg methods werden vom cfgmgr zum konfigurieren einzelner devices genutzt. Z.B. Maus und Tastatur

# /usr/lib/methods/cfg*

<Top>

Streß-Tests für RS6000

Die im folgenden beschriebenen Befehle sollten nicht auf produktiven Systemen eingesetzt werden. Sie können aber helfen, Lastzustände zu simulieren und Ausnahmezustände zu bewerten bzw. 'behandeln'.

Künstliche Speicherverknappung

# wc /dev/kmem

Bei älteren AIX Versionen konnte dieser Befehl dazu führen, daß das System einfach stehen blieb, wenn der Speicher vollständig allokiert war. Ab AIX 4.3.3 gelingt das nicht mehr, der Speicher geht zwar nahe Null und die swap-spaces füllen sich aber der Rechner 'lebt' weiter (wenn nicht z.B. der swap-space unrealistisch klein ist). Manchmal hängt er eine Weile, fängt sich dann aber wieder. Noch eine Bemerkung zum swapspace: seit 4.3.2 ist die Allokierung des swapspace geändert. Es ist nicht mehr nötig, von vorneherein das ein- bis eineinhalbfache an realem RAM als paging space zur Verfügung zu stellen. Alle alten Formeln sind Makulatur. Bei einer Speicherausstattung von mehreren Gigabyte realem RAM existiert heute nicht mehr die Notwendigkeit dafür. AIX nutzt den paging space heute erst, wenn der RAM vollständig allokiert ist.

Top

Künstlich ausgelöster system crash

#echo xyz > /dev/kmem

Funktioniert nur bis AIX 4. Achtung, der durch diesen Befehl ausgelöste crash sieht so echt aus, daß man seine Folgen (Eintrag im errpt und dump-file) am besten löscht, um unnötige Verwirrung bei den nicht in den Test eingeweihten Kollegen zu vermeiden.

Top

Web-Browser für FTP Transfer nutzen

In der URL Zeile kann direkt die FTP Adresse eingegeben werden:

ftp://username:password@targethost

bzw. wenn Abweichungen vom (Standard) FTP existieren oder direkt ein (tieferer) Pfad angesprungen werden soll:

ftp://username:password@targethost:port/path;type=[a,d,i]

(a= ascii; d=directory; i=binary (default))

Daß Paßwort kann man in der URL auch weglassen. Der FTP Server fragt einen dann danach.

Top

Wann läuft die Uhr für AIX ab?

Das sog. Jahr 2038 Problem existiert bis AIX 4.3.3. Ab AIX 5L wurde auf einen 64-Bit Wert umgestellt, der das Problem nicht mehr kennt.

Der Befehl

$ perl -le 'print scalar localtime(0xffffffff >> 1)'

zeigt an, wann der interne Zähler für Sekunden, beginnend bei Epoch (1. Januar 1970), in AIX (bis 4.3.3) abläuft.

Mon Jan 18 20:14:07 2038

Top

Wie konvertiere ich Datumangaben in lesbare Daten

# perl -le 'print scalar localtime 1056033148'

Thu Jun 19 16:32:28 2003

#

Top

Wie setze ich ein aktuelles Datum auf einem Server mit leerer CMOS Batterie?

Z.B. mit NTP. Voraussetzung ist, daß der Zeitsprung nicht zu groß ist. Ein fixes Startdatum verbietet sich daher, es sollte nicht zu weit zurückliegen. Beim Start über Skript z.B. mit dem (in AIX) undokumentiertem Kommando aus dem XNTPD fileset sntp:

# cat /etc/rc.local

#!/bin/ksh

sntp ptbtime1.ptb.de

Top

Wie bekomme ich eine vollständige Datumsangabe der "uptime" ?

#!/usr/bin/ksh

u=$(uptime | cut -f7 -d' ')

md=$(who -b | cut -f14,15 -d' ')

(( z = $u / 365 ))

if ((( $u - $(( 365 * $z ))) > $(date +%j)))

then

print "Last Server boot on $md $(($(date +%Y) - $z - 1))"

else

print "Last Server boot on $md $(($(date +%Y) - $z))"

fi

exit 0

Wenn auf dem Server bos.acct installiert ist (mit /usr/sbin/acct/fwtmp), dann kann man auch /etc/utmp direkt auslesen:

/usr/lib/acct/fwtmp < /etc/utmp | sed -n 1p |cut -f71-73,76 -d" "

Die mittels cut ausgeschnittenen Felder müssen ggf. angepaßt werden. Das Beispiel stammt aus einer 5.2 LPAR.

Top

Wie kann ich unter AIX die Maus wiederbeleben?

# kill -9 dtsession

# rmdev -ld mouse0

# cfgmgr-vl mouse

Top

Wie kann ich eine Festplatte überschreiben?

# (while cat /unix /unix /unix /unix ; do : ; done) | dd of=/dev/rhdisk10 bs=204800

Top

E-Mail uu-encoded versenden

uuencode <file_to_send> <name_of_attach_in_mail> | mail -s "subject

Top

Reply-To-Field für mail setzen

mail -r yourusername@yourdomain.com

Kann z.B. in der .kshrc als alias gesetzt werden:

alias mail='mail -r yourusername@yourdomain.com'

Top

Fehlernummern verschiedener Systemprogramme

In /usr/include/errno.h finden sich zu den Fehlernummern verschiedener Systemprogramme ein (äußerst) kurzer Text, der aber immer noch besser ist, als nur die Fehlernummer.

Top