Come eseguire automaticamente uno script di shell all’avvio su systemd Linux

La seguente configurazione discuterà un esempio di base su come eseguire uno script di shell durante l’avvio su systemd Linux. Ci possono essere varie ragioni per cui si potrebbe voler eseguire uno script di shell durante l’avvio di Linux, come ad esempio per avviare un particolare servizio personalizzato, controllare lo spazio su disco, creare un backup ecc.
Il seguente esempio servirà come modello di base da modificare in seguito per soddisfare le vostre esigenze specifiche. Nell’esempio seguente controlleremo lo spazio su disco di una directory /home/ durante il tempo di avvio e scriveremo un rapporto nella directory /root/.

Unità di servizio systemd

Prima di tutto, abbiamo bisogno di creare uno script di avvio systemd, ad esempio disk-space-check.service, e metterlo nella directory /etc/systemd/system/. Potete trovare l’esempio di tale script di avvio di systemd qui sotto:

After=mysql.serviceExecStart=/usr/local/bin/disk-space-check.shWantedBy=default.target
  • Dopo: Indica a systemd quando lo script dovrebbe essere eseguito. Nel nostro caso lo script verrà eseguito dopo l’avvio del database mysql. Altri esempi potrebbero essere network.target ecc.
  • ExecStart: Questo campo fornisce un percorso completo dello script attuale da eseguire
  • WantedBy: In quale destinazione di avvio l’unità systemd dovrebbe essere installata

Quanto sopra è un minimo assoluto che la nostra unità di servizio systemd dovrebbe contenere per poter eseguire il nostro script all’avvio. Per ulteriori informazioni e opzioni da utilizzare, vedere la pagina di manuale systemd.service:

$ man systemd.service

Script di shell all’avvio

In seguito, creiamo il nostro script di shell personalizzato da eseguire all’avvio di systemd. La posizione e il nome dello script sono già definiti dalla service unit come /usr/local/bin/disk-space-check.sh. Il contenuto dello script può essere semplice come:

#!/bin/bashdate > /root/disk_space_report.txtdu -sh /home/ >> /root/disk_space_report.txt
Cercasi Analista Sistemi Linux !
L’Istituto Geofisico UAF, è alla ricerca di un analista di sistemi Linux con esperienza per unirsi al loro team di analisti e ingegneri di infrastrutture informatiche di ricerca. LOCATION: Fairbanks, Alaska, USA
APPLY NOW

Configura e installa

Prima di riavviare il nostro sistema dobbiamo rendere il nostro script eseguibile:

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

Poi, installate il servizio systemd e abilitatelo in modo che venga eseguito all’avvio:

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

Se volete testare il vostro script prima del riavvio eseguitelo:

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

Tutto pronto. Dopo aver riavviato il sistema Linux, l’unità systemd di cui sopra invocherà lo script di shell da eseguire durante l’avvio.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.