Se 'qual' poderia encontrar o executável, o mesmo poderia acontecer com o interpretador de shell que está executando seu comando cron. Então eu não vejo por que você quer usar 'which' para esse propósito. Mas talvez você tenha algum motivo que não seja aparente.
O comando 'which' usa os diretórios listados em $ PATH para procurar a primeira ocorrência de um comando. Muito provavelmente, o PATH não está definido para o que você acha que é. Tente adicionar "/ usr / bin / env > > /home/user/you/env.txt 'para o seu crontab para ser executado hoje, daqui a um minuto. Então, olhe em /home/user/you/env.txt para ver qual PATH foi definido. Se esse PATH não for adequado para seus propósitos, você pode ter que colocar todos os seus comandos em um script de shell pequeno, onde você mesmo pode configurar o PATH. Você também pode procurar nesse arquivo env.txt por outras variáveis ambientais exportadas, pois isso pode ser útil, dependendo do que você deseja fazer através do seu crontab.