команда locate не находит файлы в папке / media [duplicate]

Три варианта для вас: от ручного, но простого до ручного и необходимого докторанта (в этой прогрессии).

1. Не используйте DHCP.

Выделите статический IP-адрес вашего маршрутизатора (чтобы он не передавал этот IP-адрес другому устройству), а затем настройте Ubuntu на использование этого статического адреса. Вы можете сделать это либо с помощью Network Manager (если вы используете это), либо путем редактирования /etc/network/interfaces с чем-то вроде этого:

auto eth0
iface eth0 inet static
        address 192.168.0.4
        netmask 255.255.255.0
        network 192.168.0.0
        broadcast 192.168.0.255
        gateway 192.168.0.1

2. Попросите что-нибудь сесть и дождаться появления вашей сети и иметь IP

Я говорю о написании сценария, который проверяет, не работает ли ваша сетевая карта. Для простоты вы можете объединить все запуски XBMC с подобной проверкой (украденной с форумов):

#!/bin/bash

until wget -q -O - http://www.google.com | grep Lucky > /dev/null; do
    sleep 10
done

xbmc

И вызывать этот скрипт вместо прямого вызова xmbc.

3. Играйте с Upstart и сломайте его, чтобы выполнить свою волю.

Upstart - это то, что управляет всеми системными вещами и управляет, когда все работает на основе событий, которые исходят из каждой работы. Это похоже на самый приятный маршрут для вас, потому что вы можете заставить его выдавать сигнал точно, когда он имеет назначенный DHCP-адрес.

Проблема заключается в том, что вам нужно будет действительно вникнуть в процесс загрузки изменять вещи. Я не знаю достаточно об этом, чтобы разумно помочь.

16
задан 7 September 2011 в 12:05

6 ответов

Файлы из внешнего жесткого диска не индексируются, потому что updatedb настроен так, чтобы не индексировать что-либо в разделе /media, где обычно монтируется внешнее хранилище. Эта конфигурация задается в файле /etc/updatedb.conf. В частности, запись /media в строке PRUNEPATHS.

Некоторые идеи, как вы можете сделать updatedb для индексации вашего внешнего диска:

1. Установите внешний диск unter /mnt.

Если ваш внешний жесткий диск должен быть установлен постоянно, я предлагаю настроить его так, чтобы он был установлен под /mnt, а не под /media. Обычно это можно сделать, отредактировав /etc/fstab. Найдите «fstab», чтобы узнать об этом. Вам понадобятся права sudo для редактирования /etc/fstab.

2. Создайте выделенную базу данных для внешнего жесткого диска и запроса по запросу.

Следующая команда создаст выделенную базу данных:

updatedb -l 0 -o ~/.externalharddisk.db -U /media/externalharddisk

Это создаст базу данных в скрытом файле .externalharddisk.db в вашем доме. Вам не нужно sudo для этой команды. Выполните повторную команду, чтобы обновить базу данных. Осторожно: если вы запустите эту команду, а внешний жесткий диск не установлен, то updatedb будет считать, что файлы удалены и выпустят базу данных.

Вы можете настроить сценарий для автоматизации этой задачи. Найдите «cronjob», чтобы узнать, как это сделать. Примечание. Вы можете настроить пользователя cronjob как пользователь. Вам не нужны права sudo для настройки пользователя cronjob.

Следующая команда будет запрашивать базу данных:

locate -d ~/.externalharddisk.db searchterm

Вы также можете запросить выделенную базу данных и базу данных по умолчанию в в то же время:

locate -d ~/.externalharddisk.db: searchterm

Двоеточие в конце, за которым следует ничто, означает также поиск в базе данных по умолчанию.

Вы можете сделать псевдоним для более удобного использования. Поместите следующую строку в свой .bashrc:

alias locate-external='locate -d ~/.externalharddisk.db:'

Теперь вы можете использовать locate для поиска только базы данных по умолчанию и locate-external для поиска в вашем внешнем жестком диске.

3. Удалите /media с PRUNEPATHS

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

Кроме того: если вы удалите /media из PRUNEPATHS, это поведение также будет применяться к любому другому внешнему хранилищу, к которому вы подключились, пока updatedb обновляет базу данных.

28
ответ дан 18 July 2018 в 02:19

Файлы из внешнего жесткого диска не индексируются, потому что updatedb настроен так, чтобы не индексировать что-либо в разделе /media, где обычно монтируется внешнее хранилище. Эта конфигурация задается в файле /etc/updatedb.conf. В частности, запись /media в строке PRUNEPATHS.

Некоторые идеи, как вы можете сделать updatedb для индексации вашего внешнего диска:

1. Установите внешний диск unter /mnt.

Если ваш внешний жесткий диск должен быть установлен постоянно, я предлагаю настроить его так, чтобы он был установлен под /mnt, а не под /media. Обычно это можно сделать, отредактировав /etc/fstab. Найдите «fstab», чтобы узнать об этом. Вам понадобятся права sudo для редактирования /etc/fstab.

2. Создайте выделенную базу данных для внешнего жесткого диска и запроса по запросу.

Следующая команда создаст выделенную базу данных:

updatedb -l 0 -o ~/.externalharddisk.db -U /media/externalharddisk

Это создаст базу данных в скрытом файле .externalharddisk.db в вашем доме. Вам не нужно sudo для этой команды. Выполните повторную команду, чтобы обновить базу данных. Осторожно: если вы запустите эту команду, а внешний жесткий диск не установлен, то updatedb будет считать, что файлы удалены и выпустят базу данных.

Вы можете настроить сценарий для автоматизации этой задачи. Найдите «cronjob», чтобы узнать, как это сделать. Примечание. Вы можете настроить пользователя cronjob как пользователь. Вам не нужны права sudo для настройки пользователя cronjob.

Следующая команда будет запрашивать базу данных:

locate -d ~/.externalharddisk.db searchterm

Вы также можете запросить выделенную базу данных и базу данных по умолчанию в в то же время:

locate -d ~/.externalharddisk.db: searchterm

Двоеточие в конце, за которым следует ничто, означает также поиск в базе данных по умолчанию.

Вы можете сделать псевдоним для более удобного использования. Поместите следующую строку в свой .bashrc:

alias locate-external='locate -d ~/.externalharddisk.db:'

Теперь вы можете использовать locate для поиска только базы данных по умолчанию и locate-external для поиска в вашем внешнем жестком диске.

3. Удалите /media с PRUNEPATHS

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

Кроме того: если вы удалите /media из PRUNEPATHS, это поведение также будет применяться к любому другому внешнему хранилищу, к которому вы подключились, пока updatedb обновляет базу данных.

28
ответ дан 24 July 2018 в 17:31

Эти дополнительные дополнения добавляются к ответу Лесманы

[1] небольшое украшение: могу ли я предложить добавить ответ -i на Лесмана : так что добавить к .bashrc >>

alias locate-external = 'locate -d ~ / .externalharddisk.db: -i'

[2] Что касается -i ; один в основном HD и новый во внешнем; вероятно, стоит добавить еще одну запись в .bashrc

alias updateALL = 'sudo updatedb & amp; & amp; & amp; & amp; & amp; updatedb -l 0 -o ~ / .externalharddisk.db -U / media / externalharddisk '

, а затем просто запустить updateALL в терминале для одновременного обновления обеих баз данных

PS : конечно, не забудьте запустить . ~/.bashrc, чтобы закрепить его все, как только новая строка будет сохранена в .bashrc PS²: и, конечно же, externalharddisk во всех вышеперечисленных строках заменяется именем вашего внешнего HD-имени т.е. / media / YOURHDNAME

* PS³, и вы можете, конечно, скомпоновать оба обновления и найти в своем .bashrc

alias LO = 'sudo updatedb & amp; & amp; & amp; & amp; updatedb -l 0 -o ~ / .externalharddisk.db -U / media / externalharddisk; locate -d ~ / .externalharddisk.db: -i '

, поэтому теперь вам нужно обновить и выполнить поиск, чтобы ввести LO', за которым следуют термины, которые вы ищете '

0
ответ дан 18 July 2018 в 02:19

В updatedb.conf у вас /media в PRUNEPATHS. Вы должны удалить его, поскольку ваши внешние диски, похоже, установлены там.

2
ответ дан 18 July 2018 в 02:19

Эти дополнительные дополнения добавляются к ответу Лесманы

[1] небольшое украшение: могу ли я предложить добавить ответ -i на Лесмана : так что добавить к .bashrc >>

alias locate-external = 'locate -d ~ / .externalharddisk.db: -i'

[2] Что касается -i ; один в основном HD и новый во внешнем; вероятно, стоит добавить еще одну запись в .bashrc

alias updateALL = 'sudo updatedb & amp; & amp; & amp; & amp; & amp; updatedb -l 0 -o ~ / .externalharddisk.db -U / media / externalharddisk '

, а затем просто запустить updateALL в терминале для одновременного обновления обеих баз данных

PS : конечно, не забудьте запустить . ~/.bashrc, чтобы закрепить его все, как только новая строка будет сохранена в .bashrc PS²: и, конечно же, externalharddisk во всех вышеперечисленных строках заменяется именем вашего внешнего HD-имени т.е. / media / YOURHDNAME

* PS³, и вы можете, конечно, скомпоновать оба обновления и найти в своем .bashrc

alias LO = 'sudo updatedb & amp; & amp; & amp; & amp; updatedb -l 0 -o ~ / .externalharddisk.db -U / media / externalharddisk; locate -d ~ / .externalharddisk.db: -i '

, поэтому теперь вам нужно обновить и выполнить поиск, чтобы ввести LO', за которым следуют термины, которые вы ищете '

0
ответ дан 24 July 2018 в 17:31

В updatedb.conf у вас /media в PRUNEPATHS. Вы должны удалить его, поскольку ваши внешние диски, похоже, установлены там.

2
ответ дан 24 July 2018 в 17:31

Другие вопросы по тегам:

Похожие вопросы: