ASUSルーター RT-AX56UのシステムログをSyslogサーバーとしても利用しているRaspberry Piに転送しています。
このログをgrepしたときに、「バイナリファイル (標準入力) に一致しました」と最終行に表示されました。
テキスト処理をするときに、この一行が表示されると非常に邪魔ですので、「バイナリファイル (標準入力) に一致しました」が表示されないようにしなければなりません。
英語表記だと、Binary file (standard input) matches です。
事象
こんな感じで表示されます。
1 2 3 4 5 6 7 8 9 10 |
pi@pi:/var/log$ cat /var/log/remote-syslog.1 | grep -i ntp Oct 18 10:23:25 RT-AX56U ntp: start NTP update Oct 18 22:23:23 RT-AX56U ntp: start NTP update Oct 19 10:23:20 RT-AX56U ntp: start NTP update Oct 19 22:23:18 RT-AX56U ntp: start NTP update Oct 20 10:23:16 RT-AX56U ntp: start NTP update Oct 20 22:23:14 RT-AX56U ntp: start NTP update Oct 21 10:23:12 RT-AX56U ntp: start NTP update バイナリファイル (標準入力) に一致しました pi@pi:/var/log$ |
grepした結果をパイプで次のコマンドに渡す場合に邪魔です。
対応
grepのオプション a を使います。
-a は、バイナリファイルをテキストファイルとみなして処理します。
–binary-files=text オプションと同じ意味のようです。
知りませんでした。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
pi@pi:/var/log$ cat /var/log/remote-syslog.1 | grep -ia ntp Oct 18 10:23:25 RT-AX56U ntp: start NTP update Oct 18 22:23:23 RT-AX56U ntp: start NTP update Oct 19 10:23:20 RT-AX56U ntp: start NTP update Oct 19 22:23:18 RT-AX56U ntp: start NTP update Oct 20 10:23:16 RT-AX56U ntp: start NTP update Oct 20 22:23:14 RT-AX56U ntp: start NTP update Oct 21 10:23:12 RT-AX56U ntp: start NTP update Oct 21 16:35:32 192.168.1.250 [4C: E6:76:XX:XX:XX] WZR-HP-G302H ntpclient: start ntpclient Oct 21 16:35:33 192.168.1.250 [4C: E6:76:XX:XX:XX] WZR-HP-G302H ntpclient: probe_count=0 hostname=ntp.nict.jp cycle_time=43200 Oct 21 22:23:09 RT-AX56U ntp: start NTP update Oct 22 11:27:14 192.168.1.250 [4C: E6:76:XX:XX:XX] WZR-HP-G302H ntpclient: ntp server address 61.205.120.130 Oct 22 11:27:15 192.168.1.250 [4C: E6:76:XX:XX:XX] WZR-HP-G302H ntpclient: SUCCESS: set time : Thu Oct 22 11:27:14 2020 Oct 22 14:18:08 192.168.1.250 [4C: E6:76:XX:XX:XX] WZR-HP-G302H ntpclient: start ntpclient Oct 22 14:18:09 192.168.1.250 [4C: E6:76:XX:XX:XX] WZR-HP-G302H ntpclient: probe_count=0 hostname=ntp.nict.jp cycle_time=43200 Oct 22 23:17:21 RT-AX56U ntp: start NTP update Jan 1 12:01:05 192.168.1.253 NTP: NTP Server Start Jan 1 12:01:05 192.168.1.253 NTP: NTP Connection Failed => Hostname: ntp.nict.jp Oct 23 11:17:18 RT-AX56U ntp: start NTP update Jan 2 00:02:10 192.168.1.253 NTP: NTP Server Start Jan 2 00:02:10 192.168.1.253 NTP: NTP Connection Failed => Hostname: ntp.nict.jp Oct 23 23:17:16 RT-AX56U ntp: start NTP update Jan 2 12:03:15 192.168.1.253 NTP: NTP Server Start Jan 2 12:03:15 192.168.1.253 NTP: NTP Connection Failed => Hostname: ntp.nict.jp Oct 24 11:17:14 RT-AX56U ntp: start NTP update May 5 14:05:21 RT-AX56U ntp: start NTP update Oct 24 13:23:45 RT-AX56U rc_service: ntp 1865:notify_rc restart_diskmon Oct 24 13:25:34 RT-AX56U hour monitor: ntp sync fail, will retry after 120 sec May 5 14:05:21 RT-AX56U ntp: start NTP update Oct 24 17:20:10 RT-AX56U rc_service: ntp 1796:notify_rc restart_diskmon Oct 24 17:21:59 RT-AX56U hour monitor: ntp sync fail, will retry after 120 sec Jan 3 12:05:25 192.168.1.253 NTP: NTP Server Start Jan 3 12:05:25 192.168.1.253 NTP: NTP Connection Failed => Hostname: ntp.nict.jp Oct 25 05:20:08 RT-AX56U ntp: start NTP update Jan 4 00:06:29 192.168.1.253 NTP: NTP Server Start Jan 4 00:06:29 192.168.1.253 NTP: NTP Connection Failed => Hostname: ntp.nict.jp Oct 25 17:20:05 RT-AX56U ntp: start NTP update Jan 4 12:07:34 192.168.1.253 NTP: NTP Server Start Jan 4 12:07:34 192.168.1.253 NTP: NTP Connection Failed => Hostname: ntp.nict.jp Oct 26 05:20:03 RT-AX56U ntp: start NTP update pi@pi:/var/log$ |
-aを付けていないときは、テキストファイルとして扱われていなかったためでしょうか。検索できたレコードが増えました。
ファイルの文字コード形式に注意を払わないと、正しい結果が得られないですね。
これは気を付けなければなりません。
ちなみに、検索対象ファイルの /var/log/remote-syslog.1 は、nkf -g で文字コードを確認したら、ASCIIでした。
1 2 3 |
pi@pi:/var/log$ nkf -g /var/log/remote-syslog.1 ASCII pi@pi:/var/log$ |
以上、「バイナリファイル (標準入力) に一致しました」が出たときの対処法でした。
コメント