Posso detectar no Ubuntu se o computador com o Windows XP está ligado?

0

Gostaria de medir quanto um laptop com o Windows XP pode ser executado com baterias. Eu tenho outro computador com o Xubuntu que eu posso usar para medir se o computador com Windows XP está ligado. Mas como posso conectar esses dois computadores e como posso medir se o Xubuntu consegue ler dados do computador com Windows XP? Ou o XP deve enviar alguns dados para o Xubuntu?

    
por Jaakko Seppälä 08.12.2015 / 22:28

1 resposta

1

Acho que a solução mais fácil é usar solicitações de eco ICMP (ping). Para isso, você deve configurar a caixa XP para responder às mensagens ICMP, conforme descrito aqui .

Agora, verifique se o Linux e a máquina XP estão na mesma rede e se ambos têm um endereço IP. Você pode verificar isso no Linux com

ifconfig

e no Windows com

ipconfig /all

Você precisará do endereço IP do XP para o seguinte script:

#!/bin/bash
time (
    while [ true ]; do
        ping -c 1 "$1" > /dev/null || break
        sleep 60
    done
)

Salvar este script em algum arquivo, por exemplo pingtimer.sh e torná-lo executável com chmod +x pingtimer.sh

Agora você pode iniciá-lo com

./pingtimer.sh <target IP address>

dentro do mesmo diretório.

Vamos quebrar isso:

  1. time () mede o tempo que o comando dentro do () levou para executar.
  2. while [true]; do ...; done repete o comando interno ( ... ) infinitamente ou até ser interrompido ou quebrado.
  3. ping -c 1 "$1" > /dev/null envia uma solicitação de ping para o endereço IP armazenado em $1 , que é o primeiro argumento do programa, ou seja, o IP de destino. Como ping produz muita saída, vamos apenas descartar isso para /dev/null
  4. ... || break quebrará o 'infinito' enquanto loop se o comando antes do operador || retornar um valor diferente de zero. No caso de ping, isso acontece se pelo menos um pacote ICMP não foi respondido. Se isso acontecer, por exemplo porque a máquina de destino está desativada, o programa será encerrado, imprimindo a saída de time .
  5. sleep 60 fará com que o processo durma por 60 segundos, após o qual outra solicitação de eco ICMP é enviada. Ajuste este valor para provar. Observe que alguns firewalls deixarão de responder se você começar a inundá-lo com pings.
por s3lph 08.12.2015 / 22:48