AprendiNoLinux
(usa Ubuntu)
Enviado em 04/08/2011 - 01:57h
Alguém pode conferir se está correto esta solução ou existe outra melhor ?
Deixei a questão dos nanosegundos de lado porque vou comparar em separado e somente se forem data, hora , minutos e segundos iguais.
Para conversão da data em timestamp
# Pego o horário da última alteração do arquivo para comparar. Sem usar os nanosegundos.
$ MEU_ULT_ACESSO=$(stat -c %y Contador43.txt | cut -c 1-19 )
Resultado: 2011-08-03 14:23:03
# Convertendo para timestamp
MEU_TIMESTAMP="$(date --date "$MEU_ULT_ACESSO" +%s)"
Resultado: 1312392183
========================================
Parece que o timestamp está certinho.
Para pegar do outro lado estou usando o date direto, mas tá dando uma diferença de 3 horas.
Deve ser algo relacionado com o meu local -3:00 mas não estou conseguindo fazer a conta correta.
Não vou usar este valor na comparação e sim para gravar em log. Com esta diferença de 3 horas pega mal rsrs.
Fiz assim:
$ date +%s
Resulta: 1312433556
Já o arquivo quando eu converto de volta de timestamp para data normal tá dando diferença.
$ date --date "1970-01-01 1312431298 sec" "+%F-%R-%S"
Deve ser fuso horário, mas o bocoió aqui não sabe usar.
%z fuso horário numérico +hhmm (por exemplo, -0300)
%:z fuso horário numérico +hh:mm (por exemplo, -03:00)
%::z fuso horário numérico +hh:mm:ss (por exemplo, -03:00:00)
%:::z fuso horário numérico com : para a precisão necessária (por exemplo, -04, +05:30)
Qualquer empurrar pra quem está na beira do barranco serve :)
Obrigado.