Cálculo de tempo em um script do Filewatcher

0

Portanto, desenvolvi com sucesso um script filewatcher que está funcionando bem. O script lê um arquivo que contém uma lista de arquivos de entrada (caminho completo para o arquivo), delimitado com | e outras informações. Algo parecido com isto:

/path/to/file/1.txt|600|900|Team1|[email protected]
/path/to/file/2.txt|630|930|Team2|[email protected]
/path/to/file/3.txt|2300|2359|Team3|[email protected]

O primeiro é o arquivo, o segundo e o terceiro são intervalos entre os quais o arquivo geralmente vem, o quarto é o responsável pelo arquivo e o quinto é o e-mail.

O script é executado a cada dez minutos em segundo plano 24/7 e compara os tempos atuais com a segunda e a terceira coluna, se a hora atual estiver entre esses intervalos, verifica se o arquivo está lá ou não. Quando o horário de término (coluna 3) é menor que dez minutos e o arquivo não chegou, um email é enviado para a equipe que o arquivo está faltando.

Para verificar se um arquivo chegou após o tempo definido, defini outra condição que verifica o tempo de término - valor da hora atual. Se for negativo, ele verifica se o arquivo veio depois e perdeu o SLA ou não. Se o arquivo chegar atrasado, o script enviará um email informando que o SLA foi perdido para esse arquivo. Calcula o tempo perdido do "SLA" usando o tempo atual de término do tempo (3ª coluna). Exemplo se o primeiro arquivo chegar às 930 e, em seguida, (930-900) atrasar 30 minutos. Tudo isso funciona bem.

Eu tenho apenas um problema. Se você olhar para a última linha do meu exemplo - os intervalos terminam em 2359 e não consigo calcular se o arquivo chegou depois de 2359 (como esse é o maior tempo em um dia e este menos qualquer valor ganho produzir um valor negativo). Obviamente, eu também não consigo calcular o tempo de falta de SLA correto se ele vier depois disso. Exemplo: se o arquivo chegar às 100 horas, o script pensa que o arquivo veio antes do horário do SLA e não envia nenhum alerta (100-2359 é negativo).

Como posso superar isso?

    
por mathB 06.10.2017 / 22:59

1 resposta

1

Você pode precisar reprojetar o script, mas uma maneira mais fácil de rastrear esse tipo de coisa envolve aproveitar as conversões de e para o horário de "época" e trabalhar com uma "duração de janela" em vez de com uma "janela" hora de início e hora de término 'Então você pode fazer a comparação mais facilmente depois de converter a hora atual em hora de época, adicionar o número de segundos especificado pela janela e compará-la ao tempo de entrega convertido por época.

    
por 09.10.2017 / 20:54