Objavljeno:

Pošiljanje obvestila ob ponovnem zagonu sistema

Kot smo ugotavljali v prispevku o uporabi RaspberryPi naprave za NAS strežnik, je včasih koristno, če nam naprava ob ponovnem zagonu sporoči, da je zopet aktivna. V tokratnem prispevku si bomo pogledali kako to narediti na sodobnih Linux sistemih, ki uporabljajo systemd – gre za inicializacijski sistem (prvi proces pri zagonu Linux sistema), ki ga od leta 2015 uporablja večina Linux distribucij. Ena izmed njih je tudi Raspbian, ki poganja RaspnberryPi naprave.

V našem primeru želimo, da nam računalnik pošlje obvestilo, ko se je ponovno zagnal, vendar šele takrat, ko ima vzpostavljeno VPN povezavo. In v takih primerih, ko je storitev odvisna od pogoja, je systemd odlična rešitev.

Najprej napišemo skripto za pošiljanje obvestila po e-pošti:

sudo nano /usr/local/bin/report_reboot.sh

V datoteko vpišemo:

#!/bin/bash
echo "OBVESTILO:<br><b>Streznik se je ponovno zagnal.</b><br><br>Lep pozdrav!" | mail -s "$(echo -e 'Ponovni zagon streznika\nContent-Type: text/html; charset=UTF-8\nContent-Transfer-Encoding: quoted-printable')" -aFrom:"Admin<admin@mail.xy" moje.ime@streznik.si

Nato nastavimo, da je skripta izvršljiva:

sudo chmod 744 /usr/local/bin/report_reboot.sh

Nato naredimo tim. sistemd storitev (ang. service):

sudo nano /etc/systemd/system/report_reboot.service

V datoteko vpišemo:

[Unit]
Wants=sys-devices-virtual-net-tun0.device
After=sys-devices-virtual-net-tun0.device

[Service]
ExecStart=/usr/local/bin/report_reboot.sh

[Install]
WantedBy=default.target

Pod Unit smo vpisali pogoj (čakamo, da se pojavi tun0 omrežni vmesnik (gre za omrežni vmesnik, ki ga vzpostavi OpenVPN proces), pod Service pa smo vpisali pot do skripte, ki naj se izvede ob prisotnosti zgornjega pogoja.

Nastavimo še ustrezne pravice na systemd storitvi:

sudo chmod 664 /etc/systemd/system/report_reboot.service

Ponovno naložimo systemd demon (to moramo storiti po vsaki spremembi v datoteki z opisom systemd storitve):

sudo systemctl daemon-reload

… nato pa storitev omogočimo:

sudo systemctl enable report_reboot.service

Pojavi se izpis:

Created symlink from /etc/systemd/system/default.target.wants/report_reboot.service to /etc/systemd/system/report_reboot.service.

Sedaj lahko preizkusimo ali storitev deluje:

sudo systemctl start report_reboot.service

… in če je vse v redu oziroma smo prejeli e-sporočilo, bomo ob ponovnem zagonu sistema samodejno prejeli zgoraj opisano e-obvestilo. To lahko kar takoj preizkusimo:

sudo reboot

In ker se obvestilo pošlje šele po tem, ko se naprava poveže v VPNomrežje, bo prejemnik e-pošte v poštnih vzglavjih videl IP naslov od VPN strežnika in ne od dejanskega IP naslova od naše ciljne naprave.

Kategorije: Informacijska tehnologija, Odprta koda
Ključne besede: Raspberry Pi