尾行しているログに入る IP のリストがあるとします。
1.1.1.1
1.1.1.2
1.1.1.3
それらをホスト名に簡単に解決したいと思います。できるようになりたい
tail -f access.log | host -
ホストがこのように標準入力からの入力を理解しないため、これは失敗します。静的ファイルを作成したり、perl/python/etc. にフォールバックしたりする必要がない最も簡単な方法は何ですか?
使用xargs -l
:
tail -f access.log | xargs -l host
readビルトインを使用することもできます。
tail -f access.log | while read line; do host $line; done
cat
以下のコマンドでは、必要に応じてなどに置き換えtail -f
ます。
使用host
:
$ cat my_ips | xargs -i host {}
1.1.1.1.in-addr.arpa domain name pointer myhost1.mydomain.com.
1.1.1.2.in-addr.arpa domain name pointer myhost2.mydomain.com.
使用dig
:
$ cat my_ips | xargs -i dig -x {} +short
myhost1.mydomain.com.
myhost2.mydomain.com.
-i
オプション to はオプションをxargs
意味することに注意してください-L 1
。
最初にホストの IP を取得するには、この回答を参照してください。