如何从 debian 中的 shell 脚本刷新 chromium (F5)(xdotool 的替代品)

如何从 debian 中的 shell 脚本刷新 chromium (F5)(xdotool 的替代品)

我需要找到替代方案xdotool。我正在使用 Raspberry Pi 使用 Chromium 定期刷新网页。为此,我使用 shell 脚本:

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

然而,这xdotool会让我的系统变得太忙,直到它最终停止响应。是否有任何替代方案xdotool不会对我的系统造成如此沉重的负担?

编辑(完整的shell脚本)

#!/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

答案1

访问网页不需要浏览器的完整图形界面:只需要一个 HTTP 请求。例如,使用 cURL 和 Cron,您应该能够每 n 分钟安排一次 HTTP 请求。

例如,以下cron调用访问example.com

curl http://example.com

如果您查看输出,您将看到网站的 HTML 源代码。现在,如果你想这样做,比如说,每分钟,你可以使用......

watch -n60 curl http://example.com

...这将手表curl每60秒输出一次。

如果您希望所有这些都在后台发生,您可能需要安排一个 cron 作业。运行crontab -e编辑用户的 crontab,然后输入您的作业:

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

有关 cron 作业调度的更多信息,请查看此处

现在,虽然curl通常执行得到请求,您可能想添加一些邮政根据您的要求提供信息(表格)。邮政可以使用开关添加数据--data

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

如果你想添加参数得到请求,只需将它们添加到 URL 中,就像它们出现在浏览器中一样。

关于 cURL 的另一个有趣的点:cookie jars。这些允许您跨多个 cURL 请求维护会话。例如,如果您发出登录请求...

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

...-c交换机会将您的会话数据存储到~/cookiejar.现在,如果您想访问您的私人个人资料...

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

...您将能够访问它,因为您的 cookie 信息将随请求一起传递。

最后,我建议您在通过 HTTP 传递凭据时使用 SSL。这是一个典型的登录示例:

$ 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

...或者,对于更偏执的人来说:shred -fuvz -n3 ~/cookiejar

请注意,cURL 可以作为多种语言的库使用,例如PHP,C,Python, 等等...

相关内容