나는 bash 스크립트로 정원사를 위한 자동 서리 경보를 원합니다. 이것이 내 생각이다:
존재하다https://askubuntu.com/questions/390329/weather-from-terminal일기예보 정보를 단말기에 입력하는 방법에 대한 아이디어는 많습니다. (이것이 좋을 수도 있습니다: "더 짧은 날씨 출력의 경우http://weather.tuxnet24.deYahoo!의 날씨 데이터를 텍스트 및 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