【RaspberryPi】【Ruby】【nokogiri】【Aterm】無線LANルータ Atermの通信情報ログを取得するスクリプト

プログラミング・Web開発カテゴリを表すパンダのイラスト プログラミング・Web開発

はじめに

我が家の無線LANルータ「Aterm」の通信ログを確認するため、いちいちクイック設定Webにアクセスするのは面倒です。そのため、Raspberry PiからRubyを使ってログを自動取得するスクリプトを作成しました。

前提条件・環境

  • 対象ルータ: Atermシリーズ(基本認証に対応したモデル)
  • 実行環境: Raspberry Pi (Unix系OS)
  • 言語: Ruby
  • 使用ライブラリ: open-uri, kconv, nokogiri

Atermのログ取得URL

Atermの通信ログは、以下のURLにHTTP基本認証でアクセスすることで取得できます。

http://<AtermのIPアドレス>/index.cgi/log_main/syslog_common_c.log

Rubyスクリプトの作成

以下のスクリプトを GetAtermLog.rb という名前で保存します。現代のRubyでは open メソッドの代わりに URI.open を使用します。

require 'open-uri'
require 'kconv'
require 'nokogiri'

user = 'admin'
pass = 'ほげほげ'
url  = 'http://192.168.12.1/index.cgi/log_main/syslog_common_c.log'

begin
  result = URI.open(url, :http_basic_authentication => [user, pass]).read
  doc1 = Kconv.toutf8(result)
  doc2 = Nokogiri::HTML.parse(doc1, nil, nil)

  doc2.css("pre").each do |pre|
    puts pre.text
  end
rescue => e
  puts "エラーが発生しました: #{e.message}"
end

実行方法と出力例

スクリプトを実行するには、ターミナルで以下のコマンドを入力します。

$ ruby GetAtermLog.rb

実行すると、以下のようにルータのシステムログが出力されます。

2013-12-10 22:48:14 iface - 1.ntc: link down, LAN
2013-12-10 22:48:17 iface - 0.ntc: link up, LAN
2013-12-10 22:48:19 iface - 1.ntc: link down, WAN
2013-12-10 22:48:21 iface - 0.ntc: link up, WAN
2013-12-10 22:48:22 wless -25.ntc: channel:36  aAPs:0  nAPs:0 acAPs:0  max normalized rssi:0

Nokogiriのインストールについて

Raspberry Pi環境で nokogiri を利用するには、事前に以下のコマンドでインストールを行う必要があります(環境によってはビルドに時間がかかる場合があります)。

$ gem install nokogiri

まとめ

このスクリプトを使うことで、ブラウザを開かずにコマンドラインから手軽にAtermの通信ログを確認できるようになります。

この記事の更新履歴

この記事は、生成AIを活用した自動レビュー・更新フローにより内容を見直し、必要な修正を反映しています。

2026年9月12日

  • 変更非推奨となったopen-uriのKernel.openをURI.openに変更し、現代のRuby環境に対応させました。
  • 変更HTMLタグによる記述をCocoonテーマに合わせた正しい見出し構造およびシンタックスハイライト付きのコードブロックへ修正しました。

文書情報

記事タイトル
【RaspberryPi】【Ruby】【nokogiri】【Aterm】無線LANルータ Atermの通信情報ログを取得するスクリプト
作成日
更新日
Source URL
https://papanda925.com/?p=494

ライセンス: 本記事のうち、当サイトが権利を有する本文・自作図表は、特記なき限り CC BY 4.0 で利用できます。生成AIを活用して作成・編集した内容を含みます。コードについて、別途ライセンス表示またはリンク先GitHubリポジトリのライセンスがある場合は、その条件を優先します。引用・第三者資料・画像・商標等は本ライセンスの対象外です。 利用ポリシー

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