Home Hardware Networking Programmazione Software Domanda Sistemi
Conoscenza del computer >> sistemi >> Unix >> .

Come è gestito periodicamente un lavoro nel sistema UNIX?

Esistono diversi modi per svolgere periodicamente un lavoro in un sistema UNIX. Ecco una ripartizione dei metodi più comuni e delle loro differenze:

1. Crrontab

* Scopo: Il metodo più utilizzato per la pianificazione delle attività. Ti consente di definire le pianificazioni per comandi e script per eseguire in momenti o intervalli specifici.

* Come funziona:

* Crei un file Crrontab, in genere nella tua home directory (`crontab -e`), che contiene linee con le informazioni di pianificazione e il comando da eseguire.

* Ogni riga ha sei campi che rappresentano:minuto, ora, giorno, mese, giorno della settimana e comando.

* Puoi usare caratteri jolly (`*`, `?`, `-`,`/`) per rappresentare gamme di valori per questi campi.

* Esempio:

`` `Bash

# Esegui uno script ogni giorno alle 3:00

0 3 * * * /path/to/your/script.sh

# Esegui un comando ogni 5 minuti

*/5 * * * * echo "in esecuzione ogni 5 minuti"

`` `

* Pro:

* Opzioni di pianificazione flessibili.

* Semplice e ben documentato.

* Può essere utilizzato per un'ampia varietà di compiti.

* Contro:

* Richiede l'accesso alla radice per modificare il crontab a livello di sistema.

* Richiede un demone Cron in esecuzione in background.

* Può essere difficile gestire programmi complessi.

2. al comando

* Scopo: Utilizzato per la pianificazione delle attività da eseguire in un momento futuro specifico.

* Come funziona:

* Usa il comando `AT` con un tempo di timestamp o un tempo relativo (ad esempio," domani alle 17:00 ").

* Inserisci il comando o lo script che si desidera eseguire.

* Il sistema memorizza il lavoro ed lo esegue al momento specificato.

* Esempio:

`` `Bash

# Esegui una sceneggiatura domani alle 10:00

Domani alle 10:00

`` `

* Pro:

* Facile da usare per attività una tantum.

* Non richiede la creazione di una voce di Crrontab.

* Contro:

* Solo per esecuzioni future singole, non lavori ricorrenti.

* Opzioni di pianificazione limitate rispetto a Crrontab.

3. SystemD Timer

* Scopo: Le moderne distribuzioni Linux basate su SystemD offrono un approccio sofisticato alla pianificazione di lavori.

* Come funziona:

* Crea un file di unità di servizio (`/etc/systemd/system/your-job.timer`) con le informazioni di pianificazione.

* Il servizio `SystemD-Timerd` monitora queste unità timer e innesca i servizi corrispondenti nei tempi specificati.

* Esempio:

`` `Bash

[Unità]

Descrizione =Esegui uno script ogni ora

After =Network-Online.target

[Timer]

Oncalendar =*-*-*00:00:00

OnactiveSec =3600

[Servizio]

Tipo =semplice

Utente =il tuo utente

ExecStart =/path/to/your/script.sh

`` `

* Pro:

* Integrato con SystemD, offrendo vaste funzionalità.

* Più robusto ed efficiente di Crrontab.

* Consente opzioni di pianificazione flessibili, inclusi fusi orari e pianificazione relativa.

* Contro:

* Richiede familiarità con i file di unità di sistema.

* Non ampiamente usato come Crrontab, ma guadagnando popolarità.

4. Anacron

* Scopo: Utilizzato per lavori che devono essere eseguiti periodicamente anche se il sistema non è in esecuzione al momento previsto.

* Come funziona:

* `Anacron` Controlli per lavori programmati in`/etc/anacrontAb`.

* Se il sistema non era in esecuzione al momento previsto, esegue il lavoro quando si riavvia.

* Esempio:

`` `Bash

# Esegui uno script ogni 3 giorni

3 12 * * * /path/to/your/script.sh

`` `

* Pro:

* Garantisce che i lavori siano eseguiti anche se il sistema non è al momento previsto.

* Contro:

* Pianificazione meno flessibile di Crrontab.

* Non sempre necessario se il sistema è costantemente in esecuzione.

Scegliere il metodo giusto:

* Crrontab: Per attività ricorrenti con tempi e intervalli specifici.

* a: Per attività una tantum in un momento futuro specifico.

* Timer SystemD: Per i sistemi moderni con SystemD, offrendo opzioni di pianificazione avanzate.

* Anacron: Per i lavori che devono essere eseguiti anche se il sistema non era in esecuzione al momento previsto.

Ricorda sempre di testare accuratamente i lavori programmati per assicurarti che siano previsti ed evitare eventuali conflitti potenziali.

 

sistemi © www.354353.com