Nie jesteś zalogowany na forum.

#1 2018-04-23 17:07:15

nycko
Użytkownik
Data rejestracji: 2015-10-31
Liczba postów: 32
WWW

Automatyczne sprawdzanie aktualizacji: 'checkupdates'

Może się komuś przydadzą jako baza do dalszych modyfikacji (wyświetlanie powiadomienia, itd.)
Niezbyt ambitne, ale nic więcej nie potrzebuję do szczęścia, a ze mnie też programista, jak z koziej d...

Celem działania jest wygenerowanie co 30 minut pliku '/tmp/checkupdates', który zawiera listę aktualnie dostępnych aktualizacji.
Taki plik można potem odczytywać z dowolną częstotliwością przy pomocy conky lub innych narzędzi bądź skryptów, bez niepotrzebnego łączenia się mirrorami.

Unit i timer umieszczamy w katalogach zgodnie z wymaganiami systemd dla tego typu plików.
Moje np. leżą w '$HOME/.config/systemd/user/'.

checkupdates.service
Przykładowe położenie: /etc/systemd/user/checkupdates.service

[Unit]
 Description=Automatic Updates Finder (checkupdates)
 After=network-online.target

[Service]
 Type=simple
 ExecStart=/usr/bin/sh -c '/usr/bin/checkupdates > /tmp/checkupdates'
 TimeoutStopSec=60
 KillMode=process
 KillSignal=SIGINT

[Install]
 WantedBy=default.target

checkupdates.timer
Przykładowe położenie: /etc/systemd/user/checkupdates.timer

[Unit]
 Description=Automatic Updates Finder (checkupdates): 1 minute after boot then every 30 minutes

[Timer]
 OnBootSec=1min
 OnUnitActiveSec=30min
 Unit=checkupdates.service

[Install]
 WantedBy=default.target

Do zestawu należy też tzw. 'hook' dla pacmana, mający na celu wyzerowanie pliku /tmp/checkupdates natychmiast po poprawnej aktualizacji pakietów 'pacman -Syu'

checkupdates.hook
/etc/pacman.d/hooks/checkupdates.hook

[Trigger]
Operation = Upgrade
Type = Package
Target = *

[Action]
Description = Reset /tmp/checkupdates file after the update
When = PostTransaction
Exec = /usr/bin/sh -c 'echo -n > /tmp/checkupdates > /dev/null'

Dla leniwych jest też PKGBUILD

Ostatnio edytowany przez nycko (2018-06-06 10:34:25)

Offline

Stopka

Napędzają nas PacmanVPS i MegiTeam

Forum oparte na FluxBB