我想要一个针对园丁的自动霜冻警报作为 bash 脚本。这就是我的想法:
在https://askubuntu.com/questions/390329/weather-from-terminal如何将天气预报信息输入终端有很多想法。 (这个可能不错:“对于更短的天气输出http://weather.tuxnet24.de提供来自 Yahoo! 的天气数据以文本和 xml 格式。”?)
现在具有挑战性的部分 - 我不知道该怎么做 - 是编写一个脚本:
- 每天检查园丁当地的天气预报数据,
- 从天气预报中提取温度数据(比如说接下来的 5 天),
- 分析它们以检测 0 度或以下的温度并
- 当霜即将来临时,会自动提前提醒用户。
我可以使用哪些工具?有人想尝试/帮助/合作吗?
答案1
这是我编写的一个简短的 bash 脚本,通常可以完成您的需要。这只会检查当前日期和未来 2 天,因为这是 wttr.in 默认返回的内容,但我确信您可以找到一些选项来扩展它(如果需要)。您可能需要使用脚本的邮件发送部分,具体取决于您正在运行的系统以及可用的选项,但如果您陷入困境,这肯定会引起另一个问题。您可以将此脚本添加到您的 crontab 作为日常工作,并接收有关即将到来的冰点温度的电子邮件。
如果农民正在使用 pagerduty 之类的东西(哈哈),您可以将邮件部分更改为 Webhook,通过它向他们发送警报,或者仅通过电子邮件发送 pagerduty 地址。
#!/usr/bin/env bash
json=$(curl -Ss "wttr.in/paris?format=j1")
for ((i=0;i<=2;i++)); do
date=$(jq -r --arg index "$i" '.weather[$index | tonumber] | .date' <<<"$json")
temp=$(jq -r --arg index "$i" '.weather[$index | tonumber] | .mintempC' <<<"$json")
if [[ $temp -le 0 ]]; then
mail -s "There will be frost on $date ($temp degrees)" [email protected]
fi
done