oio11: (Default)
[personal profile] oio11
Обновление базы, используемой программой locate
Опубликовано 18.08.2010 автором admin

updatedb

В первой статье этого раздела, где лишь начинался разговор о locate, было упомянуто, что причина столь быстрой работы команды в том, что поиск реально выполняется в базе данных, содержащей имена файлов и каталогов. При инсталляции программа locate автоматически настраивается на просмотр жесткого диска и обновление базы. Обычно такое обновление происходит ночью. Это очень удобно, но такой подход не позволяет найти файлы, которые лишь недавно были помещены в файловую систему.

Предположим, например, что вы инсталлировали Rootkit Hunter (программу, которая выявляет средства, используемые злоумышленниками), а потом хотите получить информацию об установленных файлах. Команда locate не поможет вам, поскольку она ничего не знает об этих файлах и не будет знать о них до тех пор, пока база данных не обновится. При необходимости вы можете в любое время вручную задать обновление базы, используемой locate. Для этого надо вызвать команду updatedb. Поскольку данная команда индексирует практически каждый файл и каталог на вашем компьютере, для вызова ее вам необходимы права root (в системах типа К/Ubuntu можно также задать sudo).

# apt-get install rkhunter
# exit
$ locate rkhunter
$ su -
# updatedb
# exit
$ locate rkhunter
/usr/local/rkhunter
/usr/local/rkhunter/bin
/usr/local/rkhunter/etc

В предыдущем примере мы сначала установили rkhunter (пакет Rootkit Hunter), а затем завершили сеанс пользователя root. После этого был выполнен поиск rkhunter, но он не дал результатов. Мы снова выступили под именем root, запустили updatedb для просмотра жесткого диска, в результате чего locate получила информацию об изменениях, а затем завершили сеанс root. И наконец, мы снова выполнили поиск rkhunter с помощью программы locate и на этот раз он был успешным.

Запуская updatedb, необходимо учитывать следующее: время работы этой программы прямо пропорционально числу файлов на вашем жестком диске и быстродействию компьютера. Если у вас быстрый процессор, быстрый диск и немного файлов, updatedb завершится быстро. А что если быстродействие процессора мало, скорость обмена с жестким диском невелика, а на диске миллионы файлов? Тогда придется запастись терпением. Если вы хотите узнать, сколько времени потребовалось для индексирования содержимого файловой системы, задайте перед updatedb команду time так, как показано ниже.

# time updatedb

Когда updatedb завершит работу, time сообщит о затраченном времени. Эти сведения будут полезны на случай, если вы не обладаете достаточным запасом времени и вам надо решить, имеет ли смысл вызывать updatedb.

Команда updatedb дает те же результаты, что и запуск slocate с опцией -u. Более того, как нетрудно выяснить, updatedb — это всего лишь ссылка на slocate.

$ ls -l /usr/bin/updatedb
root root /usr/bin/updatedb -> slocate

http://linuxmemo.ru/?p=342

October 2025

S M T W T F S
   1234
567891011
12131415161718
19202122 232425
262728293031 

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Mar. 22nd, 2026 07:07 am
Powered by Dreamwidth Studios