Cron non esegue gli script

Ho cercato diverse ragioni che potrebbero causare il mio problema senza fortuna. Il problema sembra essere estremamente particolare: il mio server che esegue LTS 10.04 non sta eseguendo correttamente script relativi all’utilizzo di Internet. Sto cercando di aggiornare un DNS dinamico dal mio server in modo che il mio dominio punta sempre al mio server. Ssh al mio server per apportare modifiche ed è sempre in esecuzione.

Ci sono due posti in cui ho inserito lo script cron:

1) Aggiungi un crontab usando crontab -e per l’utente corrente

2) Aggiungi un file in /etc/cron.d/ (anche due file diversi)

Ho fatto in modo che fossero di proprietà di root e avessero bit di accesso per il proprietario.

Cancellare alcune cose:

1) Tutti gli script di cron funzionano perfettamente sul mio laptop che è anche 10.04 LTS

2) Entrambi gli script funzionano perfettamente bene quando vengono eseguiti dalla riga di comando.

3) Sul server se concatio “ciao” ad un file usando cron ogni minuto funziona davvero

Il più semplice dei due script da eseguire ha una configurazione come questa:

* * * * * root /usr/bin/wget "-q --read-timeout=0.0 --waitretry=5 --tries=10 --background http://freedns.afraid.org/dynamic/update.php?........... 

Dove nascondo la chiave di aggiornamento e questa è seguita da una nuova riga.

Credo che questo debba essere qualcosa di specifico per cron che mi sto perdendo.

Inoltre, non ho un file di registro di cron in / var o / var / log

Fammi sapere se ci sono delle informazioni che ho dimenticato di menzionare.

  • Sei consapevole che i messaggi di errore di cron / STDERR finiscono nella posta di sistema? Se non lo hai configurato, puoi rapidamente controllare /var/mail/your_username . Si chiama Unix Movemail in Thunderbird, ma credo che ci siano altri nomi per lo stesso meccanismo.
  • La shell di default usata non è bash .
  • Sei consapevole che l’ambiente per un lavoro cron è completamente diverso dalla tua shell intertriggers? Per testare questo ho creato un job cron:

* * * * * /tmp/testscript.sh

Il contenuto di /tmp/testscript.sh è:

 #!/bin/bash set 

Ho ricevuto un’e-mail con il seguente contenuto (nota che il PATH è molto diverso, confrontalo con set dalla riga di comando:

 BASH=/bin/bash BASHOPTS=cmdhist:extquote:force_fignore:hostcomplete:interactive_comments:progcomp:promptvars:sourcepath BASH_ALIASES=() BASH_ARGC=() BASH_ARGV=() BASH_CMDS=() BASH_LINENO=([0]="0") BASH_SOURCE=([0]="/tmp/testscript.sh") BASH_VERSINFO=([0]="4" [1]="2" [2]="24" [3]="1" [4]="release" [5]="x86_64-pc-linux-gnu") BASH_VERSION='4.2.24(1)-release' DIRSTACK=() EUID=1000 GROUPS=() HOME=/home/my_username HOSTNAME=diablo HOSTTYPE=x86_64 IFS=$' \t\n' LANG=en_US.UTF-8 LANGUAGE=en_US:en LOGNAME=jhendrix MACHTYPE=x86_64-pc-linux-gnu OPTERR=1 OPTIND=1 OSTYPE=linux-gnu PATH=/usr/bin:/bin PPID=623 PS4='+ ' PWD=/home/my_username SHELL=/bin/sh SHELLOPTS=braceexpand:hashall:interactive-comments SHLVL=1 TERM=dumb UID=1000 _=/bin/bash