Linuxコマンドラインから任意の場所の日の出と日没の時刻を取得する方法
目的
目的は、コマンドラインとbashシェルスクリプトを使用して、任意の場所の日の出と日の入りの時間情報を取得することです。
オペレーティングシステムとソフトウェアのバージョン
- オペレーティングシステム: - Linuxディストリビューションに依存しない。
要件
lynxツールをインストールし、シェルコマンドラインにアクセスできるようにしました。あなたの位置コードはhttps://weather.codes/search/から取得しました。
難しさ
イージー
協定
- # – 指定されたLinuxコマンドは、rootユーザーとして直接実行するか、
sudoコマンドを使用して実行する必要があります。 - $ – 一般的な非特権ユーザーとして実行される必要があるLinuxコマンドを要求します
指示
私が日の出と日の入りの時刻を取得する主な動機、つまりこのシンプルなスクリプトを書く理由は、ホームオートメーションのためです。私のケースでは、太陽光発電がデバイスの電力要件に適している時に特定のデバイスを起動したいと考えています。正確な日の出と日の入りの時刻情報があり、適切な時間数で開始時刻と終了時刻をオフセットできる場合です。
日の出と日没のスクリプト
以下の内容を持つシェルスクリプトを作成します。例:sunrise-sunset.sh
#!/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"
あるいは、GitHubから最新バージョンをクローンすることもできます:
git clone https://github.com/linuxconfig/Sunrise-Sunset-Shell-Script.git
https://weather.codes/search/ から位置コードを取得し、現在の例のコードを置き換えながらそれを location 変数に割り当てます。ファイルを保存し、実行可能にします:
chmod +x sunrise-sunset.sh
日の出と日の入りの時間を取得する
Linuxシステムでlynxコマンドが利用可能であることを確認するか、次のコマンドを実行してください:
UBUNTU/DEBIAN
apt install lynx
CENTOS/REDHAT
yum install lynx
それをインストールするためには。スクリプトを実行するために残っているすべては次のとおりです:
./sunrise-sunset.sh
Sunrise for location LOXX0001: 06:47
Sunset for location LOXX0001: 18:34
このスクリプトが私と同じように役立つことを願っています。