Cron invia l'output a un mailer. Se si desidera visualizzare l'output in un terminale, è possibile accedere a un file e utilizzare tail -f per visualizzare l'output nel terminale in cui si desidera visualizzare l'output
Accedi a un file
- La risposta più semplice è accedere direttamente a un file con una voce crontab come:
0 07-17 * * * /home/dat/scripts/cron.out > /path/to/log.txt 2> /path/to/error.txt
Modi alternativi per accedere:
- Se il programma è uno script in cui è possibile scrivere, è possibile modificarlo per reindirizzare l'output in un file di registro con.
echo output > log.txt
oppure puoi usare a wrapper script descritto di seguito.
- Se il tuo programma è binario o altrimenti non scrivibile, devi scrivere lo script wrapper per acquisire l'output in un file.
Esempio di programma e script wrapper:
$ cat program.sh wrapper.sh
#!/bin/bash
# sample program
echo "arg 1=$1 arg2=$2 arg3=$3"
echo "sample error" >&2
#!/bin/bash
# sample wrapper
exec ./program.sh "$@" >log.txt 2> error.txt
Esempio di esecuzione 1:
$ ./wrapper.sh 1 2 3 ; cat error.txt log.txt
sample error
arg 1=1 arg2=2 arg3=3
Esempio di esecuzione 2:
$ ./wrapper.sh "A B C" D E ; cat error.txt log.txt
sample error
arg 1=A B C arg2=D arg3=E
Visualizza output nel terminale:
Ora che si registra sia un errore standard che un errore standard in un file, in qualsiasi terminale, è possibile eseguire tail -f
uno o entrambi i file come tail -f log.txt
o tail -f log.txt error.txt
così che tail controllerà o piuttosto seguirà il file per le modifiche. man-page di coda
$ tail -f log.txt error.txt
==> log.txt <==
arg 1=1 arg2=2 arg3=3
==> error.txt <==
sample error
Registrazione dei file aggiunti in seguito:
Se successivamente log.txt o error.txt vengono aggiunti dal tuo programma o da un altro terminale simile $ echo "more output" >> log.txt
, l'output viene visualizzato sul terminale in esecuzione$ tail -f log.txt error.txt
==> log.txt <==
more output
Inoltre, si $ echo code red >> error.txt
traduce in:
==> error.txt <==
code red