Autor Tópico: Programando a hora de Desligar o sistema  (Lida 9204 vezes)

Offline msrgdias

  • Usuário Ubuntu
  • *
  • Mensagens: 5
    • Ver perfil
Programando a hora de Desligar o sistema
« Online: 17 de Maio de 2007, 23:19 »
Existe algum programa de desligue o meu pc em uma determinada hora?

valeu!!!

Offline alexmatos

  • Usuário Ubuntu
  • *
  • Mensagens: 792
  • Arch Linux / Ubuntu 7.04
    • Ver perfil
Re: Programando a hora de Desligar o sistema
« Resposta #1 Online: 18 de Maio de 2007, 00:36 »
No terminal:

Código: [Selecionar]
sudo shutdown -h 14:20
Para desligar o computador às 14h20min (por exemplo).

Offline sidney richards

  • Usuário Ubuntu
  • *
  • Mensagens: 60
    • Ver perfil
Re: Programando a hora de Desligar o sistema
« Resposta #2 Online: 18 de Maio de 2007, 00:43 »
tenta esse e vê se funciona:

#!/bin/bash

shutdown -h horario-desejado  8)

Offline clcampos

  • Administrador
  • Usuário Ubuntu
  • *****
  • Mensagens: 10.790
  • .:: User Linux #439596 ::.
    • Ver perfil
Re: Programando a hora de Desligar o sistema
« Resposta #3 Online: 18 de Maio de 2007, 00:47 »
tenta esse e vê se funciona:

#!/bin/bash

shutdown -h horario-desejado  8)

Já que apareceu um shell script ai já da pra ir mais longe. Fazer uma chamada ao usuário para digitar o horário desejado (usando zenity por exemplo), consistir o horário, e depois executar o comando. Assim teriamos algo bastante genérico.

Me disponho a fazer, se alguém não fizer antes, só que depois de dois dias sem dormir vou pra cama agora, se ninguém fizer até amanhã de manhã eu me comprometo a entregar até o meio dia.
Cristiano/Timóteo - MG
.: Como Fazer Perguntas de Forma Inteligente :.                
Com dúvida? pesquise!

Offline clcampos

  • Administrador
  • Usuário Ubuntu
  • *****
  • Mensagens: 10.790
  • .:: User Linux #439596 ::.
    • Ver perfil
Re: Programando a hora de Desligar o sistema
« Resposta #4 Online: 18 de Maio de 2007, 11:59 »
11:54 hs... por pouco não cumpro o prometido.

Queria saber fazer as coisas mais simples. Sei que shell script dá pra condensar ao máximo a programação, e até que não estava grande, mas ai resolvi colocar comentários para que todos pudessem entender e cresceu muito. Além do que fui inventando consistências, e outras bobeiras o que ajudou no tamanho também.

Talvez alguém apareça até com algo bem menor, mas agora é o que eu pude fazer.

A rotina segue os seguintes passos:

  • Pega o horário
  • Consiste se esta digitado
  • Consiste se a hora esta correta
  • Consiste se os minutos estão corretos
  • Formata o horário para XX:YY (Dois dígitos para hora e dois dígitos para minutos)
  • Executa o comando

Eu não testei executando o comando final (comentei ele) porque não queria agendar nenhum desligamento, mas se o comando que o sidney richards estiver passado esta correto acho que funcionará.

Código: [Selecionar]
#!/bin/bash
#
# Rotina para agendar o desligamento de um PC
#
# Cristiano
# 18mai2007 10:01

#
# Rotina para consistir o horário informado
#
consisteHora() {
pHora=$horaDesl

#
# Separa Hora e Minuto
#
Hora=`echo $pHora | cut -f1 -d":"`
Minu=`echo $pHora | cut -f2 -d":"`

#
# Verifica se Hora e Minuto possuem valores numéricos ou literais
#
[ `expr $Hora + 1` ] || return 9999
[ `expr $Minu + 1` ] || return 9999

#
# Verifica se Hora e Minuto estão corretos
#
test $Hora -lt 0 -o $Hora -gt 23 && return 9999
test $Minu -lt 0 -o $Minu -gt 59 && return 9999

#
# Horário Correto
#
return 0
}

#
#Variável que guarda o horário do desligamento
#
horaDesl=$1      # Caso deseje passar o horário de desligamento direto pela linha de comando

[[ "$horaDesl" = [Hh] ]] && clear && zenity --info --title="Agenda Desligamento" --text="Sintaxe do comando\n\
   para executar em modo interativo: agenda\n\
   para executar direto: agenda HH:MM\n\
   para ajuda: agenda h" && exit

while true; do

      #
      # Caso a data não tenha sido passada por parametro solicita a digitação da mesma
      #
      if test ! "$horaDesl"; then
         horaDesl=`zenity --title="Agenda Desligamento" --text="Digite a hora em que deseja desligar (Formato: HH:MM - 24 Horas ou Digite fim para encerrar" --entry`
      fi

      #
      # Consiste se nada foi digitado ou se foi solicitado o encerramento da rotina.
      #
      test "$horaDesl" = "" && zenity --info --title="Agenda Desligamento" --text="Nada foi digitado." && continue
      [[ "$horaDesl" = [Ff][Ii][Mm] ]] && exit

      #
      # Consiste se o que foi digitado esta correto
      #
      consisteHora

      #
      # Se a rotina de consistência estiver perfeita retorna zero e quebra o laço, caso contrário avisa e solicita data novamente
      #
      if test $? -eq 0; then
         break
      else
         zenity --info --title="Agenda Desligamento" --text="Hora digitada esta incorreta"
         horaDesl=""
      fi

done

###################################################################################
# Formata a hora para XX:YY (duas casas para hora e duas casas para minutos)
#
Hora=`echo $pHora | cut -f1 -d":"`
Tam=${#Hora}
Tam=`expr $Tam + 2`

Minu=`echo $pHora | cut -c$Tam-`

Hora=`printf "%02d" $Hora`
Minu=`printf "%02d" $Minu`

horaDesl="$Hora:$Minu"
###################################################################################

sudo shutdown -h $horaDesl

zenity --info --title="Agenda Desligamento" --text="Agendamento Concluido."

Copie a rotina, cole num arquivo (aqui chamei de agenda) e depois mude as permissões dele (chmod 755 arquivo).
« Última modificação: 18 de Maio de 2007, 12:02 por clcampos »
Cristiano/Timóteo - MG
.: Como Fazer Perguntas de Forma Inteligente :.                
Com dúvida? pesquise!

Offline msrgdias

  • Usuário Ubuntu
  • *
  • Mensagens: 5
    • Ver perfil
Re: Programando a hora de Desligar o sistema
« Resposta #5 Online: 19 de Maio de 2007, 11:03 »
Nossa vocÊs são demais!!!

vou testar valeu pessoal.

Offline dudu_ubuntun

  • Usuário Ubuntu
  • *
  • Mensagens: 507
    • Ver perfil
    • O Tempo do Mundo
Re: Programando a hora de Desligar o sistema
« Resposta #6 Online: 19 de Maio de 2007, 13:27 »
Boa tarde!

Primeiramente, clcampos parabéns pelo script, sou fã de scripts ;)

E nesse post conheci o Gshutdown, vale apena conhecer, eu uso ele ;)

Um  abraço a todos.
« Última modificação: 19 de Maio de 2007, 13:31 por dudu_ubuntun »

Offline alexmatos

  • Usuário Ubuntu
  • *
  • Mensagens: 792
  • Arch Linux / Ubuntu 7.04
    • Ver perfil
Re: Programando a hora de Desligar o sistema
« Resposta #7 Online: 19 de Maio de 2007, 13:45 »
Boa tarde!

Primeiramente, clcampos parabéns pelo script, sou fã de scripts ;)

E nesse post conheci o Gshutdown, vale apena conhecer, eu uso ele ;)

Um  abraço a todos.

Muito legal esse programa! Vou passar a indicá-lo para quem tiver começando. Boa alternativa pra quem não gosta muito da linha de comando.

Offline clcampos

  • Administrador
  • Usuário Ubuntu
  • *****
  • Mensagens: 10.790
  • .:: User Linux #439596 ::.
    • Ver perfil
Re: Programando a hora de Desligar o sistema
« Resposta #8 Online: 19 de Maio de 2007, 16:05 »
Valeu pela dica dudu_ubuntun. Já esta instalado, vou testar, mas pela interface é excelente.
Cristiano/Timóteo - MG
.: Como Fazer Perguntas de Forma Inteligente :.                
Com dúvida? pesquise!

Offline dudu_ubuntun

  • Usuário Ubuntu
  • *
  • Mensagens: 507
    • Ver perfil
    • O Tempo do Mundo
Re: Programando a hora de Desligar o sistema
« Resposta #9 Online: 19 de Maio de 2007, 16:57 »
aproveita e personaliza o comando para turn off , aqui so fazia o logof :P

eu uso como lançado o gksudo gshutdown para poder usar o shutdown -h now ;)

t+

Offline Fat Cat

  • Usuário Ubuntu
  • *
  • Mensagens: 166
    • Ver perfil
Re: Programando a hora de Desligar o sistema
« Resposta #10 Online: 21 de Maio de 2007, 08:31 »
FGaz assim e mais facil
sudo shutdown -h 15:15 ou qualquer outro horário que vc queira

Offline alexmatos

  • Usuário Ubuntu
  • *
  • Mensagens: 792
  • Arch Linux / Ubuntu 7.04
    • Ver perfil
Re: Programando a hora de Desligar o sistema
« Resposta #11 Online: 21 de Maio de 2007, 08:59 »
FGaz assim e mais facil
sudo shutdown -h 15:15 ou qualquer outro horário que vc queira

Eu já tinha dito isso, amigo:

No terminal:

Código: [Selecionar]
sudo shutdown -h 14:20
Para desligar o computador às 14h20min (por exemplo).