O comando Unix Date não funciona para poucos servidores

1

Estou tentando executar o comando date no servidor unix para ontem. Os comandos tentados são:

date --date="1 day ago"
date --date="1 days ago"  
date --date="yesterday"
date --date="-1 day"

Esse comando funciona em um servidor, mas o mesmo comando não funciona em alguns outros servidores, onde a data imprime corretamente a data atual. Alguém poderia sugerir qual poderia ser o problema com os outros servidores? Recebo um erro como: illegal option -- date=1 day ago

Os detalhes do servidor: SunOS wupsa02a0014 5.10 Generic_147440-15 sun4u sparc SUNW, Empresa-SPARC

    
por Swagatika 27.03.2013 / 08:10

2 respostas

5

--date não é uma opção de data convencional em muitos sistemas unix.

Se você tem uma grande variedade de plataformas UNIX / Linux para trabalhar, tente examinar a man page para date (1) em cada uma delas (se man pages estiverem instaladas) e veja quais opções de datas são comuns todos eles como ponto de partida.

Você pode achar a data -v (ajustar) razoavelmente portátil.

Algo como date -v-1d pode funcionar. Teste-o em cada sistema para ver se funciona em todos eles. Exibe o valor atual dos dados ajustado em um dia no passado.

    
por 27.03.2013 / 08:13
1

Você pode simplesmente subtrair 24 horas da variável de ambiente TZ antes de chamar date .

$ TZ=GMT date
Wed Mar 27 09:11:02 GMT 2013
$ TZ=GMT+24 date
Tue Mar 26 09:11:05 GMT 2013

Funciona no Solaris e no Linux.

    
por 27.03.2013 / 10:11

Tags