【发布时间】:2021-08-29 07:39:00
【问题描述】:
我想通过这个脚本使用 Telegram bot api 监控服务器日志:
#!/bin/bash
CHATID="id"
KEY="key"
TIME="10"
URL="https://api.telegram.org/bot$KEY/sendMessage"
TEXT=$(tee)
curl -s --max-time $TIME -d "chat_id=$CHATID&disable_web_page_preview=1&text=$TEXT" $URL >/dev/null
然后使用管道将日志输出到脚本:
tail -f /var/log/my.log | ./telegram_log.sh
但它不发送输出。
【问题讨论】:
-
你想达到什么目的?在每个新的日志行上发送一条消息?
-
@MarcoLucidi 是的,正是这个
-
你应该处理每个传入的行。目前,我认为您的脚本仍然停留在
TEXT=$(tee)等待stdin结束/关闭,但它永远不会发生,因为tail -f保持打开状态。 -
@MarcoLucidi 我应该使用循环吗?能举个例子吗?
-
是的循环,我正在写一个例子