Met dank aan Pjotr, die mij erop wees dat de bestandsnaam mogelijk niet klopte, heb ik wat verder uitgezocht hoe je correct een systemd opdracht, in dit geval een timer, aanpast. In dit geval stellen we op Ubuntu/Xubuntu... 18.04 in dat een SSD harde schijf dagelijks te trimmen in plaats van wekelijks. Het oude systeem via cron werkt niet meer. We maken nu gebruik van het commando "systemctl", met "sudo" ervoor om als beheerder te werken.
Geefde volgende opdracht in de terminal om de timer voor het trimmen aan te passen:
sudo systemctl edit fstrim.timer
De teksteditor nano opent. Voeg volgende code toe:
[Timer]
OnCalendar=
OnCalendar=weekly
Verlaat nano en bewaar het bestand. (Druk op Ctrl+x, antwoord bevestigend op de vraag, en druk tenslotte op Enter om het bestand op te slaan en nano af te sluiten. )
Ongedaan maken:
Mogelijkheid 1: Je kan hetzelfde commando opnieuw uitvoeren, en de text "daily" vervangen door "weekly". Dit volstaat om de opdracht terug wekelijks te laten lopen.
Mogelijkheid 2: De puristen onder ons willen misschien het systeem liever exact herstellen zoals vóór de aanpassingen. Dan dien je de door de aanpassing aangemaakte bestanden te verwijderen:
sudo rm /etc/systemd/system/fstrim.timer.d/override.conf
sudo rmdir /etc/systemd/system/fstrim.timer.d/
Achtergrond (Opgelet, nogal technish
)
Deze aanpassing houdt in dat er achter de schermen een bijkomend bestand wordt aangemaakt, /etc/systemd/system/fstrim.timer.d/override.conf. Dat bestand bevat jou gewenste aanpassingen, en het wordt uitgevoerd na fstrim.timer zelf. OnCalendar moet eerst terug leeg gemaakt worden vooraleer de nieuwe waarde aan te maken. Vandaar de twee lijnen "OnCalendar=".
Voordeel van dergelijk bijkomend bestand:
- Je moet het systeembestand zelf niet bewerken
- Je wijzigingen blijven ook na een systeemupdate behouden.
Zo kan je de inhoud van een systemd service/timer bekijken:
systemctl cat fstrim.timer
Je ziet de inhoud van het hoofdbestand. Alnaar het geval is dit /lib/systemd/system/fstrim.timer
dan wel /etc/systemd/system/fstrim.timer, en daarachter de inhoud van de aanpassing.
/lib/systemd/system/fstrim.timer is de fabrieksversie van het bestand zoals dat geïnstalleerd werd met het softwarepakket. Als de systeembeheerder dat bestand wil aanpassen, dan moet dat gebeuren op een kopie, die onder /etc/systemd/system/fstrim.timer geplaatst wordt. Het systemctl commando om het bestand zelf aan te passen, is:
sudo systemctl edit --full fstrim.timer
/etc/systemd/system/fstrim.timer wordt geopend, of, als het nog niet bestond, aangemaakt als een kopie van /lib/systemd/system/fstrim.timer.
Een systemd service, in dit geval een timer, schakel je in met het commando
sudo systemctl enable fstrim.timer
Er wordt een link naar de timer in /etc/systemd/system/timers.target.wants/ geplaatst . Die link wijst naar /etc/systemd/system/fstrim.timer als dat bestand bestaat. Anders wordt naar het "fabrieksbestand" onder /lib/systemd gelinkt. Die links worden tijdens de opstart van het systeem gebruikt om de gewenste services/timers te starten.
Je schakelt de timer uit met het commando
sudo systemctl disable fstrim.timer
Achter de schermen wordt de link in timers.target.wants/ verwijderd.