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