Domanda

So che il comportamento predefinito di cron è quello di inviare output normali e di errore alla casella di posta elettronica locale del proprietario di cron.

Esistono altri modi per ottenere questi risultati (ad esempio inviarli via e-mail a un gruppo di persone, memorizzarli da qualche parte e così via)?

È stato utile?

Soluzione

Potresti inserire il reindirizzamento dei file sul comando mostrato o sul comando effettivo nel crontab sia per stdout che per stderr - like command > /tmp/log.txt 2>&1 .

Se desideri che più utenti ricevano questo registro, puoi inserire un file MAILTO=nameofmailinglist nella parte superiore del file cron.

Altri suggerimenti

Per inviare tramite e-mail l'output a un indirizzo e-mail diverso è sufficiente aggiungere la riga

MAILTO="user@example.com"

Al crontab prima del comando

La riga cron è proprio come qualsiasi altra riga di comando Unix, quindi puoi reindirizzare l'output su un altro programma.Cioè.

* * * * * /path/my/command > /my/email/script 2&>1

Questa potrebbe essere un'aggiunta non necessaria, ma per qualificare i comandi di reindirizzamento:

> reindirizza l'output standard

2 è un termine specifico della Bourne Shell che significa errore standard

1 è un termine specifico della Bourne Shell che significa output standard

2>&1 significa reindirizzare l'errore standard sull'output standard

Vedi anche il seguente articolo utile Reindirizzamento standard di input e output

Per quanto mi risulta hai tre opzioni:

  1. Reindirizzare l'output:in un file o in un programma che invierà via email i risultati come li desideri
  2. Usa MAILTO in cron e reindirizza l'e-mail a qualsiasi altro indirizzo singolo per tutti i tuoi lavori cron.
  3. Esegui il reindirizzamento nel tuo server o client di posta, dopo che cron lo ha inviato.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top