Skonfigurowałem aktualizacje nienadzorowane, aby instalować pakiety bezpieczeństwa i powiadamiać o tym pocztą.
Zauważyłem, że instalacja odbywa się w bardzo przypadkowych momentach. Wiem, że najnowsze wersje dodawały losowe opóźnienie do 30 minut, licząc od czasu wykonania cron.daily.
Jednak opóźnienia, których doświadczam, są znacznie większe. Widzę aktualizacje nienadzorowane wykonywane o 9 rano, 3 po południu, 12 rano ... Dzienniki pokazują to samo, więc nie tylko dostarczanie wiadomości e-mail trwa dłużej.
Zadanie nienadzorowanej aktualizacji jest pierwszym zadaniem w cron.daily, co oznacza, że nie ma wcześniejszego zadania z ogromnymi czasami wykonania.
Czy ktoś doświadczył czegoś podobnego?
16.04
cron
unattended-upgrades
Daniel F.
źródło
źródło
Odpowiedzi:
Po debugowaniu znalazłem rozwiązanie.
Główna przyczyna tego problemu polega na tym, że w Ubuntu 16.04 i nowszych aktualizacjach nienadzorowanych używa systemd - nie cron - do planowania aktualizacji z ogromnym losowym opóźnieniem:
/lib/systemd/system/apt-daily.timer
jest skonfigurowany zOznacza to, że będzie działać dwa razy dziennie, o 6:00 i 18:00, z losowym opóźnieniem do 12 godzin. Ponieważ nie zawsze jest to akceptowalne w środowiskach produkcyjnych, musiałem zastąpić te ustawienia.
Aby utrzymać pliki konfiguracyjne pakietu w nienaruszonym stanie, zdefiniowałem moje zastąpienie w
/etc/systemd/system/apt-daily.timer.d/override.conf
( Aktualizacja : przeczytaj edycję na dole tej odpowiedzi, aby uzyskać dodatkowe informacje na temat nazwy pliku i lokalizacji, ponieważ wydaje się, że może ulec nieznacznym zmianom).Tam ustawiłem
aby aktualizacje bezobsługowe działały o godzinie 6:00 plus losowe opóźnienie do godziny.
Potem po prostu zrestartowałem licznik czasu
systemctl restart apt-daily.timer
(w końcu muszę ponownie załadować demona).Aktualizacje nienadzorowane są teraz ponownie uruchamiane w przewidywalnych czasach!
Edycja : Wydaje się, że w Ubuntu 18.04 sytuacja się nieco zmieniła. Zastąpienie powinno być teraz zapisane
/etc/systemd/system/apt-daily-upgrade.timer.d/override.conf
i wyglądać tak:@PerlDuck wspomniał o sposobie tworzenia pliku zastępowania o właściwej nazwie i lokalizacji w komentarzu poniżej. Zamiast ręcznie utworzyć plik, rozważ uruchomienie
sudo systemctl edit apt-daily.timer
źródło
Oficjalna dokumentacja debiana na https://wiki.debian.org/UnattendedUpgrades ma obecnie błąd, który wprowadza w błąd wiele osób. Twierdzi, że można zastąpić czas aktualizacji, tworząc plik o nazwie
Jednak poprawna ścieżka jest
źródło
sudo systemctl edit apt-daily.timer
. Spowoduje to otwarcie edytora z poprawnym plikiem rozwijanym.Wypróbowałem rozwiązanie Daniela, ale aktualizacja wciąż działała w niewłaściwych momentach. Okazało się, że potrzebne są dwa systemowe przesłonięcia:
Służy do pobierania
/lib/systemd/system/apt-daily.timer - przesłonięcie za pomocą /etc/systemd/system/apt-daily.timer.d/override.conf
Służy do aktualizacji
/lib/systemd/system/apt-daily-upgrade.timer - przesłonięcie za pomocą /etc/systemd/system/apt-daily-upgrade.timer.d/override.conf
źródło