Wenn ich feststelle, dass ein cron-Job nicht richtig funktioniert, dann schreibe ich in das Skript am Anfang rein, wie die Umgebung aussieht und lass das Skript im Debugmode laufen (set -x).
env > /tmp/job.env
id > /tmp/job.id
pwd > /tmp/job.pwd
echo "$@" > /tmp/job.arg
exec 2>& /tmp/job.err
set -x
Und dann merke ich meistens, dass im PATH was nicht gesetzt ist oder ein Programm sich anders verhält, wenn es ohne Terminal läuft.