O formato de data depende das configurações de localidade ($ LC_TIME, $ LC_ALL, $ LANG).
No FC10, as saídas ls datam no formato 'AAAA-MM-DD HH: MM' quando chamadas pela linha de comando ou script. Quando chamado pelo cron, as datas estão no formato 'Mon DD HH: MM'.
O que dá? porque a mudança? Eu verifiquei env e alias, e nada foi obviamente diferente entre o shell e o cron.
Há duas maneiras que eu sei para consertar isso, pelo menos no Ubuntu Lucid.
Adicione esta linha no topo do seu arquivo crontab.
LC_TIME="en_US.UTF-8"
Ou especifique o formato de hora para ls -l no seu script.
ls -l --time-style=long-iso
Eu gosto dessa segunda maneira porque torna o script mais portátil. Além disso, toda vez que você modifica o ambiente para um crontab, você modifica o ambiente para todos os scripts em execução nesse crontab e, possivelmente, introduz erros nos outros scripts dessa maneira.
Paul S
Outra possibilidade é a opção --time-style
. Pode ser especificado, por exemplo, em algum lugar nos aliases de um dos usuários, aquele que executa tarefas cron ou aquele que executa o script a partir da linha de comandos.