ホーム » T-Saitoh

T-Saitoh」カテゴリーアーカイブ

システム

最近の投稿

アーカイブ

カテゴリー

Raspbian を bullseyeからbookwormへ

新しい bookworm の sources.list を追加して、sudo apt dist-upgrade する。まずは、一番パワーのある ARMv7 rev.4 の Pi について実行。

((( /etc/apt/sources.list.d/12-bookworm.txt )))
deb http://raspbian.raspberrypi.org/raspbian/ bookworm main contrib non-free rpi

猫寺の桜

{CAPTION}

Ubuntu 24.04 LTS を 24.10 normal に更新

ただのメモ

自宅サーバを更新するにあたって、Ubuntu 24.04 LTS を入れたけど、以前の Debian では testing で運用していたし、Ubuntu も LTS より 新しくさせたい。

ということで、Ubuntu 24.04 LTS(Noble Numbat)  から 24.10 normal(Oracular Oriole) に更新。

$ sudo apt install ubuntu-release-upgrader-core
$ sudo vi /etc/update-manager/release-upgrades

((( 修正 )))
  # /etc/update-manager/release-upgrades
- Prompt=lts
+ Prompt=normal

$ do-release-upgrade 

味真野小学校の桜

{CAPTION}

車のバッテリー式空気入れ

満充電だったけど、2台目の7本目でバッテリー切れ。次使うときは、タイヤ交換しながら、充電する方法にしないとダメだな。
{CAPTION}

越前たけふ駅までウォーキング

久々の駅までウォーキング。 (猫寺経由)

疲れた

当然の猫寺
{CAPTION}
先日、ママ誕プレに、ウォーキング用のウェストバックを買ったので、初お試し。
{CAPTION}

inotify-tools ふむふむ

homebridge-people-pro で ping 相手の有無を検出できるが、これに合わせて通知をしたい。

shell script で実現しようと思うと、crontab で file-exist と思うけど、crontab の頻度と通知の遅れのトレードオフ。

でも、ファイルシステムイベント監視の inotify(7) を活用してくれる inotify-tools の中に、inotifywait / fsnotifywait というコマンドがあるのか。これなら、shell script で実現できそうだな。

sambaをWindowsのネットワークで表示

以前から、samba を運用しているけど、エクスプローラのネットワーク検索で、samba サーバが見えない。

なにげなく、Gemini に問い合わせをかけてみたら wsdd(Web Services on Devices (WSD) daemon) をインストールする方法を教えてくれた。あらためて、wsdd でググったら、wsdd2 ならインストールするだけとのことであった。ということで、”apt install wsdd2″ でインストール。今までなら、IPアドレス直打ちとかしていたけど、他の PC から簡単に見えるようになった。

switchbot API の排他処理とリトライ

自宅サーバを更新し、Switchbot の温度監視を munin でグラフ化、その結果を nagios4 で結果のモニタリングをしていたけど、新しいサーバで Unknown の状態が頻発している。旧サーバでの運用時より、発生回数が増えている。

排他処理とリトライの追加

Switchbot API での値の取得だけれど、muninでの値取得とnagios4での値取得の処理と重なるとデータ取得に失敗すると思われるので、flock コマンドで排他処理を追加。これである程度は Unknown が減ったが、それでも Unknown 発生する。

しかたがないので、Switchbot API で 成功ステータス100が取れなかった時は、1秒の間をあけて1度だけリトライするようにした。(当初は0.3秒 sleep にしたけど効果が薄かった) これにより Unknown はかなり減ったけど、まだ失敗することがある。しかしながら、Switchbot API の1日あたりの回数制限もあるし、何度もリトライさせるのはやめておこう。

#!/bin/bash

. "/usr/local/etc/switchbot/token-v11.sh"

function curl_status() {
    # flockで排他処理
    /usr/bin/flock -x /tmp/switchbot-api.lock \
    /usr/bin/curl -s --request GET \
                  -H "Content-Type: application/json" -H "Authorization: ${token}" \
                  -H "sign: ${sign}" -H "nonce: ${nonce}" -H "t: ${t}" \
                  "${url_list_v11_meter}"
}

function device_status() {
    url_list_v11_meter="${url_list_v11}/$1/status"
    JQ=/usr/bin/jq

    json=$(curl_status)
    state=$($JQ '.statusCode' <<< "$json" )
    # 取得に失敗したら1度だけリトライ
    if [ "$state" != "100" ]; then
        # リトライ間隔(sleep 0.3 では効果が薄かった)
        sleep 1
        json=$(curl_status)
    fi
    $JQ -r '. | (.statusCode|tostring) + " " + (.message|tostring)' <<< "$json"
}

(追記) 0:00 頃に unknown

上記の改良後だけど、2日連続で 0:00 に unknown 状態になる。 Switchbot HUB 自身が、日替わり時に何らかの処理を実行しているんだろうなぁ…

夏タイヤのキズ

夏タイヤに入れ替えたけど、サイドウォールにキズが…。 次のシーズンは買い替えかな。
{CAPTION}

Google 検索

My Google   Yahoo

Microsoft

ファンサイト