Три варианта для вас: от ручного, но простого до ручного и необходимого докторанта (в этой прогрессии).
Выделите статический 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
Я говорю о написании сценария, который проверяет, не работает ли ваша сетевая карта. Для простоты вы можете объединить все запуски XBMC с подобной проверкой (украденной с форумов):
#!/bin/bash
until wget -q -O - http://www.google.com | grep Lucky > /dev/null; do
sleep 10
done
xbmc
И вызывать этот скрипт вместо прямого вызова xmbc.
Upstart - это то, что управляет всеми системными вещами и управляет, когда все работает на основе событий, которые исходят из каждой работы. Это похоже на самый приятный маршрут для вас, потому что вы можете заставить его выдавать сигнал точно, когда он имеет назначенный DHCP-адрес.
Проблема заключается в том, что вам нужно будет действительно вникнуть в процесс загрузки изменять вещи. Я не знаю достаточно об этом, чтобы разумно помочь.
Файлы из внешнего жесткого диска не индексируются, потому что updatedb настроен так, чтобы не индексировать что-либо в разделе /media, где обычно монтируется внешнее хранилище. Эта конфигурация задается в файле /etc/updatedb.conf. В частности, запись /media в строке PRUNEPATHS.
Некоторые идеи, как вы можете сделать updatedb для индексации вашего внешнего диска:
Если ваш внешний жесткий диск должен быть установлен постоянно, я предлагаю настроить его так, чтобы он был установлен под /mnt, а не под /media. Обычно это можно сделать, отредактировав /etc/fstab. Найдите «fstab», чтобы узнать об этом. Вам понадобятся права sudo для редактирования /etc/fstab.
Следующая команда создаст выделенную базу данных:
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 для поиска в вашем внешнем жестком диске.
, установленный постоянно ! Это связано с тем, как работает updatedb. Если updatedb запускается во время удаления внешнего жесткого диска, все записи, указывающие на внешний жесткий диск, будут удалены из базы данных. Если updatedb работает во время подключения внешнего жесткого диска, снова будут добавлены записи, указывающие на внешний жесткий диск. Поскольку updatedb работает в фоновом режиме, вы никогда не можете быть уверены, что файлы с внешнего жесткого диска в настоящее время проиндексированы или нет.
Кроме того: если вы удалите /media из PRUNEPATHS, это поведение также будет применяться к любому другому внешнему хранилищу, к которому вы подключились, пока updatedb обновляет базу данных.
Файлы из внешнего жесткого диска не индексируются, потому что updatedb настроен так, чтобы не индексировать что-либо в разделе /media, где обычно монтируется внешнее хранилище. Эта конфигурация задается в файле /etc/updatedb.conf. В частности, запись /media в строке PRUNEPATHS.
Некоторые идеи, как вы можете сделать updatedb для индексации вашего внешнего диска:
Если ваш внешний жесткий диск должен быть установлен постоянно, я предлагаю настроить его так, чтобы он был установлен под /mnt, а не под /media. Обычно это можно сделать, отредактировав /etc/fstab. Найдите «fstab», чтобы узнать об этом. Вам понадобятся права sudo для редактирования /etc/fstab.
Следующая команда создаст выделенную базу данных:
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 для поиска в вашем внешнем жестком диске.
, установленный постоянно ! Это связано с тем, как работает updatedb. Если updatedb запускается во время удаления внешнего жесткого диска, все записи, указывающие на внешний жесткий диск, будут удалены из базы данных. Если updatedb работает во время подключения внешнего жесткого диска, снова будут добавлены записи, указывающие на внешний жесткий диск. Поскольку updatedb работает в фоновом режиме, вы никогда не можете быть уверены, что файлы с внешнего жесткого диска в настоящее время проиндексированы или нет.
Кроме того: если вы удалите /media из PRUNEPATHS, это поведение также будет применяться к любому другому внешнему хранилищу, к которому вы подключились, пока updatedb обновляет базу данных.
Эти дополнительные дополнения добавляются к ответу Лесманы
[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', за которым следуют термины, которые вы ищете '
В updatedb.conf у вас /media в PRUNEPATHS. Вы должны удалить его, поскольку ваши внешние диски, похоже, установлены там.
Эти дополнительные дополнения добавляются к ответу Лесманы
[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', за которым следуют термины, которые вы ищете '
В updatedb.conf у вас /media в PRUNEPATHS. Вы должны удалить его, поскольку ваши внешние диски, похоже, установлены там.