hallo leute,
ein kleines beispiel aus der community, wie man unserer gemeinde mit
ganz wenig hilfe zu grossen schritten verhelfen kann/könnte:
ich hab schon des öfteren (mehr oder weniger unabsichtlich) bemerkt dass
einige von euch ein programm suchten, mit dem sie die user liste von
stinky überwachen können. das mag verschiedene gründe haben, wie z.b.
dass man auf einen kollegen wartet um ihn danach anzutalken.
tja, aus der not entsprang ein nützliches utility. 'watch' hiess das
ding, allerdings gab's das nur für linux.
zuerst hab ich das teil kurzerhand unter linux ausprobiert. war wirklich
genial. ich konnte im abstand von z.b. einer sekunde immer wieder das
gleiche programm starten. startet man so z.b. den 'w' oder 'who' lässt
sich überprüfen wer gerade was auf stinky macht, auch ohne grosse
process accounting oder sonstige root berechtigungen zu haben (dank
public utmp und prozess tabelle)
tja, nütlich war das ding. also gleich source holen und unter solaris
kompilieren.
das ergab allerdings ein wenig probleme.
zum ersten war da mal ein ioctl, der die terminal grösse zurückliefern
sollte. tja, den hab ich nicht für solaris gefunden, also gleich
auskommentieren und hoffen das es klappt. in der tat, es klappte auch
ohne.
das nächste problem war getopt_long, eine GNU libc funktion die getopt
um lange --optionen erweitert. das war easy, einfach den getopt_long in
einen normalen getopt umwandeln. auch hier wieder die einschränkung,
dass es halt nichts wurde mit den langen optionen. gibt da ja dafür die
kurzen.
dann noch die hilfe angepasst, ein unnötiges include entfernt (getopt.h)
und ein kleines makefile erstellt.
ein wenig feinschleifen und tüfteln und schon haben wir jetzt watch auch
unter stinky.
der syntax ist relativ einfach. z.b.:
watch -d 1 -n 1 w
startet alle sekunde den 'w' neu (-n 1). unterschiede zum vorherigen
output werden hervorgehoben (-d 1).
et voilà
das programm ist im übrigen generisch. es lassen sich auch andere
kommandos periodisch ausführen und überwachen.
viel spass damit :)
Show replies by date