Respondendo seis anos depois: o problema de incompatibilidade de ambiente é um dos problemas resolvidos pelos systemd
"temporizadores" como uma substituição do cron. Se você executa o "serviço" systemd da CLI ou via cron, ele recebe exatamente o mesmo ambiente, evitando o problema de incompatibilidade de ambiente.
O problema mais comum que causa falha nos trabalhos do cron quando passam manualmente é o padrão restritivo $PATH
definido pelo cron, que é o Ubuntu 16.04:
"/usr/bin:/bin"
Por outro lado, o padrão $PATH
definido systemd
no Ubuntu 16.04 é:
"/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
Portanto, já existe uma chance melhor de que um timer do systemd encontre um binário sem mais problemas.
A desvantagem dos timers do systemd é que há um pouco mais de tempo para configurá-los. Você primeiro cria um arquivo de "serviço" para definir o que deseja executar e um arquivo de "cronômetro" para definir o agendamento para execução e, finalmente, "ativar" o cronômetro para ativá-lo.