Voor enkele systemen thuis is het belangrijk om een bash script uit te voeren alvorens het systeem herstart of uitgeschakeld wordt.
De 2 scenario's hierin zijn:
a) APCU cache opslaan op HD zodat die herstelt kan worden bij start
b) Video's van raspberry camera's in tmpfs overzetten naar nas.
a wordt momenteel opgevangen door de cache elke 4 uur op te slaan, wat natuurlijk meteen impliceert dat de backup op schijf tot 4 uur oud kan zijn.
Voor b draait nu een script dat de schijfruimte van de tmpfs folder monitort. Als die boven de 50% komt wordt de nas wakker gemaakt en de video's overgezet.
Voor beiden geldt dus dat er gegevens verlies is in geval een herstart of shutdown.
Daarom dacht ik om de scripts te laten uitvoeren door systemd.
Dit is momenteel mijn systemd config voor a:
en deze voor b:
Op zich werkt het wel (gechecked middels echo naar logfile), echter met deze problemen:
a) Apache service is al gestopt waardoor de APCU niet meer beschikbaar is
b) Werkt ok indien de nas online is. Echter als deze via WOL moet wakker gemaakt worden wordt hier niet op gewacht, ondanks het script pas stopt indien een rsync succesvol was.
Ideën/tips om dit in orde te krijgen?
De 2 scenario's hierin zijn:
a) APCU cache opslaan op HD zodat die herstelt kan worden bij start
b) Video's van raspberry camera's in tmpfs overzetten naar nas.
a wordt momenteel opgevangen door de cache elke 4 uur op te slaan, wat natuurlijk meteen impliceert dat de backup op schijf tot 4 uur oud kan zijn.
Voor b draait nu een script dat de schijfruimte van de tmpfs folder monitort. Als die boven de 50% komt wordt de nas wakker gemaakt en de video's overgezet.
Voor beiden geldt dus dat er gegevens verlies is in geval een herstart of shutdown.
Daarom dacht ik om de scripts te laten uitvoeren door systemd.
Dit is momenteel mijn systemd config voor a:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
| [Unit] Description=Saves cache upon reboot and shutdown After=apache2.service Before=shutdown.target [Service] Type=oneshot ExecStart=/bin/true ExecStop=/var/www/html/secure/atreboot.sh RemainAfterExit=yes [Install] WantedBy=multi-user.target |
en deze voor b:
code:
1
2
3
4
5
6
7
8
9
10
11
12
| [Unit] Description=Saves video's on nas upon reboot and shutdown Before=shutdown.target [Service] Type=oneshot ExecStart=/bin/true ExecStop=/home/pi/sync2nas.sh RemainAfterExit=yes [Install] WantedBy=multi-user.target |
Op zich werkt het wel (gechecked middels echo naar logfile), echter met deze problemen:
a) Apache service is al gestopt waardoor de APCU niet meer beschikbaar is
b) Werkt ok indien de nas online is. Echter als deze via WOL moet wakker gemaakt worden wordt hier niet op gewacht, ondanks het script pas stopt indien een rsync succesvol was.
Ideën/tips om dit in orde te krijgen?