比方說,我有我的IP尾礦進入日誌列表:通標準輸入到Unix主機或挖命令
1.1.1.1
1.1.1.2
1.1.1.3
我想輕鬆地解決他們的主機名。我希望能夠
tail -f access.log | host -
由於主機不能理解stdin的輸入,所以會失敗。無需編寫靜態文件或回退到perl/python/etc,最簡單的方法是什麼?
比方說,我有我的IP尾礦進入日誌列表:通標準輸入到Unix主機或挖命令
1.1.1.1
1.1.1.2
1.1.1.3
我想輕鬆地解決他們的主機名。我希望能夠
tail -f access.log | host -
由於主機不能理解stdin的輸入,所以會失敗。無需編寫靜態文件或回退到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.
使用:
$ cat my_ips | xargs -i dig -x {} +short
myhost1.mydomain.com.
myhost2.mydomain.com.
注意,-i
選項xargs
意味着-L 1
選項。
要首先獲取主人的IP,請參見this answer。
這將實際上打嗝,因爲主機實際上將運行與 主機1.1.1.1 1.1.1.2 導致DNS無效DNS服務器上查找。設置「-d」\ n'「似乎沒有任何幫助。 – tomasz 2009-08-07 20:53:47
使用「xargs -l」(或「xargs -L 1」)確保該命令針對每一行運行。 – 2009-08-07 22:56:54