ls formata a data de forma diferente quando executada pelo cron

3

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.

    
por Travis 01.07.2010 / 06:31

3 respostas

2

O formato de data depende das configurações de localidade ($ LC_TIME, $ LC_ALL, $ LANG).

    
por 01.07.2010 / 08:00
3

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

    
por 06.01.2012 / 09:01
0

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.

    
por 01.07.2010 / 08:10