Hoe automatisch een shellscript uitvoeren tijdens het opstarten van systemd Linux

De volgende configuratie geeft een basisvoorbeeld van hoe je een shellscript kunt uitvoeren tijdens het opstarten van systemd Linux. Er kunnen verschillende redenen zijn waarom u een shellscript wilt uitvoeren tijdens het opstarten van Linux, bijvoorbeeld om een bepaalde aangepaste service te starten, schijfruimte te controleren, een back-up te maken, enz.
Het volgende voorbeeld zal dienen als een basis sjabloon dat later kan worden aangepast aan uw specifieke behoeften. In het onderstaande voorbeeld controleren we de schijfruimte van een /home/ directory tijdens het opstarten en schrijven een rapport naar /root/ directory.

Systemd service unit

Eerst moeten we een systemd opstartscript maken, b.v. disk-space-check.service en het in de /etc/systemd/system/ directory plaatsen. Hieronder vindt u een voorbeeld van zo’n systemd opstartscript:

After=mysql.serviceExecStart=/usr/local/bin/disk-space-check.shWantedBy=default.target
  • Na: Instrueert systemd over wanneer het script moet worden uitgevoerd. In ons geval zal het script worden uitgevoerd nadat de mysql database is gestart. Een ander voorbeeld zou kunnen zijn network.target etc.
  • ExecStart: Dit veld geeft een volledig pad het eigenlijke script dat moet worden uitgevoerd
  • WantedBy: In welk boot doel de systemd eenheid moet worden geïnstalleerd

Het bovenstaande is een absoluut minimum dat onze systemd service eenheid moet bevatten om ons script uit te voeren tijdens het booten. Voor meer informatie en te gebruiken opties zie systemd.service handleiding pagina:

$ man systemd.service

Shell-script bij opstarten

Volgende, we maken ons aangepaste shell script om tijdens het opstarten van systemd te worden uitgevoerd. De locatie en de naam van het script zijn al gedefinieerd door service unit als /usr/local/bin/disk-space-check.sh. De inhoud van het script kan eenvoudig zijn als:

#!/bin/bashdate > /root/disk_space_report.txtdu -sh /home/ >> /root/disk_space_report.txt
Op zoek naar Linux Systems Analyst !
Het UAF Geophysical Institute, is op zoek naar een ervaren Linux Systems Analyst om hun team van research cyber infrastructuur analisten en ingenieurs te versterken. LOCATIE: Fairbanks, Alaska, USA
APPLY NOW

Configure and Install

Voordat we ons systeem opnieuw opstarten, moeten we ons script uitvoerbaar maken:

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

Installeer vervolgens de service-eenheid systemd en schakel deze in, zodat het tijdens het opstarten wordt uitgevoerd:

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

Als u uw script wilt testen voordat u opnieuw opstart, voer uit:

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

Alles klaar. Na het herstarten van uw Linux systeem zal de bovenstaande systemd unit een shell script aanroepen dat tijdens het opstarten zal worden uitgevoerd.

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.