Wiem, że polecenie aktualizacji list repozytoriów to apt-get update
.
Jak sprawdzić, czy został wykonany dzisiaj, czy w ciągu ostatnich 24 godzin?
Nie wiem, czy powinienem sprawdzić znacznik czasu pliku. Lub wydaj inne polecenie apt. Lub użyj narzędzia dpkg.
Nie można znaleźć czegoś przydatnego na stronach podręcznika użytkownika.
history | grep 'apt-get update'
:)HISTTIMEFORMAT
nie jest ustawione,.bashrc
to polecenie będzie miało poprawne znaczniki czasu dla poleceń, które zostały faktycznie wykonane z bieżącej sesji powłoki . Dla wszystkich innych poleceń, które nie pochodzą z bieżącej sesji, znacznik czasu pokaże tylko znacznik czasu modyfikacji~/.bash_history
pliku. Nie może pokazywać znaczników czasu dla poleceń z innych sesji, ponieważ te znaczniki czasu nie są zapisywane w~/.bash_history
pliku. Może pokazywać znaczniki czasu dla bieżącej sesji, ponieważ te znaczki są nadal w pamięci.apt
lub gdy.bash_history
zostałeś przycięty.Sprawdź znacznik czasu z
/var/lib/apt/periodic/update-success-stamp
.Tutaj jest czas,
Jan 25 01:41
kiedyapt-get
ostatnio wykonano. Aby uzyskać tylko czas, użyj następującego polecenia w terminalu,Jest to najlepsze miejsce, aby sprawdzić czas ostatniej aktualizacji. Jeśli
/var/lib/apt/periodic/
okaże się, że jest pusty, możesz spróbować,Aktualizacja
Stwierdzono, że z pewnych powodów powyższe pliki
update-success-stamp
lubhistory.log
pozostają niedostępne w niektórych systemach. Jest to nowa propozycja od derobert zajrzeć do pliku/var/cache/apt/pkgcache.bin
.pkgcache.bin
jest lokalizacją pamięci podręcznej pakietu mapowanego przez Apt. Jest odnawiany po każdej aktualizacji. Jest to więc idealny kandydat, aby wiedzieć, kiedy ostatnioapt
był aktualizowany.Można użyć następującego polecenia, aby poznać dokładny czas,
lub
źródło
/var/lib/apt/periodic/
katalog jest pusty/var/cache/apt/pkgcache.bin
. Proszę również nie analizować danych wyjściowychls
; użyjstat
zamiast tego. Należy pamiętać, żels
dane wyjściowe zależą od ustawień regionalnych, zależą od wieku pliku itp. (/var/cache/apt/pkgcache.bin
to również instalacji pakietu, więc nie jest to niezawodny sposób na sprawdzenie ostatniegoapt-get update
uruchomienia.apt-get clean
był ostatnio uruchamiany, nie będzie miał/var/cache/apt/pkgcache.bin
./var/lib/apt/lists
Zamiast tego spróbuję użyć mtime , ponieważ wydaje się, że są to surowe, niebuforowane dane, któreapt-get update
faktycznie manipulują.Używam,
/var/cache/apt
aby ustalić, czy muszę uruchomićapt-get update
. Domyślnie, jeśli różnica między bieżącym czasem a czasem buforowania/var/cache/apt
wynosi mniej niż 24 godziny, nie muszę uruchamiaćapt-get update
. Domyślny interwał aktualizacji można zastąpić, przekazując liczbę do funkcjirunAptGetUpdate()
Przykładowe dane wyjściowe:
Wyodrębniłem te funkcje z mojego osobistego github: https://github.com/gdbtek/ubuntu-cookbooks/blob/master/libraries/util.bash
źródło
Możesz być także zainteresowany plikiem:
Otwórz go z mniej lub cat jako root .
źródło
apt-get update
, i oczywiście nie jest rejestrowany.Używam tego polecenia
stat /var/cache/apt/ | grep -i -e access -e modify
aby pokazać, kiedy ostatnio uzyskano dostęp, tj. uruchomienie „apt-get update” również podczas ostatniej aktualizacji.
Uwaga: jeśli czasy są inne, być może aktualizacja nie była dostępna. Ponieważ mam aktualizacje i aktualizacje uruchamiane przez crontab w określonych momentach, mogę stwierdzić, czy moje aktualizacje zostały uruchomione, czy nie.
źródło
Łącząc ostatni komentarz @ ssokołow z odpowiedzią tutaj , to polecenie zostanie uruchomione,
apt-get update
jeśli nie zadziałało w ciągu ostatnich 7 dni:Wyjaśnienie:
-mtime -7
wyszukuje pliki, które mają czas zmiany w ciągu ostatnich 7 dni. Możesz użyć,-mmin
jeśli zależy Ci na krótszych czasach.-maxdepth 0
zapewnia, że find nie przejdzie do zawartości katalogu.-H
dereferencje,/var/lib/apt/lists
jeśli jest to miękki linkfind
nie powiedzie się, polecenie zostanie uruchomione. Wydaje mi się, że to bezpieczne ustawienie domyślne. Jeśli chcesz zmienić domyślną wartość, użyj-n
w teście i-mtime +7
w poleceniu find.źródło
Właśnie opublikowałem odpowiedź na to pytanie na następujący temat
Gdzie mogę sprawdzić historię aktualizacji?
Odpowiedź może być mniej odpowiednia w tym temacie, ponieważ dotyczy „apt-get upgrade”. Oto przykładowe dane wyjściowe.
Zobacz inny temat, aby uzyskać kod źródłowy i dodatkowe wyjaśnienia.
źródło
źródło