Desligar e Ligar Automaticamente Servidores Todos Os Dias

2
Desligar e ligar automaticamente servidores todos os dias Colaboração: Wendell Almeida Data de Publicação: 14 de dezembro de 2012 Podemos colaborar com a TI verde desligando servidores que não necessitam ficar ligados 24hs por dia 7 dias por semana. Pensando em uma empresa que funciona somente em horário comercial de segunda a sexta feira entre 09:00 e 18:00hs, podemos realizar uma programação para que automaticamente o servidor desligue por volta das 20:00hs e ligue no dia seguinte às 08:55hs, permanecendo desligado sábado e domingo. O script abaixo realiza essa operação: #!/bin/bash logger=$(which logger) test -x $logger || exit 1 # Horário que o servidor será ligado HOUR_UP="08:55:00" # Primeira segunda do mês o servidor não será desligado WEEKDAY1=Mon LANG=C LC_ALL=C DATE=$(date +%a) DAY=$(date +%d) shutdown=$(which shutdown) poweroff="$shutdown -h now" THIS="shutdown_system" date="date -u" WAKEALARM=/sys/class/rtc/rtc0/wakealarm ## Ligar o servidor na data e horário definidos wakeup(){ echo 0 > $WAKEALARM test "$DATE" = "Fri" && $date -d "+ 3 day $HOUR_UP" +%s > $WAKEALARM test "$DATE" = "Sat" && $date -d "+ 2 day $HOUR_UP" +%s > $WAKEALARM $date -d "+ 1 day $HOUR_UP" +%s > $WAKEALARM #cat /proc/driver/rtc } Desligar e ligar automaticamente servidores todos os dias 1

description

Desligar e Ligar Automaticamente Servidores Todos Os Dias

Transcript of Desligar e Ligar Automaticamente Servidores Todos Os Dias

  • Desligar e ligar automaticamente servidores todos osdiasColaborao: Wendell Almeida

    Data de Publicao: 14 de dezembro de 2012

    Podemos colaborar com a TI verde desligando servidores que no necessitam ficarligados 24hs por dia 7 dias por semana.

    Pensando em uma empresa que funciona somente em horrio comercial de segunda asexta feira entre 09:00 e 18:00hs, podemos realizar uma programao para queautomaticamente o servidor desligue por volta das 20:00hs e ligue no dia seguinte s08:55hs, permanecendo desligado sbado e domingo.

    O script abaixo realiza essa operao:

    #!/bin/bash

    logger=$(which logger) test -x $logger || exit 1

    # Horrio que o servidor ser ligado HOUR_UP="08:55:00"

    # Primeira segunda do ms o servidor no ser desligado WEEKDAY1=Mon

    LANG=C LC_ALL=C DATE=$(date +%a) DAY=$(date +%d) shutdown=$(which shutdown) poweroff="$shutdown -h now" THIS="shutdown_system" date="date -u" WAKEALARM=/sys/class/rtc/rtc0/wakealarm

    ## Ligar o servidor na data e horrio definidos wakeup(){ echo 0 > $WAKEALARM test "$DATE" = "Fri" && $date -d "+ 3 day $HOUR_UP" +%s > $WAKEALARM test "$DATE" = "Sat" && $date -d "+ 2 day $HOUR_UP" +%s > $WAKEALARM $date -d "+ 1 day $HOUR_UP" +%s > $WAKEALARM #cat /proc/driver/rtc }

    Desligar e ligar automaticamente servidores todos os dias 1

  • ## Desligar o servidor halt(){ $logger -t $THIS "The System Shutdown!!" wakeup $poweroff exit 0 }

    ## Verifica se o servidor ser desligado ou no validate(){ test $DAY -lt 7 || halt test "$WEEKDAY1" = "$DATE" || halt $logger -t $THIS "The System NOT Shutdown!!" }

    validate

    Salve o script com o nome zzzshutdown e copie para /etc/cron.daily.

    Ele deve ser o ltimo script a ser executado para no interferir na execuo das outrastarefas dirias. Por isso iniciei o nome com zzz.

    Agende as tarefas semanais e mensais no cron para que sejam executas quando oservidor estiver ligado. Exemplo: /etc/crontab

    17 * * * * root cd / && run-parts --report /etc/cron.hourly 00 20 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily ) 00 13 * * 4 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )

    # Toda primeira segunda feira do ms ser executado os scripts mensais 30 12 * * 1 root test `date +\%d` -gt 7 || ( cd / && run-parts --report /etc/cron.monthly )

    # Tarefa que ser executada na primeira tera do ms durante a madrugada. # O servidor no dever ser desligado. 00 1 * * 2 root test `date +\%d` -gt 7 || /usr/slib/system.diagnostic

    Sistema aplicado: Debian Squeeze. Talvez seja necessrio ajustes para outrasdistribuies.

    Desligar e ligar automaticamente servidores todos os dias 2

    Desligar e ligar automaticamente servidores todos os dias - Verso para Impresso