Teku2-Log (テク・スクエア・ログ)

■スクリプトについて

Teku2-Logは,複数のWebサイトの更新状況を自動で検知し,一覧HTMLと共有用JSONを生成するPHPスクリプトです。これまで利用してきたアンテナシステム(朝日奈アンテナ,なつみかん,WDB,rAntenna)の代替スクリプトとして,Geminiを利用して作成しました。双方向・メッシュ同期にも対応し,複数の拠点から得られた最新のサイト更新情報を,URLベースで名寄せして一元集約することができます。

■使い方(セットアップ)
  1. 監視対象の登録
    $sites 配列に監視対象を追加します。
  2. 同期先の設定(※サボり・集約モード利用時は必須)
    $extSources に他拠点の共有用JSONのURLを登録してください。
    同期元がない場合,サボり・集約機能は動作しません。
  3. 基本設定の変更
    $accessKey を自分専用に変更し,$mergeMode / $lazyMode で動作モードを選択。
  4. 実行(更新処理)
    ・ブラウザから:teku2log.php?key=パスワード を実行。
    ・コマンドラインやcronから:パスワード(引数)不要で直接実行可能です。
  5. 確認
    同一階層に更新リスト(HTML)と共有用データ(JSON)が自動生成されます。
■三つの動作モード(戦略の違い)
  • 個別管理モード (Solo)
    すべてのサイトに対して「自力調査」を完遂します。各拠点が独立したエビデンス(証拠)を持つ,最も愚直で確実なモードです。
  • サボりモード (Lazy) ※低負荷巡回(★同期設定必須)他拠点が既に日付を掴んでいれば自力調査をスキップします。【他拠点にデータがない】場合にのみ自力で動く「賢さと執念」のモードです。
  • 全拠点集約モード (Merge) (★同期設定必須)
    自分と他拠点のすべての結果を並べ,「全拠点で最も新しい1件」をURLベースで抽出・合体。最新情報だけが並ぶ一覧を生成します。
■更新検知の優先順位(判定ロジック)

以下の順でチェックを行い,上にあるほど精度が高く,下に行くほど『泥臭く』変化を拾い上げる設計です。

  1. [R] フィード解析:RSS等から正確な日時を読み取ります。
  2. [H] HTTPヘッダー:サーバーが返す最終更新日(Last-Modified)をチェック。
  3. [K] キーワード監視:設定した「正規表現」の出現・変化を探します。
  4. [L] サイズ比較:ファイルサイズが1バイトでも差があれば更新判定。
  5. [G] 本文テキスト解析:ページ内の文字情報から日付を探し出します。

※ [T] タイムアウト / [0] 取得失敗:通信断絶やページ消滅時のマーク。

■拠点表示の優先ルールとバケツリレー構成

本スクリプトは,URLをキーに「最も新しい日付」を持つ拠点のデータを採用しますが,日付が全く同じ(1秒単位まで一致)場合は以下のルールで表示拠点を決定します。

  • 自力調査(*)が最優先
    「自力で調べた時刻」と「同期データの時刻」が同じ場合,常に 「 *: 自力調査」の結果が優先して採用表示されます。自分の調査結果(エビデンス)を最も信頼する設計です。
  • 同期拠点間の優先度 = リストの記述順
    外部拠点(P, M, C等)同士で日付が同じデータを持っていた場合,同期設定($extSources)の上位に記述された拠点が優先されます。
  • バケツリレー(連鎖同期)の作り方
    拠点を数珠つなぎにしてデータを継承させるには,同期設定の最上部に「一つ手前(上流)の拠点のJSON URL」を指定してください。
    例)[M] の設定最上部に [P] を指定
    → 共通データは「P:外部同期」と表示され,リレーを可視化できます。
    ※自分のJSON URLをリストに含めても,プログラムが自動で除外(スキップ)するため,無限ループの心配はありません。
■注意事項
  • ディレクトリの権限設定
    HTMLとJSONを自動生成するため,設置フォルダには書き込み権限(パーミッション 705 や 707 など)が必要です。
  • セキュリティ設定(重要)
    第三者による不正実行を防ぐため,初期設定の $accessKey は必ず自分専用の複雑な文字列に変更してください。
  • サーバー負荷への配慮
    相手先サーバーへの礼儀として,過度な頻度の自動実行(cron等)は避け,常識の範囲内(例:1時間に1回など)での運用を心がけましょう。
  • タイムアウトと連続アクセス
    本スクリプトは1サイトにつき最大10秒でタイムアウトし,各サイト間に0.2秒の待機時間を設けています。環境に合わせて調整してください。
■免責事項
  • 本スクリプトはフリーソフトですが,著作権は放棄しておりません。
  • 本スクリプトを使用したことによって生じた,いかなる損害(データ消失,サーバー停止,その他トラブル等)についても,作者は一切の責任を負いかねます。
  • 各自の環境で十分にテストを行った上で,自己責任においてご利用ください。
  • 相手先サーバーの設定や構造により,全てのサイトで正確な更新日時取得を保証するものではありません。
■「Teku2-Log」リリース最新版ダウンロード

【ダウンロード】
Teku2-Log v0.1.4 (2026/03/15)
teku2log.zip

【サンプル】
拠点:N ※3つの拠点(P,M,C)を「全拠点集約+サボりモード」で同期
拠点:P 拠点:M 拠点:C ※「全拠点集約モード」で相互に同期

■動作確認環境
  • さくらのレンタルサーバ PHP 8.3.30
  • ロリポップ! PHP 8.3.30
  • XAMPP PHP 8.2.12
■更新履歴
  • サボりモード(低負荷巡回)を実装(v0.1.4)
  • 双方向・メッシュ同期に対応(v0.1.3-dev)
  • マルチソース同期に対応(v0.1.2-dev)
  • 外部JSON同期に対応(v0.1.1-dev)
  • 初版リリース(v0.1.0)※「Blog FreeSide」でソースコード公開

コメント

タイトルとURLをコピーしました