Você pode verificar seu histórico de comandos no terminal:
history | grep 'apt update'
Para verificar por hora:
HISTTIMEFORMAT="%d/%m/%y %T " history | grep 'apt update'
Espero que ajude!
Eu sei que o comando para atualizar as listas de repositórios é apt-get update
.
Como verificar se foi executado hoje ou nas últimas 24 horas?
Eu não sei se devo verificar algum timestamp de arquivo. Ou emita outro comando apt. Ou use o utilitário dpkg.
Não foi possível encontrar algo útil em man pages.
Você pode verificar seu histórico de comandos no terminal:
history | grep 'apt update'
Para verificar por hora:
HISTTIMEFORMAT="%d/%m/%y %T " history | grep 'apt update'
Espero que ajude!
Verifique o carimbo de data / hora de /var/lib/apt/periodic/update-success-stamp
.
$ ls -l /var/lib/apt/periodic/update-success-stamp
-rw-r--r-- 1 root root 0 Jan 25 01:41 /var/lib/apt/periodic/update-success-stamp
Aqui, a hora é Jan 25 01:41
quando apt-get
foi executado pela última vez. Para obter apenas o tempo, use o seguinte comando no terminal
$ ls -l /var/lib/apt/periodic/update-success-stamp | awk '{print " "" "}'
Jan 25 01:41
É o melhor lugar para verificar o horário da última atualização. Se você encontrou /var/lib/apt/periodic/
vazio, tente
ls -l /var/log/apt/history.log
Atualizar
Verifica-se que, devido a algumas razões, os arquivos update-success-stamp
ou history.log
permanecem indisponíveis em alguns sistemas. Há uma nova proposta de derobert para ver o arquivo /var/cache/apt/pkgcache.bin
.
pkgcache.bin
é o local do cache de pacotes mapeado pela memória do Apt. Ele é renovado após cada atualização. Por isso, é o candidato perfeito para saber a última vez em que apt
foi atualizado.
Pode-se usar o seguinte comando para saber a hora exata,
ls -l /var/cache/apt/pkgcache.bin | cut -d' ' -f6,7,8
ou
stat /var/cache/apt/pkgcache.bin
Eu uso /var/cache/apt
para determinar se preciso executar apt-get update
. Por padrão, se a diferença entre o horário atual e o tempo de cache de /var/cache/apt
for menor que 24 horas, não preciso executar apt-get update
. O intervalo de atualização padrão pode ser substituído passando um número à função runAptGetUpdate()
function trimString()
{
local -r string=""
sed -e 's/^ *//g' -e 's/ *$//g' <<< "${string}"
}
function isEmptyString()
{
local -r string=""
if [[ "$(trimString "${string}")" = '' ]]
then
echo 'true'
else
echo 'false'
fi
}
function info()
{
local -r message=""
echo -e "3[1;36m${message}3[0m" 2>&1
}
function getLastAptGetUpdate()
{
local aptDate="$(stat -c %Y '/var/cache/apt')"
local nowDate="$(date +'%s')"
echo $((nowDate - aptDate))
}
function runAptGetUpdate()
{
local updateInterval=""
local lastAptGetUpdate="$(getLastAptGetUpdate)"
if [[ "$(isEmptyString "${updateInterval}")" = 'true' ]]
then
# Default To 24 hours
updateInterval="$((24 * 60 * 60))"
fi
if [[ "${lastAptGetUpdate}" -gt "${updateInterval}" ]]
then
info "apt-get update"
apt-get update -m
else
local lastUpdate="$(date -u -d @"${lastAptGetUpdate}" +'%-Hh %-Mm %-Ss')"
info "\nSkip apt-get update because its last run was '${lastUpdate}' ago"
fi
}
Exemplo de saída:
<root@ubuntu><~/ubuntu-cookbooks/libraries>
# runAptGetUpdate
Skip apt-get update because its last run was '0h 37m 43s' ago
Eu extraí essas funções do meu github pessoal: link
Você também pode estar interessado no arquivo:
/var/log/apt/term.log
Abra-o com menos ou cat como raiz .
Eu uso este comando
stat /var/cache/apt/ | grep -i -e access -e modify
para mostrar a última vez que foi acessado, ou seja. executando 'apt-get update' também da última vez que foi realmente atualizado.
observe se os horários são diferentes, pode não ter havido uma atualização disponível. Como tenho minhas atualizações e upgrades em execução pelo crontab em horários específicos, posso dizer se minhas atualizações foram executadas ou não.
Combinando o último comentário de @ ssokolow com a resposta de aqui , este comando executará apt-get update
se não tiver executado nos últimos 7 dias:
[ -z "$(find -H /var/lib/apt/lists -maxdepth 0 -mtime -7)" ] && sudo apt-get update
Explicação:
-mtime -7
encontra arquivos que possuem um horário de alteração nos últimos sete dias. Você pode usar -mmin
se você se preocupa com tempos mais curtos. -maxdepth 0
garante que o encontro não entre no conteúdo do diretório. -H
de referência /var/lib/apt/lists
se for um link flexível find
falhar, o comando será executado. Isso parece-me o padrão seguro. Se você quiser inverter o padrão, use -n
no teste e -mtime +7
no comando find. Acabei de postar uma resposta para essa pergunta no seguinte tópico
Onde posso pesquisar meu histórico de atualizações?
A resposta pode ser menos apropriada para este tópico, já que especificamente procura por "apt-get upgrade". Aqui está a saída de amostra.
xenial% 9: ./linuxpatchdate
2016-07-19 54
2017-02-24 363
2017-03-08 7
2017-03-09 2
Veja o outro tópico para o código-fonte e mais explicações.