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

Antwort per Email an