charge-lnd の自動実行結果をtelegramに投稿する

charge-lnd の自動実行結果をtelegramに投稿する

Umbrel で charge-lnd を cron で自動化できると、次は設定値の変化を確認したくなる。ThunderHubのChannelsで確認したり、sshでログインしてログを確認したり、それって結局手動実行してるのと同じだけ手間かけてるじゃん。

というわけで、cron が実行されると、結果をtelegramに投稿することで簡単に履歴が見られるようにしてみた。
使ったのは、
・telegram bot
・curl コマンドでtelegramに書き込み

参考にしたのはこの辺り。https://yuis-programming.com/?p=1241

詳しいやり方を書いてきます。

Telegram bot の設定

まずは、Telegram bot の設定をしましょう。

https://telegram.me/BotFather からBotFatherを開きます。

/newbot コマンドで新しいボットを作成します。

ボットの名前を聞かれるので、適当にcharge-lndとしました。

ボットのusername を聞かれるので、katana_charge_botにしました。katana_charge-lnd_botだと、invalidって怒られたので。
この名前は他のbotと重複できないので、ちょっと長めに付けたほうが通りやすくなります。

t.me から始まる URL(①) は Telegram 上でのそのbotでのチャットのアドレス。アクセスして開いて、Messageに「/start」を入力し、ボットを開始します。

ブラウザからもhttps://api.telegram.org/bot<TOKEN>/getUpdatesでアクセス。<TOKEN>は上の②で得られたトークンに置き換えてください

得られたレスポンスの中の③の部分、「"id":1********5,」の1********5がchatIDです。

シェルスクリプトの準備

ここまで出来たら、次はシェルスクリプトを準備していきます。

charge-lnd をセットアップした際には、cronで docker run ......charge-lnd:latest のコマンドを実行するようにしていると思います。ここに書き足す形でも悪くはないのですが、わかりにくいので、今回はシェルスクリプトを別途用意します。

ターミナルソフトから、ssh -t umbrel@umbrel.local でumbrelにログイン。

nano ~/charge-lnd.sh でシェルスクリプトを新規作成。

シェルスクリプトの中身は以下の通り。

#!/bin/sh

#VAR にcharge-lndの実行結果を格納。
VAR=`docker run --rm --network=umbrel_main_network -e GRPC_LOCATION=[YOUR.LND.IP.ADDRESS]:10009 -e LND_DIR=/data/.lnd -e CONFIG_LOCATION=/app/charge.config -v /home/umbrel/umbrel/lnd:/data/.lnd -v /mnt/data/upgrades/charge-lnd/charge.config:/app/charge.config accumulator/charge-lnd:latest`

#Telegram にポスト
curl -s -X POST https://api.telegram.org/bot[TOKEN]/sendMessage -d chat_id=[chatID] -d text="$VAR"


VAR=`docker run ......charge-lnd:latest`の``で囲った中身が、もともとcronに記述していたものです。

[YOUR.LND.IP.ADDRESS]、[TOKEN]、[chatID]は、それぞれ適切なものに置き換えてください。

同じやり方で、Telegramに投稿する代わりに、LINEなどに送ることもできます。LINEに送る場合は、以下の[Line notify token]をLINE Notifyで得られたパーソナルアクセストークンに置き換えます。(詳細は省略)

#LINE にポスト
curl -X POST -H 'Authorization: Bearer [Line notify token]' -F 'message='"$VAR" https://notify-api.line.me/api/notify

シェルスクリプトを保存したら、コマンドラインから実行属性を追加します。

chmod a+x ~/charge-lnd.sh

ここまで出来たら、コマンドラインから~/charge-lnd.sh を実行して、Telegramに書き込まれることを確認しましょう。ただし、連続で実行してもcharge-lndの設定値に変化が発生しないので、何度も試す場合は、feeを手動で変更するなどして、設定値が変化するようにしておく必要があります。

cronの設定

無事にシェルスクリプトの動作が確認出来たら、最後はcronの設定です。

例えば、12時間に1回、ホームディレクトリに置いてるcharge-lnd.shを実行する場合、crontab -e から以下を記載します。

0 */12 * * * ~/charge-lnd.sh

あとは時間が来て、Telegramにcharge-lndの設定値が書き込まれているのを見届ければ完成です。

umbrelの時間(UST)は日本時間(JST)と9時間ずれているので注意。今回の例では日本時間9時と21時に実行されます。

Remaining : 0 characters / 0 images
100

Sign up / Continue after login

Related stories

Writer

katana🗡 Lightning Node 運用中。03328dba4e263835416d35b14a2f0298f567c6bb5dad7e3d33d671de30d542b4c1

Share

Popular stories

charge-lnd で fee や max_htlc を自動設定[umbrel 0.5.0以降対応]

900

Lightning node の運用まとめ

464

Raspberry Pi 用の UPS(無停電電源装置) で umbrel の瞬停対策

459