Обновление базы, используемой программой 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
Опубликовано 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