在使用Telegram API的情况下进行操作

时间:2018-09-24 18:33:09

标签: bash if-statement while-loop telegram-bot

我正在尝试监视24/7流。 为此,Iam监视我的树莓的网络速度。

网络速度(以Kbit为单位):

(old="$(</sys/class/net/eth0/statistics/rx_bytes)"; while $(sleep 1); do  now=$(</sys/class/net/eth0/statistics/rx_bytes); echo $((($now-$old)/1024)); old=$now; done)

输出单位为Kbit / s:

    216
    384
    288
    360
    336
    360

现在我想使用电报API来触发速度是否下降到100 Kbit / s以下

电报代码:

TELEGRAM=$(curl -s -X POST 'https://api.telegram.org/<BOT ID>:<API KEY>/sendMessage?chat_id=<ID>&text="Stream has problems"')

为此,我需要执行while循环和if条件。

亲切的问候, Goeks1

编辑////

$(old="$(</sys/class/net/eth0/statistics/rx_bytes)"; while $(sleep 1); do  now=$(</sys/class/net/eth0/statistics/rx_bytes); if (( (now-old)/1024 < 1000 )); then $TELEGRAM ; fi echo $((($now-$old)/1024)); old=$now; done)

1 个答案:

答案 0 :(得分:0)

我已经解决了。解决方案如下。

#!/bin/bash

OLD="$(</sys/class/net/eth0/statistics/rx_bytes)"
i=1
        while $(sleep 1m); do
NOW=$(</sys/class/net/eth0/statistics/rx_bytes)

if (( (NOW-OLD)/1024 > 100 )) ; then

        remainder=$(( i % 3 ))
        [ "$remainder" -eq 0 ] && curl -s -X POST 'https://api.telegram.org/<BOT ID>:<API KEY>/sendMessage?chat_id=<ID>&text="Stream has problems"'
        i=$(( i + 1 ))
fi
OLD=$NOW
done