Sådan udføres shell-script automatisk ved opstart af systemd Linux

Den følgende konfiguration viser et grundlæggende eksempel på, hvordan man kan udføre shell-script under opstart af systemd Linux. Der er måske forskellige grunde til, at du måske ønsker at udføre et shell script under Linux opstart som for eksempel at starte en bestemt brugerdefineret tjeneste, kontrollere diskplads, oprette en backup osv.
Det følgende eksempel nedenfor vil tjene som en grundlæggende skabelon, der senere kan ændres, så den passer til dine specifikke behov. I eksemplet nedenfor vil vi kontrollere en diskplads i en /home/ mappe under en opstart og skrive en rapport til /root/ mappe.

Systemd-tjenesteenhed

Først skal vi oprette et systemd-opstartsscript f.eks.disk-space-check.serviceog placere det i /etc/systemd/system/-mappen. Du kan finde et eksempel på et sådant systemd opstartsscript nedenfor:

After=mysql.serviceExecStart=/usr/local/bin/disk-space-check.shWantedBy=default.target
  • Efter: Anviser systemd om, hvornår scriptet skal køres. I vores tilfælde vil scriptet blive kørt efter at mysql-databasen er startet. Et andet eksempel kunne være network.target osv.
  • ExecStart: Dette felt giver en fuld sti det faktiske script, der skal udføres
  • WantedBy: Ovenstående er det absolutte minimum, som vores systemd-tjenesteenhed skal indeholde for at kunne udføre vores script på opstartstidspunktet. For flere oplysninger og indstillinger, der skal bruges, se systemd.service manual side:
    $ man systemd.service

    Startup shell script

    Næst opretter vi vores brugerdefinerede shell script, der skal udføres under opstart af systemd. Placeringen og scriptnavnet er allerede defineret af serviceenheden som /usr/local/bin/disk-space-check.sh. Indholdet af scriptet kan være simpelt som:

    #!/bin/bashdate > /root/disk_space_report.txtdu -sh /home/ >> /root/disk_space_report.txt
    Søger Linux Systems Analyst !
    UAF Geophysical Institute, søger en erfaren Linux Systems Analyst til at slutte sig til deres team af forskningscyberinfrastrukturanalytikere og -ingeniører. LOKALITET: Fairbanks, Alaska, USA
    SØG NU

    Konfigurer og installer

    Hvor vi genstarter vores system, skal vi gøre vores script eksekverbart:

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

    Derefter skal vi installere systemd serviceenheden og aktivere den, så den vil blive udført ved opstart:

    # 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.

    Hvis du ønsker at teste dit script, før du genstarter, skal du køre:

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

    Alt er klar. Efter genstart af dit Linux-system vil ovenstående systemd-enhed påkalde shell-scriptet, der skal udføres under opstartstiden.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.