desligar o servidor linux e ligar automaticamente em horário específico

8

Estou tendo uma tarefa em que o palestrante está me pedindo para criar um script bash para desligar um servidor às 23h e ativá-lo às 6h. Eu sou capaz de fazê-lo usando sudo shutdown -h 23:00e funciona. Mas o problema é que não tenho idéia de como ativá-lo automaticamente às 6h, não encontrei nenhum comando que pudesse fazer isso. Qualquer ajuda seria apreciada.

JLWK
fonte
Tem certeza de que sua tarefa pede que você desligue a máquina inteira (e ligue-a novamente) ou apenas um processo do servidor? Obviamente, a máquina física precisa estar ligada para fazer qualquer coisa.
24414 Jos
Para ser sincero, também não faço ideia, também pensei que isso seria impossível. O professor está sendo muito vago no resumo da tarefa e está me deixando louca também.
JLWK

Respostas:

10

Primeiro, você precisa verificar se pode usar o wakealarm RTC para ativar seu sistema:

sudo sh -c "echo 0 > /sys/class/rtc/rtc0/wakealarm"
sudo sh -c "echo `date '+%s' -d '+ 3 minutes'` > /sys/class/rtc/rtc0/wakealarm"
cat /sys/class/rtc/rtc0/wakealarm

Agora verifica:

cat /proc/driver/rtc

Isso deve retornar uma lista de parâmetros. Verifique o alrm_timeprazo de 3 minutos no futuro e o de alrm_datehoje.

Se funcionar, crie um /usr/local/sbin/shutwakescript:

#!/bin/bash 
sh -c "echo 0 > /sys/class/rtc/rtc0/wakealarm" 
sh -c "echo `date '+%s' -d '+ 7 hours'` > /sys/class/rtc/rtc0/wakealarm" 
shutdown -h now

Por fim, edite seu usuário crontab , digite crontab -ee adicione a seguinte linha:

0 23 * * * /usr/local/sbin/shutwake
Sylvain Pineau
fonte
Depende das configurações do relógio do BIOS, verifique /etc/default/rcSse o UTC está definido ou não.
22414 Sylvain Pineau
Bem, eu tentei exatamente o mesmo que você escreveu acima. Não funcionou :(. -Debian 8
Bálint Pap