So erhalten Sie die Sonnenaufgangs- und Sonnenuntergangszeit für einen beliebigen Ort über die Linux-Befehlszeile
Objektiv
Das Ziel ist es, die Befehlszeile und das Bash-Shell-Skript zu verwenden, um Informationen über die Sonnenaufgangs- und Sonnenuntergangszeit für einen bestimmten Ort zu erhalten.
Betriebssystem- und Softwareversionen
- Betriebssystem: – Linux-Distribution agnostisch.
Anforderungen
Installiertes Lynx-Tool und Zugriff auf die Shell-Befehlszeile. Ihr Standortcode, den Sie von https://weather.codes/search/ erhalten haben.
Schwierigkeit
LEICHT
Konventionen
- # – erfordert, dass bestimmte Linux-Befehle mit Root-Rechten ausgeführt werden, entweder direkt als Root-Benutzer oder mit dem Befehl
sudo - $ – erfordert, dass bestimmte Linux-Befehle als normaler, nicht privilegierter Benutzer ausgeführt werden
Anweisungen
Die Hauptmotivation für mich, die Sonnenaufgangs- und Sonnenuntergangszeiten zu erhalten, daher ist das Schreiben dieses einfachen Skripts für eine Heimautomatisierung. In meinem Fall möchte ich bestimmte Geräte in Zeiten starten, in denen die Solarstromerzeugung für den Strombedarf des Geräts ausreicht. Vorausgesetzt, ich habe eine korrekte Sonnenaufgangs- und Sonnenuntergangszeitinformation und kann die Start-End-Zeit mit einer angemessenen Anzahl von Stunden ausgleichen.
Sonnenaufgang & Sonnenuntergang Skript
Erstellen Sie ein Shell-Skript, z. B. sunrise-sunset.sh mit folgendem Inhalt:
#!/bin/bash
First obtain a location code from: https://weather.codes/search/
Insert your location. For example LOXX0001 is a location code for Bratislava, Slovakia
location="LOXX0001"
tmpfile=/tmp/$location.out
Obtain sunrise and sunset raw data from weather.com
wget -q "https://weather.com/weather/today/l/$location" -O "$tmpfile"
SUNR=$(grep SunriseSunset "$tmpfile" | grep -oE '((1[0-2]|0?[1-9]):([0-5][0-9]) ?([AaPp][Mm]))' | head -1)
SUNS=$(grep SunriseSunset "$tmpfile" | grep -oE '((1[0-2]|0?[1-9]):([0-5][0-9]) ?([AaPp][Mm]))' | tail -1)
sunrise=$(date --date="$SUNR" +%R)
sunset=$(date --date="$SUNS" +%R)
Use $sunrise and $sunset variables to fit your needs. Example:
echo "Sunrise for location $location: $sunrise"
echo "Sunset for location $location: $sunset"
Alternativ können Sie auch die neueste Version von github klonen:
git clone https://github.com/linuxconfig/Sunrise-Sunset-Shell-Script.git
Rufen Sie Ihren Standortcode von https://weather.codes/search/ ab, und weisen Sie ihn der Variablen location zu, während Sie den aktuellen Beispielcode ersetzen. Speichern Sie die Datei und machen Sie sie ausführbar:
chmod +x sunrise-sunset.sh
Erhalten Sie Sonnenaufgangs- und Sonnenuntergangszeiten
Stellen Sie sicher, dass der Befehl lynx auf einem Linux-System verfügbar ist, oder führen Sie Folgendes aus:
UBUNTU/DEBIAN
apt install lynx
CENTOS/REDHAT
yum install lynx
, um es zu installieren. Alles, was noch zum Ausführen des Skripts übrig bleibt:
./sunrise-sunset.sh
Sunrise for location LOXX0001: 06:47
Sunset for location LOXX0001: 18:34
Ich hoffe, Sie finden dieses Skript genauso nützlich wie ich.