はじめに
我が家の無線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テーマに合わせた正しい見出し構造およびシンタックスハイライト付きのコードブロックへ修正しました。

