Como atualizar o chromium (F5) do shell script no debian (alternativa do xdotool)

1

Eu preciso encontrar uma alternativa para xdotool . Eu estou usando um Raspberry Pi para atualizar uma página da web regularmente usando o cromo. Para isso, eu uso um script de shell:

xdotool search --name chromium key --clearmodifiers ${RELOAD}

No entanto, xdotool torna meu sistema muito ocupado, até que ele finalmente pare de responder. Haveria alguma alternativa para xdotool que não fosse tão pesada no meu sistema?

Editar (script de shell completo)

#!/bin/bash
a=0
RELOAD="CTRL+R"
while (true)
do
    wget -q --spider http://google.com
    if [ $? == $a ]; then
        ps cax | grep chromium
        if [ $? == $a ]; then
            echo "chrome running"
        else    
            echo "chrome starting"
            /home/pi/Desktop/APPLICATION_CALENDAR.SH &          
        fi
        echo $? $a
        echo "online1"
        xdotool search --name chromium key --clearmodifiers ${RELOAD}
    else
        echo "offline"
        sleep 15s
    fi
sleep 20s   
done
    
por Rui F Ribeiro 03.12.2014 / 16:36

1 resposta

1

A visita a uma página da Web não exige uma interface gráfica completa com um navegador: basta uma solicitação HTTP. Usando cURL e Cron, você deve ser capaz de agendar uma solicitação HTTP a cada n minutos, por exemplo.

Por exemplo, a seguinte chamada cron acessa example.com :

curl http://example.com

Se você der uma olhada na sua saída, verá o código-fonte HTML do seu website. Agora, se você quiser fazer isso, digamos, a cada minuto, você poderia usar ...

watch -n60 curl http://example.com

... que irá assistir a saída de curl a cada 60 segundos.

Se você quiser que tudo isso aconteça em segundo plano, talvez queira agendar um cron job. Execute crontab -e para editar o crontab do seu usuário e insira seu trabalho:

5 * * * * /usr/bin/curl http://example.com > /dev/null 2>&1

Para mais informações sobre o agendamento de trabalhos cron, dê uma olhada aqui .

Agora, enquanto curl geralmente realiza uma solicitação GET , você pode adicionar algumas informações POST à sua solicitação (formulários). Os dados POST podem ser adicionados usando a opção --data :

curl --data='username=myuser&[email protected]' http://example.com

Se você quiser adicionar parâmetros a uma solicitação GET , basta adicioná-los ao URL, assim como eles aparecem no seu navegador.

Outro ponto interessante sobre cURL: cookie jars. Estes permitem que você mantenha uma sessão através de várias solicitações cURL. Por exemplo, se você fizer uma solicitação de login ...

curl -c ~/cookiejar --data='login=mylog&pass=mypass' http://example.com/login.php

... a opção -c armazenará os dados da sua sessão em ~/cookiejar . Agora, se você quiser visitar seu perfil particular ...

curl -c ~/cookiejar http://example.com/private.php

... você poderá acessá-lo, pois as informações do cookie serão transmitidas junto com a solicitação.

Por fim, sugiro que você use SSL sempre que passar credenciais por HTTP. Aqui está um exemplo típico de login:

$ curl -c ~/cookiejar --data='login=mylogin&pass=mypass' https://example.com/login.php
$ curl -c ~/cookiejar https://example.com/private.php
$ curl -c ~/cookiejar https://example.com/logout.php
$ rm ~/cookiejar

... ou, para os mais paranoicos: shred -fuvz -n3 ~/cookiejar .

Note que cURL está disponível como uma biblioteca é uma variedade de linguagem, como PHP , < href="http://curl.haxx.se/libcurl/c/"> C , Python e assim por diante ...

    
por 05.12.2014 / 21:34