LINUX.ORG.RU
ФорумAdmin

А как ускорить поиск в примонтированной SMB шаре?

 , , ,


0

1

Всем привет! Вот есть сетевая шара SMB, в ней какое-то кол-во каталогов с вложенными каталогами, в которых конечные файлы - jpg или pdf.

Есть список из 1100 файлов, которые, вероятно, где-то лежат в этой структуре, а может и не лежат.

Если делать find по примонтированной шаре - то на поиск 1 файла уходит в среднем

real	2m28,919s
user	0m0,280s
sys	0m0,748s

Есть ли какой-то способ искать файлы быстрее? Конечно, ищу через скрипт на баше.



Последнее исправление: Aborigen1020 (всего исправлений: 1)

find -type f | grep -F -f список_файлов.txt

legolegs ★★★★★
()
Ответ на: комментарий от Aborigen1020

locate же предвариетлньо нужно

крон в помощь

anonymous
()
Ответ на: комментарий от Aborigen1020

По справке dir выводит список файлов по маске. Если флаг рекурсии подействует, то это уже простейший поиск получится. Но это прямой запрос, а не работа с подключенной ФС.

boowai ★★★★
()
Ответ на: комментарий от Aborigen1020

locate же предвариетлньо нужно составить индекс для этого каталога?

Ну так смонтируй и натрави на него updatedb.

IPR ★★★★★
()
Ответ на: комментарий от Aborigen1020

Зато один раз всего при условии, что на время поиска содержимое каталога не будет изменяться.

Radjah ★★★★★
()

судя по предыдущим вопросам, ты можешь раз с помощью find и вывода в локальный файл получить «список файлов» и потом grep-ом искать (или ненаходить) файл. этот принцип называется кеширование. slocate и updatedb используют его-же.

bl ★★★
()
Ответ на: комментарий от bl

О чем-то таком догадывался. Спасибо за мысль, произведу замер.

Aborigen1020
() автор топика
Последнее исправление: Aborigen1020 (всего исправлений: 1)
Ответ на: комментарий от bl

этот принцип называется кеширование. slocate и updatedb используют его-же.

Ну всё же не совсем так. locate осуществляет поиск в базе, база обновляется, сюрприз — updatedb. А кеширование, это когда вы считываете что-то без преобразования в надежде, что будет повторное чтение, то есть если бы эта самая база была в виде файла в сети, то тогда можно было бы её закешировать в память или на локальном диске.

vodz ★★★★★
()
Ответ на: комментарий от vodz

кеширование, это когда вы считываете что-то без преобразования в надежде, что будет повторное чтение

В данном случае кешируется список файлов — список строится один раз для последующего поиска по нему без обращения к шаре.

bormant ★★★★★
()

Midnight Commander умеет открывать вывод ls -lR как внешнюю файловую систему. Так что делаешь ls -lR > /tmp/ls-lR, потом «заходишь» в /tmp/ls-lR в mc, и ищешь, что нужно.

i-rinat ★★★★★
()

использовать венду на сервере, венду на клиенте, индексирование и windows search protocol

targitaj ★★★★★
()
Ответ на: комментарий от bormant

В данном случае кешируется список файлов

Было уточнение терминологии. Иначе будет бардак, когда любую базу будут называть кешем.

vodz ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.