Pular para o conteúdo

roda meu script em loop infinito [RESOLVIDO]

Responder tópico
  • Denunciar
  • Indicar

1. roda meu script em loop infinito [RESOLVIDO]

Enviado em 28/04/2016 - 21:06h

ola pessoa, ve se vcs pode me ajudar , aqui na empresa estamos desenvolvendo um simples hotspot para nosso clientes, onde quando o cliente acessar nosso wifi ele registra o ip dele dentro
do banco de dados mysql, rodo script importando o ip, depôs aplico uma regra iptables, coloquei essa rotina no cron, porem o cron o minimo que ele roda e um minuto , queria que foce menos, tipo 30 segundos , ja vi vários exemplos de loop, tipo esse abaixo

while
do
/etc/script./exemplo.sh
..
.sleep 30
done

pra execulta ./rotina.sh &

ele fica rodando , porem depos de 24 horas ele morre

alguém pode ajudar ?

Responder tópico

2. Re: roda meu script em loop infinito [RESOLVIDO]

Enviado em 28/04/2016 - 22:50h

Você precisa que um script monitore novas conexões ao seu hotspot e insira o ip num banco de dados e o problema é manter esse script "no ar" o tempo todo? Se sim, precisaria explicar como essas "novas conexões" são capturadas, como por exemplo, se é o hostspot que colocar um arquivo de log e como ou algo do tipo; se é possível processar a informação após certo tempo ou tem que ser tempo real.





3. Re: roda meu script em loop infinito [RESOLVIDO]

Enviado em 29/04/2016 - 19:50h

ja tenho tudo proto, ja consigo fazer toda a rotina, quando um cliente se conectar na rede , ele e redirecionado para um pagina , essa pagina pega ip de acesso , aplica na base dados no msqly
dai entra o scripts, roda um comando do mysql fazendo a importação das colunas preenchida com acesso feito pelo cliente, ai aplico no iptables, meu complexo mais esta tudo ok ,
so preciso que esse script fique rodando o execultando o outro script com os comando do mysql , em 30 e 30 segundos , para ele ve quem logou e pega o ip aplicar suas devidas regras,

4. Re: roda meu script em loop infinito [RESOLVIDO]

Enviado em 29/04/2016 - 20:23h

Se for apenas para reiniciar a cada ~30 segundos, você pode usar o seu primeiro exemplo e não precisa usar o cron.


while true; do
/etc/script/exemplo.sh
sleep 30
done
Após o exemplo.sh terminar, o looping vai aguardar mais 30 segundos para executá-lo novamente.

Se precisar de algo mais exato, precisa armazenar o tempo de execução do script e subtrair de 30 para determinar quantos segundos faltam aguardar. Exemplo:


while true; do
t_ini=$(date +%s)
/etc/script/exemplo.sh
t_end=$(date +%s)
(( wait_time = 30 - ( t_end - t_ini ) ))
sleep $wait_time
done
Quanto ao problema do script encerrar após as 0 horas, não identifiquei nada errado que pudesse provocar isto, provavelmente foi algum outro processo que o encerrou.

5. Re: roda meu script em loop infinito [RESOLVIDO]

Enviado em 30/04/2016 - 15:37h

obrigado meu amigo deu certinho aqui, usei a segunda opção que vc mencionou .
muito obrigado mesmo

Responder tópico

Responder tópico

Entre na sua conta para responder.

Fazer login para responder