Programa de Tempo para o Ubuntu

Iniciado por mkevsison, 24 de Maio de 2014, 13:19

tópico anterior - próximo tópico

luizsouza99

o passo a passo esta ficando muito grande, vc quer que eu faça um script instalador ou vc dá conta do passo a passo ?

é porque tem que colocar o script na inicialização, dá permissão de execução etc

mkevsison

Citação de: luizsouza99 online 31 de Maio de 2014, 00:59
o passo a passo esta ficando muito grande, vc quer que eu faça um script instalador ou vc dá conta do passo a passo ?

é porque tem que colocar o script na inicialização, dá permissão de execução etc

Do jeito que você achar que é mais fácil


luizsouza99

vou dar uma olhada, mas como estou finalizando o script, deixa para depois que a gente só troca o comando que reinicia por outro

luizsouza99

se vc for muito iniciante vai penar um pouco para fazer rodar, mas não tem erro

luizsouza99

Vamos começar usando ele apenas na maquina 1 para testar,  vc precisa de um arquivo de texto na home dela chamado .estado1, começa com ponto para ser oculto e ninguém mexer. Para visualizá-lo basta dar control + H

é neste arquivo que o programa vai ler quanto tempo deve ficar funcionando, e o comando você vai escrever pela maquina "chefe", então o arquivo deve estar compartilhado com a maquina "chefe" para que você altere o arquivo por ela (seja pelo dropbox, samba, nfs etc) você que sabe.

Temos dois tipos de comandos:
espera = com este comando o script lê mas não marca tempo

O outro comando você coloca em segundos, que significa quantos segundos a maquina vai ficar ligada (você escreve só os números no arquivo compartilhado .estado1)
1800= 30 minutos
3600 = 1 hora
7200= 2 horas
10800= 3 horas
14.00= 4 horas
etc.

Vamos supor você escreve 1800, o programa vai ler, ficar 1800 segundos aguardando (30 minutos) e depois disto ele reinicia e o cliente não vai conseguir passar da tela de login depois do reboot.

Então imagina só, você esta na sua maquina principal com uma pasta tendo todos os arquivos de todas as maquinas, e em todos está escrito "espera", o cliente vai e compra 1 hora, você abre o arquivo texto correspondente a maquina que o cliente vai usar e escreve 3600, no máximo de 5 segundos o programa vai "pescar" o tempo e dormir pelo tempo que você determinou, depois que o tempo acabar ele vai reiniciar e o cliente não sabendo a senha do login não faz mais nada.

Depois podemos incrementar o programa avisando ao cliente que faltam apenas 5 minutos, fazer o programa calcular em horas ao invés de digitar em segundos, mas se tiver necessidade e depois de testá-lo.

nos testes você pode usar o comando ./script para testar, ou seja, deixa ele na home e com o terminal na home você dá este comando e vai testando, pra depois colocar na inicialização

Abaixo o codigo, coloque ele num arquivo texto programas tipo pluma, gedit etc. (não é libre office),
coloca ele no diretório /etc/init.d,
dá permissão de execução chmod +x /etc/init.d/script
coloca na inicialização bastando indicar o caminho dele no arquivo /etc/rc.local
exemplo: /etc/init.d/script

parece complicado mais depois que fizer vai ver que é tranquilo, codigo:

#!/bin/bash

# Loop infinito
for (( loop=1;loop>0;loop++));do
sleep 5

ESTADO=$(cat $HOME/.estado1) # recebendo o valor da maquina "chefe"

   if [ "$ESTADO" != "espera" ];then
      sleep $ESTADO # o programa vai dormir até que o tempo se esgote
      echo "espera" > $HOME/.estado1 # resetando o valor do estado
      reboot
   fi
done




luizsouza99

#21
há se vc for testar pelo terminal, ele não vai reiniciar se não for root

e tem que criar o arquivo estado e salvar a palavra espera dentro para funcionar

mkevsison

Desculpa a demora, tou começando ler o script agora

mkevsison

Citação de: luizsouza99 online 31 de Maio de 2014, 01:12
Vamos começar usando ele apenas na maquina 1 para testar,  vc precisa de um arquivo de texto na home dela chamado .estado1, começa com ponto para ser oculto e ninguém mexer. Para visualizá-lo basta dar control + H

é neste arquivo que o programa vai ler quanto tempo deve ficar funcionando, e o comando você vai escrever pela maquina "chefe", então o arquivo deve estar compartilhado com a maquina "chefe" para que você altere o arquivo por ela (seja pelo dropbox, samba, nfs etc) você que sabe.

Temos dois tipos de comandos:
espera = com este comando o script lê mas não marca tempo

O outro comando você coloca em segundos, que significa quantos segundos a maquina vai ficar ligada (você escreve só os números no arquivo compartilhado .estado1)
1800= 30 minutos
3600 = 1 hora
7200= 2 horas
10800= 3 horas
14.00= 4 horas
etc.

Vamos supor você escreve 1800, o programa vai ler, ficar 1800 segundos aguardando (30 minutos) e depois disto ele reinicia e o cliente não vai conseguir passar da tela de login depois do reboot.

Então imagina só, você esta na sua maquina principal com uma pasta tendo todos os arquivos de todas as maquinas, e em todos está escrito "espera", o cliente vai e compra 1 hora, você abre o arquivo texto correspondente a maquina que o cliente vai usar e escreve 3600, no máximo de 5 segundos o programa vai "pescar" o tempo e dormir pelo tempo que você determinou, depois que o tempo acabar ele vai reiniciar e o cliente não sabendo a senha do login não faz mais nada.

Depois podemos incrementar o programa avisando ao cliente que faltam apenas 5 minutos, fazer o programa calcular em horas ao invés de digitar em segundos, mas se tiver necessidade e depois de testá-lo.

nos testes você pode usar o comando ./script para testar, ou seja, deixa ele na home e com o terminal na home você dá este comando e vai testando, pra depois colocar na inicialização

Abaixo o codigo, coloque ele num arquivo texto programas tipo pluma, gedit etc. (não é libre office),
coloca ele no diretório /etc/init.d,
dá permissão de execução chmod +x /etc/init.d/script
coloca na inicialização bastando indicar o caminho dele no arquivo /etc/rc.local
exemplo: /etc/init.d/script

parece complicado mais depois que fizer vai ver que é tranquilo, codigo:

#!/bin/bash

# Loop infinito
for (( loop=1;loop>0;loop++));do
sleep 5

ESTADO=$(cat $HOME/.estado1) # recebendo o valor da maquina "chefe"

   if [ "$ESTADO" != "espera" ];then
      sleep $ESTADO # o programa vai dormir até que o tempo se esgote
      echo "espera" > $HOME/.estado1 # resetando o valor do estado
      reboot
   fi
done





Cara mim desculpe mas não sei nem por onde eu começo.  :-[

luizsouza99

vou fazer o script de instalação que vai diminuir bastante a explicação

mkevsison

Citação de: luizsouza99 online 31 de Maio de 2014, 12:45
vou fazer o script de instalação que vai diminuir bastante a explicação

Assim concerteza irá ficar mais fácil

luizsouza99

#26
nós temos que compartilhar um arquivo texto entre maquina cliente e servidor, para isto vamos usar o dropbox, veja o tutorial abaixo
http://www.techtudo.com.br/dicas-e-tutoriais/noticia/2012/02/como-instalar-e-usar-o-dropbox-no-ubuntu-1110.html

luizsouza99

Acho que você terá dificuldades somente no Dropbox, não instala o programa se o dropbox não estiver ok, qualquer coisa eu te dou uma ajuda

Requerimento:

Ter o Dropbox instalado na maquina cliente e principal (a mesma conta), verifique se a pasta Dropbox apareceu na home

Você vai baixar o script no link http://www.mediafire.com/download/f041157dc1cciw3/lan

- Cole ele na sua home
- Abra o terminal
- Dê o comando ./lan para executa-lo (não esteja logado como root)
- O resto ele faz sozinho, como vai instalar na inicialização ele vai pedir senha
- Depois de alguns segundos o pc vai reiniciar, pronto já estará instalado

Usando:

Como você terá a mesma conta do dropbox no cliente e principal os arquivos serão idênticos, quando você mudar no pc principal o cliente já vai receber esta modificação e consequentemente o programa vai ler o tempo que você deu para o cliente.

No arquivo "estado" que estará compartilhado você coloca o tempo para o cliente (em segundos) abaixo a tabela para te ajudar, nos testes coloque poucos segundos só para ver se a maquina cliente vai reiniciar.
1800= 30 minutos
3600 = 1 hora
7200= 2 horas
10800= 3 horas
14.00= 4 horas
etc.

mkevsison

Obrigado, quando eu chegar em casa vou fazer a instalação!

mkevsison

Criou um novo arquivo lan.txt na mesma pasta onde coloquei o arquivo lan. E já fiz a instalação, no meu pc principal, já vi o arquivo estado.

devo instalar o mesmo programa no pc do cliente?