Hi!
Ich will mal einen Tip loswerden, den ich aus "Unix Performance Tuning" von
O'Reilly �bernommen habe, und der mir richtig gut gef�llt.
Man ist ja irgendwie immer mal wieder in der Situation, da� man eine Datei
auf der Platte sucht, und sich dazu irgendwie mittels eines solchen
Kommandos durch die Platte w�hlt:
find / -name "*name*" -print
Das dauert nat�rlich ewig. Es gibt aber eine M�glichkeit, um den Vorgang um
den Faktor 100 (sage ich jetzt mal so) zu beschleunigen.
Will man das n�mlich schneller haben, kann man einfach nachts per Cron einen
Index der ganzen Platte anlegen, der sich dann schnell durchsuchen l��t.
In der Crontab von "root" plant man die Indizierung wie folgt ein:
0 6 * * * /usr/bin/find / -name "*" -print > /var/cache/allfiles
In "/var/cache/allfiles" kann man dann schnell nach dem betreffenden String
(Dateinamen) suchen. Ich lege mir gewohnheitsm��ig immer ein Einzeiler-Script
namens "nfind" in "/usr/local/bin" ab, das etwa wie folgt aussieht:
#!/bin/bash
grep $1 /var/cache/allfiles
Mit etwas Kreativit�t kann man das auch ausbauen, z.B. um mit Perl Regular
Expressions in der Dateiliste zu suchen.
Wie gro� ist der Speicherbedarf? - Auf meinem Server zuhause ist die Datei
im Moment 7160479 Byte gro� und indiziert 168057 Dateien.
Achtung auf Multiuserkisten: In dieser Liste stehen nat�rlich auch die
Verzeichnisse unterhalb "/root" und alles unterhalb von "/home".
Sicherheitstechnisch kann das ganze also abh�ngig von der Nutzung des
Systems etwas bedenklich sein.
Viel Spa�,
-martin
--
$ cd /pub
$ more beer
---------------------------------------------------------------------------
PUG - Penguin User Group Wiesbaden - http://www.pug.org