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.service
og 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 NUKonfigurer 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.