액세스 로그에서 IP 주소를 선택하고 해당 IP 주소가 어디서 왔는지 알고 싶습니다. 이를 위해 다음 스크립트를 사용합니다.
cat /var/log/nginx/access.log |awk '{ print $1}'|sort| uniq -c |sort -n -r | awk '{print $2}'
예시 출력은 다음과 같습니다:
1.2.3.4
5.6.7.8
...
nslookup
파이프라인 명령을 사용하여 결과를 전달할 수 있지만 |
결과를 쉽게 읽을 수 없기 때문에 host
명령을 사용하려고 했지만 유일한 출력은 host
명령 사용 방법에 대한 정보입니다.
host
명령을 사용하여 IP 주소를 일괄적으로 확인하려면 어떻게 해야 합니까 ?
답변1
xargs를 사용하면 입력을 표준 입력의 인수로 변환하여 명령으로 변환할 수 있습니다.
-n 옵션은 인수를 하나로 제한하고(개행 문자로 구분) 호스트 각각에 대해 여러 번 호출하므로 다음을 수행할 수 있습니다.
cat /var/log/nginx/access.log |awk '{ print $1}'|sort| uniq -c |sort -n -r | awk '{print $2}' | xargs -n 1 host