尾行しているログに入る 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 を取得するには、この回答を参照してください。