Cron Job non in esecuzione?

19

Ho un file crontab simile a questo:

* * * * * /home/abliskovs/update/update.sh

Tuttavia quando controllo il syslog per le prove che il lavoro è stato eseguito, non c'è nulla che possa indicare che sia mai stato pubblicato. Come posso verificare se è in esecuzione?

crontab -l restituisce quanto segue:

* * * * * /home/abliskovs/update/update.sh

    
posta Alex Bliskovsky 06.01.2012 - 15:52

3 risposte

18
  

Aggiungi un & gt; & gt; /tmp/testlog.log alla fine della tua voce crontab (per reindirizzare   uscita in un file puoi indagare o controllare se è in esecuzione,   inoltre un 2 & gt; & amp; 1 includerà l'output dalla console degli errori)

Esempio

  

0 * * * * /home/abliskovs/update/update.sh 2 & gt; & amp; 1 /tmp/testlog.log

Assicurati anche i seguenti:

  • Aggiungi cronjobs in modo corretto. se hai usato crontab -e nel tuo account, gli script vengono eseguiti con il tuo utente (e quindi la voce crontab ha un campo in meno - l'utente per eseguirlo, così com'è conosciuto). Se hai semplicemente copiato il tuo sopra tagliato a /etc/cron.d, esso fallirebbe come non hai specificato un utente (o piuttosto come trova no utente chiamato "bash").
  • Assicurati che il file di script sia eseguibile, altrimenti non lo farà eseguilo.
  • Ricarica i lavori cron sudo service reload , oppure riavvia il cron service sudo /etc/init.d/cron restart

Come rendere un file eseguibile?

Diversi modi per rendere eseguibile il file

chmod +x /home/abliskovs/update/update.sh 

chmod -R 0755 /home/abliskovs/update/update.sh

chmod a+x /home/abliskovs/update/update.sh
    
risposta data Md Mahbubur Rahman 11.11.2012 - 05:06
3

Assicurati che il file di script sia eseguibile {chmod 755} altrimenti non lo eseguirà

    
risposta data user25 19.01.2012 - 23:34
0

Lo script di shell update.sh contiene probabilmente degli errori, ad esempio alcuni comandi che non possono essere eseguiti perché il comando non può essere trovato. In questo caso può essere utile aggiungere il percorso al comando nella variabile PATH o aggiungerlo direttamente davanti al comando. Aiuta anche a specificare l'indirizzo di posta elettronica MAILTO, le e-mail che risultano dall'esecuzione di Cronjobs vengono inviate a questo indirizzo

PATH=/path/to/your/command:/another/important/path
[email protected]_domain 

Puoi anche controllare la casella di posta locale con mail e il file syslog in /var/log/syslog per errori. Vedi anche questa domanda correlata perché cronjobs potrebbe non funzionare .

    
risposta data 0x4a6f4672 22.11.2012 - 12:05

Leggi altre domande sui tag