Ricerca nel sito web

Come eseguire automaticamente lo script della shell all'avvio su systemd Linux


Automatizzare le attività da eseguire durante l'avvio del sistema è essenziale in molti ambienti server. Questa guida tratta la configurazione di un'unità di servizio systemd per eseguire uno script di shell personalizzato all'avvio per attività come l'avvio di servizi, il controllo dello spazio su disco o la creazione di backup.

In questo tutorial imparerai:

  • Come creare un'unità di servizio systemd
  • Come scrivere uno script di shell per controllare lo spazio su disco
  • Come configurare e abilitare l'esecuzione del servizio systemd all'avvio

Unità di servizio Systemd

  1. Crea il file di servizio Systemd: inizia creando il file dell'unità di servizio systemd. Archivia il file di servizio come /etc/systemd/system/disk-space-check.service.

    [Unit]
    Description=Check Disk Space on /home directory at Startup
    After=mysql.service
    
    [Service]
    ExecStart=/usr/local/bin/disk-space-check.sh
    
    [Install]
    WantedBy=default.target
    
  2. Questo script configura un servizio che verrà eseguito dopo l'avvio del servizio MySQL, eseguendo uno script per controllare lo spazio su disco.

  3. Scrivi lo script della shell: scrivi lo script della shell che verrà eseguito dal servizio systemd. Archivia lo script come /usr/local/bin/disk-space-check.sh.

    #!/bin/bash
    echo "Checking disk space on /home directory:"
    date > /root/disk_space_report.txt
    du -sh /home/ >> /root/disk_space_report.txt
  4. Questo script scrive la data corrente in un file e vi aggiunge l'utilizzo dello spazio su disco della directory /home. data-fuse="22189504506">

  5. Imposta autorizzazioni e abilita servizio: imposta le autorizzazioni necessarie e abilita l'esecuzione del servizio systemd all'avvio.

    $ sudo chmod 744 /usr/local/bin/disk-space-check.sh
    $ sudo chmod 664 /etc/systemd/system/disk-space-check.service
    $ sudo systemctl daemon-reload
    $ sudo systemctl enable disk-space-check.service
    
  6. Questi comandi rendono eseguibile lo script, impostano le autorizzazioni appropriate per il file di servizio, ricaricano la configurazione del gestore systemd e consentono l'avvio del servizio all'avvio.

  7. Testa il servizio Systemd: verifica che lo script funzioni avviando manualmente il servizio.

    $ sudo systemctl start disk-space-check.service
    $ sudo cat /root/disk_space_report.txt
    

    Esegui il servizio manualmente utilizzando il comando systemctl start. Dopo aver eseguito il servizio, controlla il contenuto del report sullo spazio su disco visualizzando il file disk_space_report.txt situato nella directory /root/. Questo file dovrebbe contenere la data e l'utilizzo dello spazio su disco della directory /home/, confermando che lo script è stato eseguito correttamente.

  8. Test del servizio di script systemd personalizzato

Conclusione

Seguendo questi passaggi, il tuo sistema Linux eseguirà automaticamente i controlli specificati al momento dell'avvio, facilitando la manutenzione e il monitoraggio automatizzati senza richiedere l'intervento manuale.

Articoli correlati: