В linux есть такой замечательный поисковый инструмент, как updatedb, который содержится в пакете mlocate.
Команда updatedb
предназначена для быстрого поиска по имени файлов и все бы хорошо, но команда использует поисковый индекс, по время перестроения которого резко повышаются нагрузки и падает быстродействие компьютера — чем больше файлов на машине, тем выше нагрузки и ниже быстродействие, во время перестроения индекса.
Поисковый индекс обычно обновляется автоматически (например, по крону), причем он может обновляться ежесуточно. А вот пользоваться поиском, вы можете гораздо реже. Так зачем же ежедневно тратить ресурсы компьютера на обновление поискового индекса?
Тем более, что на машинах с большим количеством файлов, в момент обновления индекса могут появляться просто жуткие тормоза и длиться они могут довольно долго!
Лечится это довольно просто:
Открываем файл
/etc/updatedb.conf
И добавляем в PRUNEPATHS
список директорий, которые не нужно индексировать, например, это может выглядеть так:
PRUNEPATHS = "/afs /media /net /sfs /tmp /udev /var/spool/cups /var/spool/squid /var/tmp /home /backup"
Закрыв от индексации директорию /home
, в которой обычно находится основная масса файлов, мы снижаем нагрузки при перестроении поискового индекса на порядок.
Ну а если понадобится выполнить поиск в директории /home
, достаточно будет убрать ее из списка исключений и выполнить поиск таким образом:
nice -21 updatedb locate имяфайла |