Normalmente, quando um script é executado corretamente se executado manualmente, mas falha quando executado a partir do cron pelo mesmo usuário, o problema é um caminho completo não especificado no script. Sua variável PATH para uma sessão de login interativa é MUITO maior do que aquela em que o trabalho do cron está sendo executado; Então, onde, por exemplo, rsync $source $target
pode funcionar bem a partir da linha de comando, quando executado no cron, você deve especificar o caminho completo: /usr/bin/rsync $source $target
.
Se isso não ajudar, poste de volta com mais detalhes sobre o que seu script está realmente fazendo e os resultados específicos que você obtém.