Como alterar a data e a hora da última modificação, independentemente do fuso horário e do horário de verão?

1

Eu tenho dois arquivos e preciso alterar a data da última modificação: ambos devem ser meia-noite, um no dia 25 de junho e outro no dia 25 de novembro. Basicamente, isso:

touch -cmt 201606242359.60 summer-file
touch -cmt 201611242359.60 winter-file

Nosso fuso horário do servidor é "Europa / Madri", portanto, <<> aproveitamos o horário de verão: estamos em UTC + 1 durante o inverno e UTC + 2 durante o verão. O que significa que se eu executar os comandos acima agora, eles configuram a data do winter-file corretamente, mas summer-file tem uma hora de antecedência: 24 de junho às 23:00. Se eu os executasse durante o verão, eu acho que o arquivo de verão seria o OK e o outro seria 1:00 em vez de 0:00.

Após um pouco de pesquisa e um pouco mais de tentativa e erro, eu vim com isto:

TZ=ZZZ-1 touch -cmt 201606242359.60 summer-file
TZ=ZZZ-1 touch -cmt 201611242359.60 winter-file

Que define corretamente a data de ambos os arquivos para 0:00 como pretendido. O problema é ... Eu realmente não sei o que estou fazendo aqui. Mudando o fuso horário para ZZZ-1 , por causa de ... magia? Ou ... é -1 porque estamos atualmente em UTC + 1? No próximo mês de março, quando mudarmos para o horário de verão, nosso servidor estará 2 horas à frente do UTC em vez de 1. Devo usar então ZZZ-2 , ou ZZZ-1 ainda estará bem? (Eu mudaria a data do servidor e apenas tentaria por mim mesmo, mas não posso fazer isso, isso quebraria algumas coisas).

Se eu precisar de ZZZ-2 durante o verão ... há outra expressão que eu possa definir TZ= para fazer com que meu toque funcione adequadamente em todo o ano e para qualquer data-alvo? Eu tentei com GMT , UTC e UTC0 , nenhum deles funcionou (eles todos definiram meu arquivo de verão para 1:00).

Os comandos são gerados programaticamente (no Siebel CRM), eu acho que eu poderia verificar a data atual e definir TZ=ZZZ-1 ou TZ=ZZZ-2 conforme necessário ( se necessário), mas eu prefiro tem apenas uma expressão.

Além disso, observe que nosso servidor está executando o Solaris 10, caso isso faça alguma diferença. Geralmente faz ...

    
por AJPerez 25.11.2016 / 14:16

0 respostas