Я знаю, что команда для обновления списков репозитория есть apt-get update
.
Как проверить, было ли оно выполнено сегодня или за последние 24 часа?
Я не знаю, следует ли проверять временную метку файла. Или введите другую команду apt. Или используйте утилиту dpkg.
Не удалось найти что-то полезное на страницах руководства.
history | grep 'apt-get update'
:)HISTTIMEFORMAT
не задано,.bashrc
тогда эта команда будет иметь только правильные временные метки для команд, которые фактически были выполнены из текущего сеанса оболочки . Для всех других команд, которые не относятся к текущему сеансу, временная метка будет показывать только временную метку изменения~/.bash_history
файла. Он не может отображать временные метки для команд из других сеансов, поскольку эти временные метки не сохраняются в~/.bash_history
файле. Он может показывать метки времени для текущего сеанса, потому что эти метки все еще находятся в памяти.apt
или когда ваш.bash_history
был урезан.Проверьте отметку времени
/var/lib/apt/periodic/update-success-stamp
.Здесь время,
Jan 25 01:41
когдаapt-get
последний раз исполнялся. Чтобы получить только время, используйте следующую команду в терминале,Это лучшее место, чтобы проверить время последнего обновления. Если вы обнаружили,
/var/lib/apt/periodic/
что пусто, вы можете попробовать,Обновить
Выясняется, что по некоторым причинам указанные выше файлы
update-success-stamp
илиhistory.log
остаются недоступными в некоторых системах. Есть новое предложение от Дроберт, чтобы посмотреть в файл/var/cache/apt/pkgcache.bin
.pkgcache.bin
является местоположением кэша пакетов, отображаемых в памяти Apt. Это обновляется после каждого обновления. Так что это идеальный кандидат, чтобы знать, когда последний разapt
обновлялся.Можно использовать следующую команду, чтобы узнать точное время,
или
источник
/var/lib/apt/periodic/
каталог пуст/var/cache/apt/pkgcache.bin
. Также, пожалуйста, не анализируйте выводls
; используйтеstat
вместо Имейте в виду, чтоls
вывод зависит от локали, от возраста файла и т. Д. (Кроме того, я думаю, что вы получите первый предложенный файл, только если у вас установлен update-notifier-common)/var/cache/apt/pkgcache.bin
, также затронут вопрос установки пакета, поэтому это не надежный способ проверки последнегоapt-get update
запуска.apt-get clean
недавно запускались, не будет иметь/var/cache/apt/pkgcache.bin
. Вместо/var/lib/apt/lists
этого я попытаюсь использовать mtime from , поскольку, похоже, это необработанные, не кэшированные данные, которыеapt-get update
фактически манипулируют.Я использую,
/var/cache/apt
чтобы определить, нужно ли мне бежатьapt-get update
. По умолчанию, если разница между текущим временем и временем кэширования/var/cache/apt
составляет менее 24 часов, мне не нужно запускатьсяapt-get update
. Интервал обновления по умолчанию можно переопределить, передав число в функциюrunAptGetUpdate()
Пример вывода:
Я извлек эти функции из моего личного github: https://github.com/gdbtek/ubuntu-cookbooks/blob/master/libraries/util.bash
источник
Вас также может заинтересовать файл:
Откройте это с меньшим количеством или кошкой как корень .
источник
apt-get update
, и это явно не записано.Я использую эту команду
stat /var/cache/apt/ | grep -i -e access -e modify
чтобы показать, когда в последний раз к нему обращались, т.е. запуск 'apt-get update' также в прошлый раз, когда он был фактически обновлен.
обратите внимание, что если времена разные, возможно, обновление недоступно. Так как мои обновления и обновления выполняются crontab в определенное время, я могу сказать, запускались ли мои обновления или нет.
источник
Комбинируя последний комментарий @ ssokolow с ответом отсюда , эта команда будет выполняться,
apt-get update
если она не выполнялась в течение последних 7 дней:Объяснение:
-mtime -7
находит файлы, у которых есть время изменения за последние 7 дней. Вы можете использовать,-mmin
если вы заботитесь о более коротких временах.-maxdepth 0
гарантирует, что find не войдет в содержимое каталога.-H
разыменование,/var/lib/apt/lists
если это мягкая ссылкаfind
произойдет сбой, команда будет выполнена. Это кажется мне безопасным по умолчанию. Если вы хотите перевернуть значение по умолчанию, используйте-n
в тесте и-mtime +7
в команде find.источник
Я только что опубликовал ответ на этот вопрос в следующей теме
Где я могу посмотреть историю обновлений?
Ответ может быть менее подходящим для этой темы, так как он специально ищет «apt-get upgrade». Вот пример вывода.
В другой теме приведен исходный код и дополнительные пояснения.
источник
источник