Weil wir es gerade von /proc und /sys hatten... (3)

Es ist mal wieder Zeit für doofe Ideen mit dem /proc-Filesystem. Heute wollen wir uns eine Fragestellung widmen, die den einen oder anderen bestimmt schonmal beschäftigt hat: Es sei ein Programm gegeben und wir wollen “Pi mal Daumen” herausfinden, ob das Programm eher I/O- oder eher CPU-beschränkt ist. Jetzt kann man das Programm natürlich einfach starten und sich anschauen, wie sich der Server verhält, aber gehen wir mal davon aus, daß uns diese Option nicht wirklich offen steht, z. [Mehr]

Weil wir es gerade von /proc und /sys hatten... (2)

Was könnte man zum Thema “/proc” und “/sys” noch so erzählen… ah, ich weiß! Kennt ihr so Dreckstools, die sich einfach weigern, von STDIN zu lesen? Egal, ob man sie mit einem - als letztem Parameter oder ganz ohne Eingabefile aufruft, sie können es einfach nicht? Tja, dank /proc entlockt uns sowas nur ein müdes Lächeln: command | dreckstool /proc/self/fd/0 Und das ganze geht natürlich nicht nur mit FD 0 aka STDIN, sondern auch mit anderen FDs. [Mehr]

Weil wir es gerade von /proc und /sys hatten... (1)

Zum Thema /proc und /sys sollte man eigentlich noch viel mehr schreiben - gesagt, getan. Fangen wir mal mit /sys an. Aufgabe Nummer eins, die ich jedes Mal wieder verplane: Man hat gerade irgendwo ne LUN rausgeschnitzt, ein FC-Kabel angesteckt oder sonstwas, aber das OS kriegt nix davon mit. Wohin muß man also treten, damit man den saftigen neuen Speicherplatz sieht? echo "- - - " > /sys/class/scsi_host/hostX/scan Oder wenn man echt mutig ist: [Mehr]

Ausgabe eines laufenden Prozesses umleiten

Ich hatte ja neulich schon einmal das “/proc”-Filesystem erwähnt, und natürlich kann man in Linux damit noch andere Sachen machen - z.B. STDOUT oder STDERR eines laufenden Prozesses umleiten (ein bißchen Hilfe braucht man allerdings dabei schon). Schauen wir uns mal ein Beispiel an: Der folgende Prozess schreibt STDERR in das Terminal, indem wir ihn gestartet haben, und STDOUT nach /tmp/foo: nc -l 8080 > /tmp/foo & [1] 4767 Hilfreicherweise zeigt mir die Shell auch gleich die Prozess-ID an, so daß es ein leichtes ist, herauszufinden, wohin STDOUT (FD 1) und STDERR (FD 2) zeigen: [Mehr]

Fortschritt

Von eins bis zehn zählen, in ksh97, z.B. unter AIX 4.2.1, Stand Mitte 1997:

typeset -i i
i=1
while [ i -lt 11 ]; do
      i=$((i+1))
      echo $i
done

Und in bash 3.2.17 (z.B. auch auf dem Mac ab OSX 10.5.2), Stand mehr oder weniger „heute”:

for((i=1; i<11; i++)); do
     echo $i 
done

Wie die Zeit vergeht…