Execução de shell minuto a minuto

1. Execução de shell minuto a minuto

Andryos
andryosribeiro

(usa Red Hat)

Enviado em 24/08/2022 - 13:37h

Olá pessoal, estou com uma dúvida ..

Tenho um script shell onde executo ele minuto a minuto e com isso, sempre que executado é gerado um arquivo de log com o resultado.

Dúvida: Como consigo fazer com que o resultado vá para o mesmo arquivo no periodo de 10 min?
Exemplo: Executei às 10:00, ai gerou um arquivo teste.log
Executei às 10:01, ai o resultado vai para o mesmo teste.log de uma vez de criar outro arquivo. Quero que gere arquivos novos de 10 em 10 minutos.

É possível?


  


2. Re: Execução de shell minuto a minuto

leandro peçanha scardua
leandropscardua

(usa Ubuntu)

Enviado em 24/08/2022 - 16:22h

Vc pode rodar um outro job de 10 em 10 minutos para fazer a "rotação" do arquivo de log tomando cuidado com race conditions. P programar a cada 10 minutos veja esta thread de 2017 do forum
https://www.vivaolinux.com.br/topico/Servidores-Linux-para-iniciantes/Crontab-executando-de-10-em-10...


3. Re: Execução de shell minuto a minuto

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 24/08/2022 - 23:07h


andryosribeiro escreveu:

Olá pessoal, estou com uma dúvida ..

Tenho um script shell onde executo ele minuto a minuto e com isso, sempre que executado é gerado um arquivo de log com o resultado.

Dúvida: Como consigo fazer com que o resultado vá para o mesmo arquivo no periodo de 10 min?
Exemplo: Executei às 10:00, ai gerou um arquivo teste.log
Executei às 10:01, ai o resultado vai para o mesmo teste.log de uma vez de criar outro arquivo. Quero que gere arquivos novos de 10 em 10 minutos.

É possível?

Boa noite andryosribeiro.
Sim!
É possível.
O comando abaixo, checa se o arquivo tem mais de 10 minutos, desde a sua criação.
(((($EPOCHSECONDS-$(stat --printf "%W" testes_log.txt))/60)>10)) && echo sim || echo nao 

Dica para criar o arq de log:
log=$(printf "Arq_Log_%(%s)T.txt")
---------------------------------------------------------------------------------------------------------------
Pegando o arq alterado mais recente (log em uso):
ls -1t --time-style="+%s" Arq_Log_*.txt|head -n1
---------------------------------------------------------------------------------------------------------------
Colocando em ordem:
loguso=$(ls -1t --time-style="+%s" Arq_Log_*.txt|head -n1);
(((($EPOCHSECONDS-$(stat --printf "%W" "$loguso"))/60)>10)) && echo sim || echo nao 

#Test:
(( ((1661393193-1661390165)/60)>10 )) 

---------------------------------------------------------------------------------------------------------------
#Fica_a_Dica

______________________________________________________________________
Importante:
lynx --dump https://www.vivaolinux.com.br/termos-de-uso/ | sed -nr '/^[ ]+Se/,/dou.$/p'
______________________________________________________________________
Nota de esclarecimento:
O comando: ACIMA, faz parte da minha assinatura.
Att.: Marcelo Oliver
______________________________________________________________________







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts