Linux Professional Institute Learning Logo.
Torna al contenuto principale
  • Home
    • Tutte le Risorse
    • LPI Learning Materials
    • Collabora
    • Publishing Partner
    • Diventa un Publishing Partner
    • FAQ
    • Collaboratori
    • Contatto
  • LPI.org
107.2 Lezione 1
Argomento 105: Shell e Script di Shell
105.1 Personalizzare e utilizzare l'ambiente di shell
  • 105.1 Lezione 1
  • 105.1 Lezione 2
  • 105.1 Lezione 3
105.2 Personalizzare o scrivere semplici script
  • 105.2 Lezione 1
  • 105.2 Lezione 2
Argomento 106: Interfacce Utente e Desktop
106.1 Installare e configurare X11
  • 106.1 Lezione 1
106.2 Desktop grafici
  • 106.2 Lezione 1
106.3 Accessibilità
  • 106.3 Lezione 1
Argomento 107: Attività Amministrative
107.1 Gestire account utente e gruppo e file di sistema correlati
  • 107.1 Lezione 1
  • 107.1 Lezione 2
107.2 Automatizzare le attività di amministrazione del sistema attraverso la pianificazione
  • 107.2 Lezione 1
  • 107.2 Lezione 2
107.3 Localizzazione e internazionalizzazione
  • 107.3 Lezione 1
Argomento 108: Servizi Essenziali di Sistema
108.1 Mantenere l'orario di sistema
  • 108.1 Lezione 1
  • 108.1 Lezione 2
108.2 Logging di sistema
  • 108.2 Lezione 1
  • 108.2 Lezione 2
108.3 Concetti base dei Mail Transfer Agent (MTA)
  • 108.3 Lezione 1
108.4 Gestire stampa e stampanti
  • 108.4 Lezione 1
Argomento 109: Fondamenti di Networking
109.1 Fondamenti dei protocolli Internet
  • 109.1 Lezione 1
  • 109.1 Lezione 2
109.2 Configurazione di rete persistente
  • 109.2 Lezione 1
  • 109.2 Lezione 2
109.3 Risoluzione dei problemi di base di una rete
  • 109.3 Lezione 1
  • 109.3 Lezione 2
109.4 Configurare un client DNS
  • 109.4 Lezione 1
Argomento 110: Sicurezza
110.1 Eseguire attività di amministrazione della sicurezza
  • 110.1 Lezione 1
110.2 Configurare la sicurezza dell'host
  • 110.2 Lezione 1
110.3 Proteggere i dati con la crittografia
  • 110.3 Lezione 1
  • 110.3 Lezione 2
How to get certified
  1. Argomento 107: Attività Amministrative
  2. 107.2 Automatizzare le attività di amministrazione del sistema attraverso la pianificazione
  3. 107.2 Lezione 1

107.2 Lezione 1

Certificazione:

LPIC-1

Versione:

5.0

Argomento:

107 Attività Amministrative

Obiettivo:

107.2 Automatizzare le attività di amministrazione del sistema attraverso la pianificazione

Lezione:

1 di 2

Introduzione

Uno dei compiti più importanti di un buon amministratore di sistema è quello di programmare i job che devono essere eseguiti regolarmente. Per esempio, un amministratore può creare e automatizzare job per i backup, gli aggiornamenti del sistema e l’esecuzione di molte altre attività ripetitive. Per fare questo si può usare la funzione cron, che è utile per automatizzare la programmazione di job periodici.

Pianificare i Lavori con Cron

In Linux, cron è un demone che è in esecuzione continua e ogni minuto controlla un insieme di tabelle per trovare compiti da eseguire. Queste tabelle sono note come crontabs e contengono i cosiddetti cron jobs. Cron è adatto a server e sistemi che sono costantemente accesi, perché ogni lavoro cron viene eseguito solo se il sistema è in funzione all’ora prevista. Può essere usato dagli utenti ordinari, ognuno dei quali ha il proprio crontab, così come l’utente root che gestisce i crontab di sistema.

Note

In Linux c’è anche la funzione anacron, che è adatta a sistemi che possono essere spenti (come desktop o laptop). Può essere usata solo da root. Se la macchina è spenta quando i lavori anacron devono essere eseguiti, saranno eseguiti la prossima volta che la macchina sarà accesa. anacron è fuori dallo scopo della certificazione LPIC-1.

Crontab Utente

I crontab utente sono file di testo che gestiscono la programmazione di lavori cron definiti dall’utente. Hanno sempre il nome dell’account utente che li ha creati, ma la posizione di questi file dipende dalla distribuzione utilizzata (generalmente una sottodirectory di /var/spool/cron).

Ogni linea in un crontab utente contiene sei campi separati da uno spazio:

  • Il minuto dell’ora (0-59).

  • L’ora del giorno (0-23).

  • Il giorno del mese (1-31).

  • Il mese dell’anno (1-12).

  • Il giorno della settimana (0-7 con domenica=0 o domenica=7).

  • Il comando da eseguire.

Per il mese dell’anno e il giorno della settimana puoi usare le prime tre lettere del nome invece del numero corrispondente.

I primi cinque campi indicano quando eseguire il comando specificato nel sesto campo e possono contenere uno o più valori. In particolare, è possibile specificare più valori utilizzando:

* (asterisco)

Si riferisce a qualsiasi valore.

, (virgola)

Specifica una lista di valori possibili.

- (trattino)

Specifica un intervallo di valori possibili.

/ (slash)

Specifica valori spezzati.

Molte distribuzioni includono il file /etc/crontab che può essere usato come riferimento per il layout di un file cron. Ecco un esempio di file /etc/crontab da un’installazione Debian:

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name command to be executed

Crontab di Sistema

I crontab di sistema sono file di testo che gestiscono la programmazione dei cron job di sistema e possono essere modificati solo dall’utente root. /etc/crontab e tutti i file nella directory /etc/cron.d sono crontab di sistema.

Molte distribuzioni includono anche le directory /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly e /etc/cron.monthly che contengono script da eseguire con la frequenza appropriata. Per esempio, se vuoi eseguire uno script ogni giorno puoi metterlo in /etc/cron.daily.

Warning

Alcune distribuzioni usano /etc/cron.d/hourly, /etc/cron.d/daily, /etc/cron.d/weekly e /etc/cron.d/monthly. Ricordati sempre di controllare le directory corrette in cui inserire gli script che vorresti far eseguire da cron.

La sintassi dei crontab di sistema è simile a quella dei crontab utente, tuttavia richiede anche un ulteriore campo obbligatorio che specifica quale utente eseguirà il cron job. Pertanto, ogni linea in un crontab di sistema contiene sette campi separati da uno spazio:

  • Il minuto dell’ora (0-59).

  • L’ora del giorno (0-23).

  • Il giorno del mese (1-31).

  • Il mese dell’anno (1-12).

  • Il giorno della settimana (0-7 con domenica=0 o domenica=7).

  • Il nome dell’account utente che esegue il comando.

  • Il comando da eseguire.

Come per i crontab utente, è possibile specificare valori multipli per i campi dell’ora usando gli operatori *, , , - e /. È possibile anche indicare il mese dell’anno e il giorno della settimana con le prime tre lettere del nome invece del numero corrispondente.

Particolari Specifiche di Tempo

Quando si modificano i file crontab, si possono anche usare scorciatoie speciali nelle prime cinque colonne al posto delle specifiche di tempo:

@reboot

Esegue il compito specificato una volta dopo il riavvio.

@hourly

Esegue il task specificato una volta all’ora all’inizio dell’ora.

@daily (o @midnight)

Esegue il task specificato una volta al giorno a mezzanotte.

@weekly

Esegue il task specificato una volta alla settimana alla mezzanotte della domenica.

@monthly

Esegue il task specificato una volta al mese alla mezzanotte del primo giorno del mese.

@yearly (o @annually)

Esegue il task specificato una volta all’anno alla mezzanotte del 1° Gennaio.

Variabili Crontab

All’interno di un file crontab, ci sono talvolta assegnazioni di variabili definite prima che i compiti programmati siano dichiarati. Le variabili d’ambiente comunemente impostate sono:

HOME

La directory dove cron invoca i comandi (di default la home directory dell’utente).

MAILTO

Il nome dell’utente o l’indirizzo a cui lo standard output ed error sono inviati per posta (di default il proprietario di crontab). Sono ammessi anche valori multipli separati da virgola e un valore vuoto indica che non deve essere inviata alcun messaggio.

PATH

Il percorso dove i comandi possono essere trovati.

SHELL

La shell da usare (di default /bin/sh).

Creare Attività di Cron Utente

Il comando crontab è usato per mantenere i file crontab per i singoli utenti. In particolare, è possibile eseguire il comando crontab -e per modificare il proprio file crontab o per crearne uno se non esiste già.

$ crontab -e
no crontab for frank - using an empty one

Select an editor.  To change later, run 'select-editor'.
  1. /bin/ed
  2. /bin/nano        < ‑‑‑‑ easiest
  3. /usr/bin/emacs24
  4. /usr/bin/vim.tiny

Choose 1-4 [2]:

Per impostazione predefinita, il comando crontab apre l’editor specificato dalle variabili d’ambiente VISUAL o EDITOR, così puoi iniziare a modificare il tuo file crontab con l’editor preferito. Alcune distribuzioni, come mostrato nell’esempio sopra, ti permettono di scegliere l’editor da una lista quando crontab viene eseguito per la prima volta.

Se vuoi eseguire lo script foo.sh situato nella tua directory home ogni giorno alle 10:00, puoi aggiungere la seguente linea al tuo file crontab:

0 10 * * * /home/frank/foo.sh

Considerate le seguenti voci di crontab di esempio:

0,15,30,45 08 * * 2 /home/frank/bar.sh
30 20 1-15 1,6 1-5 /home/frank/foobar.sh

Nella prima linea lo script bar.sh viene eseguito ogni martedì alle 08:00, alle 08:15, alle 08:30 e alle 08:45. Nella seconda linea lo script foobar.sh viene eseguito alle 08:30 da lunedì a venerdì per i primi quindici giorni di gennaio e giugno.

Warning

Anche se i file crontab possono essere modificati manualmente, si raccomanda sempre di usare il comando crontab. I permessi sui file crontab di solito permettono modifiche solo tramite il comando crontab.

Oltre all’opzione -e menzionata sopra, il comando crontab ha altre opzioni utili:

-l

Visualizza il crontab corrente sullo standard output.

-r

Rimuove il crontab corrente.

-u

Specifica il nome dell’utente il cui crontab deve essere modificato. Questa opzione richiede i privilegi di root e permette all’utente root di modificare i file crontab degli utenti.

Creare Attività di Cron di Sistema

A differenza dei crontab degli utenti, i crontab di sistema sono aggiornati usando un editor: quindi non è necessario eseguire il comando crontab per modificare /etc/crontab e i file in /etc/cron.d. Ricorda che, quando modifichi i crontab di sistema, devi specificare l’account che sarà usato per eseguire il cron job (di solito l’utente root).

Per esempio: se vuoi eseguire lo script barfoo.sh situato nella directory /root ogni giorno alle 01:30, puoi aprire /etc/crontab con il tuo editor preferito e aggiungere la seguente linea:

30 01 * * * root /root/barfoo.sh >>/root/output.log 2>>/root/error.log

Nell’esempio precedente, lo standard output del lavoro viene aggiunto a /root/output.log, mentre gli errori vengono aggiunti a /root/error.log.

Warning

A meno che l’output sia reindirizzato a un file come nell’esempio precedente (o la variabile MAILTO sia impostata su un valore vuoto), tutto l’output di un cron job sarà inviato all’utente via e-mail. Una pratica comune è quella di reindirizzare l’output standard a /dev/null (o a un file per una revisione successiva, se necessario) e di non reindirizzare lo standard error. In questo modo l’utente sarà avvisato immediatamente via e-mail di qualsiasi errore.

Configurare l’Accesso alla Pianificazione delle Attività

In Linux i file /etc/cron.allow e /etc/cron.deny sono usati per impostare le restrizioni di crontab. In particolare, sono usati per permettere o meno la pianificazione delle attività cron agli utenti. Se /etc/cron.allow esiste, solo gli utenti non root elencati al suo interno possono creare cron job usando il comando crontab. Se /etc/cron.allow non esiste ma esiste /etc/cron.deny, solo gli utenti non-root elencati in questo file non possono creare cron job usando il comando crontab (in questo caso un /etc/cron.deny vuoto significa che ogni utente è autorizzato). Se nessuno di questi file esiste, l’accesso dell’utente alla pianificazione delle attività di cron dipende dalla distribuzione usata.

Note

I file /etc/cron.allow e /etc/cron.deny contengono una lista di nomi utente, ognuno su una linea separata.

Una Alternativa a Cron

Usando systemd come gestore di sistemi e servizi, puoi impostare timers come alternativa a cron per pianificare delle attività. I timer sono file di unità di systemd identificati dal suffisso .timer, e per ognuno di questi deve esserci un corrispondente file di unità che descrive l’unità da attivare allo scadere del timer. Per impostazione predefinita, un timer attiva un servizio con lo stesso nome, tranne che per il suffisso.

Un timer include una sezione [Timer] che specifica quando le attività programmate dovrebbero essere eseguite. In particolare, si può usare l’opzione OnCalendar= per definire dei temporizzatori in tempo reale che funzionano allo stesso modo dei cron job (sono basati su espressioni di eventi del calendario). L’opzione OnCalendar= richiede la seguente sintassi:

DayOfWeek Year-Month-Day Hour:Minute:Second

con DayOfWeek opzionale. Gli operatori *, / e , hanno lo stesso significato di quelli usati per i cron job, mentre puoi usare .. tra due valori per indicare un intervallo contiguo. Per la specifiche di DayOfWeek, puoi usare le prime tre lettere del nome o il nome completo.

Note

È possibile anche definire dei temporizzatori monotonici che si attivano dopo che è trascorso un certo tempo da un punto di partenza specifico (per esempio, quando la macchina è stata avviata o quando il timer stesso viene attivato).

Per esempio, se vuoi eseguire il servizio chiamato /etc/systemd/system/foobar.service alle 05:30 del primo lunedì di ogni mese, puoi aggiungere le seguenti linee nel corrispondente file /etc/systemd/system/foobar.timer.

[Unit]
Description=Run the foobar service

[Timer]
OnCalendar=Mon *-*-1..7 05:30:00
Persistent=true

[Install]
WantedBy=timers.target

Una volta creato il nuovo timer, puoi abilitarlo e avviarlo eseguendo i seguenti comandi come root:

# systemctl enable foobar.timer
# systemctl start foobar.timer

Puoi cambiare la frequenza del tuo lavoro programmato, modificando il valore OnCalendar e poi digitando il comando systemctl daemon-reload.

Infine, se vuoi vedere la lista dei timer attivi ordinati in base al tempo, puoi usare il comando systemctl list-timers. Puoi aggiungere l’opzione --all per vedere anche i timer inattivi.

Note

Ricorda che i timer sono registrati nel journal di systemd e puoi rivedere i log delle diverse unità usando il comando journalctl. Ricorda anche che se stai agendo come utente ordinario, devi usare l’opzione --user dei comandi systemctl e journalctl.

Invece della forma normalizzata più lunga di cui sopra, si possono usare alcune espressioni speciali che descrivono particolari frequenze di esecuzione dell’attività:

hourly

Esegue il compito specificato una volta all’ora all’inizio dell’ora.

daily

Esegue il task specificato una volta al giorno a mezzanotte.

weekly

Esegue l’attività specificata una volta alla settimana alla mezzanotte del lunedì.

monthly

Esegue l’attività specificata una volta al mese alla mezzanotte del primo giorno del mese.

yearly

Esegue l’attività specificata una volta all’anno alla mezzanotte del primo giorno di gennaio.

Puoi vedere le pagine del manuale per la lista completa delle specifiche di ora e data in systemd.timer(5).

Esercizi Guidati

  1. Per ciascuna delle seguenti scorciatoie crontab, indicare la specifica temporale corrispondente (cioè le prime cinque colonne in un file crontab utente):

    @hourly

    @daily

    @weekly

    @monthly

    @annually

  2. Per ciascuna delle seguenti scorciatoie OnCalendar, indicare la specifica temporale corrispondente (la forma normalizzata più lunga):

    hourly

    daily

    weekly

    monthly

    yearly

  3. Spiega il significato delle seguenti specifiche temporali che si trovano in un file crontab:

    30 13 * * 1-5

    00 09-18 * * *

    30 08 1 1 *

    0,20,40 11 * * Sun

    00 09 10-20 1-3 *

    */20 * * * *

  4. Spiega il significato delle seguenti specifiche temporali usate nell’opzione OnCalendar di un file timer:

    *-*-* 08:30:00

    Sat,Sun *-*-* 05:00:00

    *-*-01 13:15,30,45:00

    Fri *-09..12-* 16:20:00

    Mon,Tue *-*-1,15 08:30:00

    *-*-* *:00/05:00

Esercizi Esplorativi

  1. Supponendo che tu sia autorizzato a pianificate attività con cron come utente ordinario, quale comando useresti per creare il tuo file crontab?

  2. Crea un semplice lavoro pianificato che esegua il comando date ogni venerdì alle 01:00 pm. Dove puoi vedere l’output di questo lavoro?

  3. Crea un altro lavoro pianificato che esegua lo script foobar.sh ogni minuto, reindirizzando l’output al file output.log nella tua home directory in modo che solo lo standard error ti venga inviato per e-mail.

  4. Guarda la voce crontab dell’attività pianificata appena creata. Perché non è necessario specificare il percorso assoluto del file in cui viene salvato lo standard output ? E perché puoi usare il comando ./foobar.sh per eseguire lo script?

  5. Modifica la voce precedente di crontab rimuovendo il reindirizzamento dell’output e disabilita il primo cron job che hai creato.

  6. Come puoi inviare lo standard output ed error del tuo lavoro pianificato all’account utente emma via e-mail? E come si può invece evitarlo?

  7. Esegui il comando ls -l /usr/bin/crontab. Quale bit speciale è impostato e qual è il suo significato?

Sommario

In questa lezione abbiamo imparato:

  • Usare cron per eseguire attività a intervalli regolari.

  • Gestire i lavori cron.

  • Configurare l’accesso degli utenti alla pianificazione dei lavori cron.

  • Comprendere il ruolo dei timer di systemd come alternativa a cron.

I seguenti comandi e file sono stati discussi in questa lezione:

crontab

Mantiene i file crontab per i singoli utenti.

/etc/cron.allow e /etc/cron.deny

File particolari usati per impostare le restrizioni di crontab.

/etc/crontab

File crontab di sistema.

/etc/cron.d

La directory che contiene i file crontab di sistema.

systemctl

Controlla systemd e il gestore dei servizi. In relazione ai timer, può essere usato per abilitarli e avviarli.

Risposte agli Esercizi Guidati

  1. Per ciascuna delle seguenti scorciatoie crontab, indicare la specifica temporale corrispondente (cioè le prime cinque colonne in un file crontab utente):

    @hourly

    0 * * * *

    @daily

    0 0 * * *

    @weekly

    0 0 * * 0

    @monthly

    0 0 1 * *

    @annually

    0 0 1 1 *

  2. Per ciascuna delle seguenti scorciatoie OnCalendar, indicare la specifica temporale corrispondente (la forma normalizzata più lunga):

    hourly

    *-*-* *:00:00

    daily

    *-*-* 00:00:00

    weekly

    Mon *-*-* 00:00:00

    monthly

    *-*-01 00:00:00

    yearly

    *-01-01 00:00:00

  3. Spiega il significato delle seguenti specifiche temporali per un file crontab:

    30 13 * * 1-5

    Alle 01:30 pm tutti i giorni della settimana da lunedì a venerdì

    00 09-18 * * *

    Ogni giorno e ogni ora dalle 09.00 am alle 06.00 pm

    30 08 1 1 *

    Alle 08:30 am del primo giorno di gennaio

    0,20,40 11 * * Sun

    Ogni domenica alle 11:00, 11:20 e 11:40 am

    00 09 10-20 1-3 *

    Alle 09:00 am dal 10 al 20 gennaio, febbraio e marzo

    */20 * * * *

    Ogni 20 minuti

  4. Spiega il significato delle seguenti specifiche temporali usate nell’opzione OnCalendar di un file timer:

    *-*-* 08:30:00

    Ogni giorno alle 08:30 am

    Sat,Sun *-*-* 05:00:00

    Alle 05:00 am il sabato e la domenica

    *-*-01 13:15,30,45:00

    Alle 01:15 pm, 01:30 pm e 01:45 pm il primo giorno del mese

    Fri *-09..12-* 16:20:00

    Alle 04:20 pm tutti i venerdì a settembre, ottobre, novembre e dicembre

    Mon,Tue *-*-1,15 08:30:00

    Alle 08.30 am il primo e il quindicesimo giorno di ogni mese solo se il giorno è un lunedì o un martedì

    *-*-* *:00/05:00

    Ogni 5 minuti

Risposte agli Esercizi Esplorativi

  1. Supponendo che tu sia autorizzato a pianificate attività con cron come utente ordinario, quale comando useresti per creare il tuo file crontab?

    dave@hostname ~ $ crontab -e
    no crontab for dave - using an empty one
    
    Select an editor.  To change later, run 'select-editor'.
      1. /bin/ed
      2. /bin/nano        < ---- easiest
      3. /usr/bin/emacs24
      4. /usr/bin/vim.tiny
    
    Choose 1-4 [2]:
  2. Crea un semplice lavoro pianificato che esegua il comando date ogni venerdì alle 01:00 pm. Dove puoi vedere l’output di questo lavoro?

    00 13 * * 5 date

    L’output viene inviato per posta all’utente; per visualizzarlo, puoi usare il comando mail.

  3. Crea un altro lavoro pianificato che esegua lo script foobar.sh ogni minuto, reindirizzando l’output al file output.log nella tua home directory in modo che solo lo standard error ti venga inviato per e-mail.

    */1 * * * * ./foobar.sh >> output.log
  4. Guarda la voce crontab dell’attività pianificata appena creata. Perché non è necessario specificare il percorso assoluto del file in cui viene salvato lo standard output ? E perché puoi usare il comando ./foobar.sh per eseguire lo script?

    cron invoca i comandi dalla home directory dell’utente, a meno che un’altra posizione sia specificata dalla variabile d’ambiente HOME all’interno del file crontab. Per questo motivo, puoi usare il percorso relativo del file di output ed eseguire lo script con ./foobar.sh.

  5. Modifica la voce precedente di crontab rimuovendo il reindirizzamento dell’output e disabilita il primo cron job che hai creato.

    #00 13 * * 5 date
    */1 * * * * ./foobar.sh

    Per disabilitare un cron job, puoi semplicemente commentare la linea corrispondente nel file crontab.

  6. Come puoi inviare lo standard output ed error del tuo lavoro pianificato all’account utente emma via e-mail? E come si può invece evitarlo?

    Per inviare lo standard output ed error, devi impostare la variabile d’ambiente MAILTO nel tuo file crontab come segue:

    MAILTO="emma"

    Per dire a cron che non deve essere inviata alcuna mail, puoi assegnare un valore vuoto alla variabile d’ambiente MAILTO.

    MAILTO=""
  7. Esegui il comando ls -l /usr/bin/crontab. Quale bit speciale è impostato e qual è il suo significato?

    $ ls -l /usr/bin/crontab
    -rwxr-sr-x 1 root crontab 25104 feb 10  2015 /usr/bin/crontab

    Il comando crontab ha il bit SGID impostato (il carattere s al posto del flag eseguibile per il gruppo), il che significa che viene eseguito con i privilegi del gruppo (quindi crontab). Questo è il motivo per cui gli utenti ordinari possono modificare il loro file crontab usando il comando crontab. Si noti che molte distribuzioni hanno i permessi sui file impostati in modo tale che i file crontab possano essere modificati solo tramite il comando crontab.

Linux Professional Institute Inc. Tutti i diritti riservati. Visita il sito Learning Materials: https://learning.lpi.org
Quest'opera è sotto la licenza 'Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License'.

Prossima Lezione

107.2 Automatizzare le attività di amministrazione del sistema attraverso la pianificazione (107.2 Lezione 2)

Leggi la prossima Lezione

Linux Professional Institute Inc. Tutti i diritti riservati. Visita il sito Learning Materials: https://learning.lpi.org
Quest'opera è sotto la licenza 'Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License'.

LPI è una organizzazione non-profit.

© 2023 Linux Professional Institute (LPI) è lo standard di certificazione globale e l'organizzazione di supporto alla carriera per i Professionisti Open Source. Con più di 200,000 titolari di Certificazione, è il primo e il più grande ente di Certificazione Open Source e Linux vendor-neutral. LPI ha professionisti certificati in oltre 180 Paesi, offre i suoi Esami in più lingue e ha centinaia di Partner di formazione in tutto il mondo.

La nostra missione è promuovere l'uso dell'Open Source supportando le persone che vi lavorano.

  • LinkedIn
  • flogo-RGB-HEX-Blk-58 Facebook
  • Twitter
  • Contattaci
  • Privacy & Cookie Policy

Trovato un errore? Per favore scrivi a contattaci.

© 1999–2023 The Linux Professional Institute Inc. Tutti i diritti riservati.