Fórum Ubuntu Linux - PT

Suporte Técnico => Programação e Scripts => Tópico iniciado por: wemersonrv em 02 de Maio de 2011, 09:09

Título: Shutdown script que verifica arquivo instrução em XML que autoriza desligamento.
Enviado por: wemersonrv em 02 de Maio de 2011, 09:09
Bom dia galera!

Seguinte, não tenho nenhum conhecimento com scripts linux e preciso montar um script pra shutdown do pc, só que com uma particularidade:

Quando o script rodar, preciso verificar num arquivo XML se uma informação específica está OK... e só então executar o shutdown... Ah... o usuário em questão não é root, então preciso forçar o shutdown pra usuário não root...

O arquivo xml tem a estrutura abaixo:

Código: [Selecionar]
<config>
  <conexao>
    <servidor>http://servidor1.com.br/</servidor>
    <terminal>44</terminal>
    <chave>chavedoterminal</chave>
    <desligar0>23:59:59</desligar0>
    <desligar1>23:59:59</desligar1>
    <desligar2>23:59:59</desligar2>
    <ligar>00:00:00</ligar>
    <intervaloatualiza>1</intervaloatualiza>
    <radio>1</radio>
    <ativo>1</ativo>
    <desligarpermitido>1</desligarpermitido>
  </conexao>
  <servidores>
    <servidor>http://servidor1.com.br/</servidor>
    <servidor>http://servidor2.com.br/</servidor>
    <servidor>http://servidor3.com.br/</servidor>
  </servidores>
</config>

Preciso ler a opção: config.conexao.desligarpermitido se igual a 1 permite desligar pelo script, caso contrário não permite...

Alguma dica?
Título: Re: Shutdown script que verifica arquivo instrução em XML que autoriza desligamento.
Enviado por: jeflui em 02 de Maio de 2011, 11:28
Código: [Selecionar]
sed -n 's/.*<desligarpermitido>\(.*\)<\/desligarpermitido>.*/\1/p'Assim você pega o valor, depois só tratar se for igual a 1 =)
Título: Re: Shutdown script que verifica arquivo instrução em XML que autoriza desligamento.
Enviado por: wemersonrv em 02 de Maio de 2011, 11:29
Hum... tranquilo... mas e pra abrir um arquivo xml? o que eu uso no linux?
Título: Re: Shutdown script que verifica arquivo instrução em XML que autoriza desligamento.
Enviado por: irtigor em 02 de Maio de 2011, 12:52
Hum... tranquilo... mas e pra abrir um arquivo xml? o que eu uso no linux?
Ficou vago. Minha resposta seria "use um editor de texto".

Pra desligar
Código: [Selecionar]
dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Stop
Título: Re: Shutdown script que verifica arquivo instrução em XML que autoriza desligamento.
Enviado por: wemersonrv em 02 de Maio de 2011, 17:29
Hum... tranquilo... mas e pra abrir um arquivo xml? o que eu uso no linux?
Ficou vago. Minha resposta seria "use um editor de texto".

Pra desligar
Código: [Selecionar]
dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Stop

Opa... funcionou que é uma beleza a parte de desligar sem ser root... agora preciso que o sistema verifique automaticamente o arquivo xml pra ver se pode rodar o script de shutdown ou não.
Título: Re: Shutdown script que verifica arquivo instrução em XML que autoriza desligamento.
Enviado por: irtigor em 02 de Maio de 2011, 18:22
Use o incron.
Título: Re: Shutdown script que verifica arquivo instrução em XML que autoriza desligamento.
Enviado por: wemersonrv em 20 de Maio de 2011, 09:50
Pessoal... demorei um tempo porque estava concentrado em outras tarefas e hoje conclui o script pra fazer o parse do arquivo xml e verificar se o desligamento está autorizado ou não e faz o shutdown...

Código: [Selecionar]
#!/bin/sh

DESLIGAR = `sed -n 's/.*<desligarpermitido>\(.*\)<\/desligarpermitido>.*/\1/p' config.xml´

if [ $DESLIGAR = '1' ]
then
dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Stop
fi

Valeu a todos pelo auxilio...
Título: Re: Shutdown script que verifica arquivo instrução em XML que autoriza desligamento.
Enviado por: wemersonrv em 23 de Maio de 2011, 09:49
Bom dia pessoal...

Fiz uma série de testes aquie Funcionou 99%!  ;D :'(

O problema é que quando ligo a máquina, o script já roda e o <desligarpermitido> continua setado com 1 e desliga o micro novamente. Então, antes de desligar, preciso alterar o conteúdo do <desligarpermitido> para 0 e só então fazer o shutdown... como faço pra alterar esse valor e gravar o arquivo usando shell?
Título: Re: Shutdown script que verifica arquivo instrução em XML que autoriza desligamento.
Enviado por: irtigor em 23 de Maio de 2011, 14:04
Usando o programa sed
Código: [Selecionar]
sed -i 's;<desligarpermitido>1</desligarpermitido>;<desligarpermitido>0</desligarpermitido>;g'
Título: Re: Shutdown script que verifica arquivo instrução em XML que autoriza desligamento.
Enviado por: wemersonrv em 23 de Maio de 2011, 14:11
Usando o programa sed
Código: [Selecionar]
sed -i 's;<desligarpermitido>1</desligarpermitido>;<desligarpermitido>0</desligarpermitido>;g'

Beleza... mas como faço pra gravar essa alteração no arquivo config.xml ?
Título: Re: Shutdown script que verifica arquivo instrução em XML que autoriza desligamento.
Enviado por: irtigor em 23 de Maio de 2011, 14:29
 sed -i 's;<desligarpermitido>1</desligarpermitido>;<desligarpermitido>0</desligarpermitido>;g' /caminho/para/o/arquivo/texto
Título: Re: Shutdown script que verifica arquivo instrução em XML que autoriza desligamento.
Enviado por: wemersonrv em 23 de Maio de 2011, 14:42
Maravilha... valeu!!!!!