Quando você o está executando no shell, você está realmente usando a função integrada do bash, que se parece com isso:
anthony@Zia:~$ time perl -e 'sleep 1'
real 0m1.003s
user 0m0.000s
sys 0m0.004s
Cron não está usando o bash embutido; está usando /usr/bin/time
:
anthony@Zia:~$ /usr/bin/time perl -e 'sleep 1'
0.00user 0.00system 0:01.00elapsed 0%CPU (0avgtext+0avgdata 1800maxresident)k
0inputs+0outputs (0major+514minor)pagefaults 0swaps
O segundo tem realmente todas as informações do bash embutido, além de mais. Ele rotula "real" como "decorrido". (É também por isso que a opção -o
não está funcionando; essa é uma opção para /usr/bin/time
, não para o bash incorporado).
Se você precisar usar o bash integrado, há duas coisas a serem tentadas:
- Coloque
SHELL=/bin/bash
no topo do seu crontab. - Altere seu comando para chamar explicitamente
bash -c "your command here"
.