Как обновить Linux, “определяют местоположение” кэша

Как быстрый взлом:

[Unit]
Description=dropbox
After=local-fs.target network.target

[Service]
User=romeovs
ExecStartPre=sh -c 'while ! ping -c1 dropbox.com >/dev/null; do sleep 1; done'
ExecStart=/usr/bin/dropboxd

[Install]
WantedBy=multi-user.target

Должен работать независимо от того, о чем сообщает любой администратор сети.

79
21.05.2017, 14:10
3 ответа
[115693]Команда:

Смотрите

man updateb

для более подробной информации.[115696]-[115696].

109
27.01.2020, 19:31

В OSX это: sudo /usr/libexec/locate.updatedb

Что может быть связано с: sudo ln -s /usr/libexec/locate.updatedb / usr / local / bin / updatedb

Кажется глупым создавать символическую ссылку для стандартной команды unix, но там она является.

23
27.01.2020, 19:31

Пока ответ:

sudo updatedb

технически правильно, почти никогда не рекомендуется запускать updatedbв командной строке отдельно, если также установлено задание cron. В зависимости от варианта Unix задание cron содержит положения блокировки и любой объем конфигурации, который не охватывается автономной командой updatedb.

Если базу данных локации необходимо часто обновлять, определенно стоит попытаться определить подходящее задание cron для конкретного хоста и запустить его вручную.

В зависимости от администратора задание cron для updatedbможет быть скрыто в разных местах. Таким образом, простая -попытка грубой силы найти задание cron будет:

( sudo crontab -l > /tmp/crontab.root;
  ( echo /tmp/crontab.root; ls -1d /etc/*cron* /etc/*cron*/* ) \
  | tr '\n' '\0' \
  | xargs -0 -r -e grep -nH -e updatedb;
  rm -f /tmp/crontab.root
) 2>/dev/null

, который показывает следующий результат на одной из моих систем Ubuntu:

/etc/cron.daily/mlocate:5:[ -x /usr/bin/updatedb.mlocate ] || exit 0
/etc/cron.daily/mlocate:21:flock --nonblock /run/mlocate.daily.lock $IONICE /usr/bin/updatedb.mlocate

Правильная команда для обновления базы данных locate в этом случае

sudo /etc/cron.daily/mlocate

Более систематический подход заключается в определении пакета, который предоставляет locateи updatedb.

Например, в ОС с пакетом apt/dpkg вы можете узнать, какой вариант locate установлен с помощью:

dpkg -S locate | grep /bin/

В моем случае это:

mlocate: /usr/bin/updatedb.mlocate

Чтобы узнать, какое задание cron отвечает за это, запустите:

dpkg -L mlocate | grep cron

Что в моем случае показывает:

/etc/cron.daily
/etc/cron.daily/mlocate

Чтобы обновить базу данных, запустите задание cron от имени пользователя root:

sudo /etc/cron.daily/mlocate

Если cronjob отсутствует, а updateb сам по себе не работает, попробуйте найти установленную версию с помощью:

dpkg -L mlocate | grep /bin/

, который возвращает:

/usr/bin/mlocate
/usr/bin/updatedb.mlocate

NB :Если вы понизите этот ответ, будьте так любезны и дайте мне знать, почему ответ любителя считается лучшим.

7
27.01.2020, 19:31

Теги

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