Como o tempo de atividade pode ser usado para acionar uma ação?

3

Eu quero escrever código shell ou perl que me dê notificação após x dias. Basicamente, no servidor SUSE Linux, há reinicialização necessária após 208 dias, caso contrário o sistema congelaria. Este é um bug conhecido. Então, para evitar isso, eu quero que o e-mail de notificação chegue até mim antes de 8 dias, algo assim ... apenas um alerta ...

O script precisa verificar o tempo de atividade atual e calcular os dias restantes necessários para o total de 208 dias. Espero que isso faça sentido.

    
por maneeshshetty 18.04.2012 / 06:46

2 respostas

7

Você pode determinar facilmente o tempo de atividade em dias com o awk:

# Print days of uptime, or zero if less than 1 day.
uptime | awk '/days?/ {print $3; next}; {print 0}'

Você pode usar isso com a substituição de comando para executar qualquer ação que você goste com base nos resultados. Por exemplo:

#!/bin/bash
days () { uptime | awk '/days?/ {print $3; next}; {print 0}'; }
UPTIME_THRESHOLD=200
if [ $(days) -ge $UPTIME_THRESHOLD ]; then
    : # Take some action.
fi

Obviamente, a ação que você toma depende de você. Você pode enviar mensagens para você mesmo, agendar uma reinicialização com o comando at , ou qualquer outra coisa que você achar necessário fazer.

Você também pode definir esse script como uma tarefa cron diária, para que ele acione sua ação definida quando o limite de tempo de atividade for excedido. Se você tiver acesso root, pode simplesmente soltar o script em /etc/cron.daily/ ou pode configurar seu crontab pessoal para chamar esse script uma vez por dia.

    
por 18.04.2012 / 07:21
1

Inspirado pela resposta do CodeGnome, criei um pequeno script para mac, onde uma notificação é exibida depois que o computador é ligado para as 8:30. Também tinha que configurar o cron para rodar isso a cada minuto.

#!/bin/bash
timeup () { uptime | awk  '{print $3}'; }
UPTIME="8:30,"
if [ $(timeup) == $UPTIME ]; then
    osascript -e 'tell app "Finder" to display dialog "8:30 uptime! Go Home!"' &
    osascript -e 'display notification "8:30 uptime! Go Home!" with title "Go Home!!"' &
fi
    
por 22.04.2016 / 19:29