Shellscript [RESOLVIDO]

1. Shellscript [RESOLVIDO]

Ricardo Souza
ricarovieiradeso

(usa Outra)

Enviado em 06/07/2018 - 11:58h

Preciso criar um script para desligar um equipamento a meia noite todos os dias , porem esse equipamento e um embarcado e
nao tem crontab para executar esse script em determinado horário.
Pensei em criar um script que verifica o horário e em determinado horário executa um outro script que reinicia o equipamento , mas como eu irei fazer esse shellscript ?
alguém consegue me ajudar ?


  


2. MELHOR RESPOSTA

Slackjeff
slackjeff

(usa Slackware)

Enviado em 06/07/2018 - 13:11h

Para verificar um determinado horario vc precisa do cron ou do at pra isso.
Um alternativa não tão viavel mas que funcionaria seria você pode deixar o script rolando e dar sleep de 1h/1h ou até menos ai vai do seu gosto.
Um Exemplo tosco e incompleto, mas que te dará um caminho:

HORARIO="22" # 22 horas

while sleep 10s; do
if [ $(date +%H) -eq "$HORARIO" ]; then
printf "É hora de prosseguir.\n"
break
fi
done

printf "COMANDO EXECUTADO.\n"


Outra coisa, use o programa em segundo plano!



THE MAGIC SHELL PROGRAMMER.

Slackware user since ~2008
Meu canal no youtube:
https://www.youtube.com/SlackJeff

Meu Site:
http://www.slackjeff.com.br/

Meus Programas estão aqui:
https://notabug.org/jeffersonrocha

Meu PODCAST:
http://podcast.slackjeff.com.br/






3. Re: Shellscript

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 06/07/2018 - 18:10h

ricarovieiradeso escreveu:

Preciso criar um script para desligar um equipamento a meia noite todos os dias , porem esse equipamento e um embarcado e
nao tem crontab para executar esse script em determinado horário.
Pensei em criar um script que verifica o horário e em determinado horário executa um outro script que reinicia o equipamento , mas como eu irei fazer esse shellscript ?
alguém consegue me ajudar ?


Boa noite.
Segue sugestão.
#!/bin/bash
while :;do sleep 2
if (( $(printf "%(%H)T") == "00"));then
printf "Agora: %(%X)T\nDesligando..."
shutdown -h now
break
else
printf "Agora: %(%X)T\nContinuando..."
continue
fi
done

Obs.:
O printf "%(%H)T" é mais rápido que o date +%H
Marcelo Oliver


4. funcionou

Ricardo Souza
ricarovieiradeso

(usa Outra)

Enviado em 11/07/2018 - 16:19h

Obrigado funcionou


HORARIO="00"

while sleep 10; do
if [ $(date +%H) -eq "$HORARIO" ]; then
printf "É hora de prosseguir.\n"
reboot

break
fi
done

printf "COMANDO EXECUTADO.\n"


AGRADEÇO A TODOS PELA AJUDA






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts