Cum să executați automat un script shell la pornirea de start pe systemd Linux

Configurarea următoare va discuta un exemplu de bază despre cum să executați un script shell în timpul unei porniri pe systemd Linux. Poate că există diverse motive pentru care ați putea dori să executați un script shell în timpul pornirii Linux, cum ar fi, de exemplu, să porniți un anumit serviciu personalizat, să verificați spațiul pe disc, să creați o copie de rezervă etc.
Exemplul de mai jos va servi ca un șablon de bază care va fi modificat ulterior pentru a se potrivi nevoilor dumneavoastră specifice. În exemplul de mai jos vom verifica spațiul pe disc al unui director /home/ în timpul unei porniri și vom scrie un raport în directorul /root/.

Unitatea de servicii systemd

În primul rând, trebuie să creăm un script de pornire systemd, de exemplu, disk-space-check.serviceși să îl plasăm în directorul /etc/systemd/system/. Puteți găsi exemplul unui astfel de script de pornire systemd mai jos:

After=mysql.serviceExecStart=/usr/local/bin/disk-space-check.shWantedBy=default.target
  • După: Instruiește systemd cu privire la momentul în care scriptul trebuie să fie rulat. În cazul nostru, scriptul va rula după ce baza de date mysql a pornit. Un alt exemplu ar putea fi network.target etc.
  • ExecStart: Acest câmp furnizează o cale completă a scriptului real care trebuie executat
  • WantedBy: În ce țintă de boot ar trebui să fie instalată unitatea systemd

Cele de mai sus reprezintă un minim absolut pe care unitatea noastră de serviciu systemd ar trebui să îl conțină pentru a executa scriptul nostru la boot. Pentru mai multe informații și opțiuni care trebuie folosite, consultați pagina de manual systemd.service:

$ man systemd.service

Script shell de pornire

În continuare, creăm scriptul nostru shell personalizat pentru a fi executat în timpul pornirii systemd. Locația și numele scriptului sunt deja definite de unitatea de servicii ca /usr/local/bin/disk-space-check.sh. Conținutul scriptului poate fi simplu ca:

#!/bin/bashdate > /root/disk_space_report.txtdu -sh /home/ >> /root/disk_space_report.txt
Căutăm analist de sisteme Linux !
Institutul de Geofizică al UAF, caută un analist de sisteme Linux cu experiență pentru a se alătura echipei sale de analiști și ingineri de cercetare a infrastructurii cibernetice. LOCALIZARE: Fairbanks, Alaska, SUA
APLICĂ ACUM

Configurare și instalare

Înainte de a reporni sistemul nostru, trebuie să facem scriptul nostru executabil:

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

În continuare, instalați unitatea de servicii systemd și activați-o astfel încât să fie executată la pornire:

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

Dacă doriți să testați scriptul înainte de repornire executați:

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

Totul este gata. După repornirea sistemului Linux, unitatea systemd de mai sus va invoca scriptul shell pentru a fi executat în timpul pornirii.

Lasă un răspuns

Adresa ta de email nu va fi publicată.