Ho provato a eliminare molti degli errori comuni,
assicurando che i PERCORSI siano disponibili per cron
c'è una fine alla fine del file crontab
il fuso orario è impostato da:
cd /etc cp /usr/share/zoneinfo/Asia/Singapore /etc/localtime
Correndo date
in bash, ottengo:
Tue Sep 17 15:14:30 SGT 2013
Per verificare se cron sta usando lo stesso tempo,
* * * * * date >> date.txt
sta dando lo stesso output di data in date.txt.
Questo è lo script che sto cercando di eseguire:
event.sh
:
#!/usr/bin/env bash
echo data > /root/data.txt
Utilizzando crontab -e
, la riga sotto funziona,
* * * * * /bin/bash /root/event.sh >/tmp/debug.log 2>&1
15 * * * * /bin/bash /root/event.sh >/tmp/debug.log 2>&1
Tuttavia, quando ho provato alcuni altri argomenti, sperando che funzionasse alle 2.50pm:
50 14 * * * /bin/bash /root/event.sh >/tmp/debug.log 2>&1
o
50 14 * * * (cd /root ; ./event.sh >/tmp/debug.log 2>&1)
non funzionerà più. Sembra che ci sia un problema con il mio argomento dell'ora. Nulla è stato trovato nel /tmp/debug.log
file.
SOLUZIONE:
Si è scoperto che devo riavviare il servizio cron dopo aver apportato modifiche a TZ.
* * * * * /bin/bash /root/event.sh >/tmp/debuge.log 2>&1
* * * * * date
e conferma che date
mostra il tempo previsto. Si noti che l'impostazione della variabile di ambiente TZ dall'interno del crontab potrebbe non influire sul fuso orario utilizzato dal demone cron stesso, ma influirà sui processi avviati tramite cron, quindi se si imposta TZ nel crontab suggerirei di commentarlo temporaneamente e impostare l'ora usando il fuso orario dell'orologio di sistema (probabilmente UTC se si sta avviando Linux con avvio singolo, ma potrebbe essere l'ora locale).
~/event.sh
provare con/home/username/event.sh