您好,我想读取连接到我的 OPENWRT 安装的路由器的所有网络请求,现在我正在借助以下命令获取系统的所有日志
logread -e ': query'
输出中包含以下内容
Mon Sep 11 07:44:20 2017 daemon.info dnsmasq[1377]: query[A] e8037.g.akamaiedge.net from 192.168.150.201
Mon Sep 11 07:44:20 2017 daemon.info dnsmasq[1377]: query[AAAA] e8037.g.akamaiedge.net from 192.168.150.201
Mon Sep 11 07:44:20 2017 daemon.info dnsmasq[1377]: query[A] qa.sockets.stackexchange.com from 192.168.150.201
Mon Sep 11 07:44:29 2017 daemon.info dnsmasq[1377]: query[A] osfsr.lenovomm.com from fe80::dc5f:57fd:640c:6661
但实际的问题是日志读取有很多我不会使用的垃圾数据。所以我必须经过上面的过滤。
有没有什么地方可以告诉 OPENWRT 仅将上述过滤数据记录到日志读取文件。或者将上面的代码重定向到任何。TXT我的路由器的文件(每 30 分钟我会运行一个 cron 作业,将 .txt 代码推送到服务器,以确保路由器不会崩溃。无论如何,它还剩下 1.3 Mb 空间。)
笔记- 我已经尝试过 ipvoxy、ulogd 和其他一些东西,但最后我将使用上述方法直接从日志中读取。
答案1
或者将上述代码重定向到我的路由器的任何 .txt 文件(每 30 分钟我将运行一个 cron 作业将 .txt 代码推送到服务器,以确保路由器不会崩溃。无论如何,它还剩下 1.3 Mb 空间。)
您可以使用重定向。
logread -f | grep ': query' > /path/to/file.txt
然后,您的 cron 作业可以复制该文件并根据需要清空它。
您还可以更改 syslogd 配置文件,以便路由器将其日志推送到 syslog 服务器,然后您可以在服务器上使用 syslogd 进行过滤以仅保存 dnsmasq 标记条目以及过滤器。