Hur man automatiskt kör skalskript vid uppstart av systemd Linux

Nedan beskrivs ett grundläggande exempel på hur man kör skalskript vid uppstart av systemd Linux. Det kan finnas olika anledningar till varför du vill exekvera ett skalskript vid start av Linux, till exempel för att starta en viss anpassad tjänst, kontrollera diskutrymme, skapa en säkerhetskopia osv.
Det följande exemplet nedan kommer att fungera som en grundläggande mall som senare kan ändras för att passa dina specifika behov. I exemplet nedan kommer vi att kontrollera diskutrymmet i katalogen /home/ under uppstarten och skriva en rapport till katalogen /root/.

Systemd-tjänstenhet

Först måste vi skapa ett systemd-startskript t.ex. disk-space-check.serviceoch placera det i katalogen /etc/systemd/system/. Du hittar ett exempel på ett sådant startskript för systemd nedan:

After=mysql.serviceExecStart=/usr/local/bin/disk-space-check.shWantedBy=default.target
  • Efter: Instruerar systemd om när skriptet ska köras. I vårt fall kommer skriptet att köras efter att mysql-databasen har startats. Andra exempel kan vara network.target etc.
  • ExecStart: Det här fältet ger en fullständig sökväg till det aktuella skriptet som ska exekveras
  • WantedBy: Ovanstående är ett absolut minimum som vår systemd-tjänstenhet bör innehålla för att vårt skript ska kunna exekveras vid uppstart. För mer information och alternativ som ska användas se systemd.service manualsida:
    $ man systemd.service

    Startskalskript

    Nästan skapar vi vårt anpassade skalskript som ska exekveras vid start av systemd. Platsen och skriptnamnet är redan definierat av serviceenheten som /usr/local/bin/disk-space-check.sh. Innehållet i skriptet kan vara enkelt som:

    #!/bin/bashdate > /root/disk_space_report.txtdu -sh /home/ >> /root/disk_space_report.txt
    Söker Linux Systems Analyst !
    UAF Geophysical Institute, söker en erfaren Linux Systems Analyst för att gå med i deras team av analytiker och ingenjörer inom forskning om cyberinfrastruktur. PLATS: Fairbanks, Alaska, USA
    ANSÖK NU

    Konfigurera och installera

    Innan vi startar om vårt system måste vi göra vårt skript körbart:

    # chmod 744 /usr/local/bin/disk-space-check.sh

    Installera sedan serviceenheten systemd och aktivera den så att den exekveras vid uppstart:

    # chmod 664 /etc/systemd/system/disk-space-check.service# systemctl daemon-reload# systemctl enable disk-space-check.serviceCreated symlink from /etc/systemd/system/default.target.wants/disk-space-check.service to /etc/systemd/system/disk-space-check.service.

    Om du vill testa ditt skript innan du startar om kör:

    # systemctl start disk-space-check.service# cat /root/disk_space_report.txt Thursday 7 July 11:30:25 AEST 20161.5G /home/

    Allt är klart. Efter omstart av ditt Linuxsystem kommer ovanstående systemd-enhet att anropa skalskriptet som ska exekveras under uppstartstiden.

Lämna ett svar

Din e-postadress kommer inte publiceras.