Desligar e Ligar Automaticamente Servidores Todos Os Dias
-
Upload
wilboy2000 -
Category
Documents
-
view
213 -
download
1
description
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