você está aqui: Home  → Arquivo de Mensagens

find e TZ - ajustes

Colaboração: Márcio C. M. Rezende

Data de Publicação: 19 de junho de 2010

Estava com um problema num comando (gnu) find e precisei ajustar a hora para exibir corretamente os arquivos baseados em uma referência de tempo absoluta.

O comando (gnu) find pode fazer isto com a diretiva opcional -newermt "201006110000", porém a referência é tomada pelo horário local e isto diferencia-se do horário de gravação (UTC) do arquivo.

Usando o comando find:

  find -newermt "201006110000" /srv/dir/bck

Os arquivos que foram gravados às 5:37 não apareciam, apesar de estarem lá.

Solução: utilizar a variável timezone (TZ).

Ajustei esta variável, dentro do scprit para Greenwich e as referências ajustaram-se automaticamente a ela.

Tive a idéia, mas o modo de fazer eu encontrei no artigo Linux / UNIX: display time of different time zones using TZ environment variable.

Nota: o TZ deve conter o valor como um dos nomes dos diretórios usr/share/zoneinfo

Nota: poderia ter mexido nas variaveis internas do script, mas como as obtenho com

  thisyear=`date +%Y`
  thismonth=`date +%D`
  thisday=`date +%D`

teria que partir para aritmética do bash para somar ou subtrair a diferença.

Logo, o script ficou assim:

  #!/bin/bash
  export TZ=Greenwich
  thisyear=`date +%Y`
  thismonth=`date +%m`
  thisday=`date +%d`
  
  thisdir=/srv/bck/$thisyear/$thismonth
  
  find $thisdir -newermt "$thismonth$thisday0000"
  unset TZ


Veja a relação completa dos artigos de Márcio C. M. Rezende

 

 

Opinião dos Leitores

Seja o primeiro a comentar este artigo
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script