Ho la seguente voce nel crontab:Reindirizzare l'output di un job cron
0 5 * * * /bin/bash -l -c 'export RAILS_ENV=my_env; cd /my_folder; ./script/my_script.rb 2>&1 > ./log/my_log.log'
Il risultato di questo è che sto ricevendo l'uscita di ./script/my_script.rb
in ./log/my_log.log
. Questo comportamento è desiderato. La cosa curiosa è che sto ricevendo anche l'output nella mia posta locale. Mi chiedo come l'output del mio script venga catturato per posta. Dal momento che sto reindirizzando l'output in un file di log, mi aspetto che il mio lavoro cron non abbia output e quindi non riceverei mail quando viene eseguito il cron job. Qualcuno può far luce su come la posta è in grado di ottenere l'output di ./script/my_script.rb
?
N.B. puoi anche usare '&>' per reindirizzare entrambi contemporaneamente. Funziona in zsh e bash. – Kevin
Avevo l'impressione che la mia sintassi reindirizzasse stderr a stdout e stdout al mio file di registro, no? Puoi spiegare un po 'di più? Grazie per l'aiuto. –
Il tuo reindirizzamento stderr dovunque stdout stava andando (cioè/dev/stdout), e poi stdout al tuo file di registro. Stderr non cambia dopo il secondo reindirizzamento. Sta andando ancora a/dev/stdout. – dogbane