Domanda

Come posso impostare il mio crontab per eseguire lo script X ogni giorno alle 23:59 senza inviarmi un'e-mail o creare alcun registro?

In questo momento il mio crontab assomiglia a questo

@daily /path/to/script.sh
È stato utile?

Soluzione

Quando esegui crontab -e, prova questo:

59 23 * * * /usr/sbin/myscript > /dev/null

Questo significa:A 59 minuti e 23 ore ogni giorno (*) ogni mese ogni giorno feriale, esegui myscript.

Vedere uomo crontab per ulteriori informazioni ed esempi.

Altri suggerimenti

Seguito la risposta di svrist, a seconda della shell, 2>&1 dovrebbe andare Dopo > /dev/null oppure vedrai comunque l'output di stderr.

Quanto segue silenzierà sia stdout che stderr:

59 23 * * * /usr/sbin/myscript > /dev/null 2>&1

Il seguente silenzia stdout, ma stderr apparirà comunque (tramite stdout):

59 23 * * * /usr/sbin/myscript 2>&1 > /dev/null

Il capitolo della Advanced Bash Scripting Guide sul reindirizzamento IO è un buon riferimento: cerca 2>&1 per vedere un paio di esempi.

Con la risposta di cui sopra riceverai un'e-mail con qualsiasi testo scritto a stderr.Alcune persone reindirizzano anche quello e si assicurano che lo script scriva invece un registro.

... 2>&1 ....
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top