![Bash에서 다른 열 형식 지정](https://linux55.com/image/104041/Bash%EC%97%90%EC%84%9C%20%EB%8B%A4%EB%A5%B8%20%EC%97%B4%20%ED%98%95%EC%8B%9D%20%EC%A7%80%EC%A0%95.png)
내 서버에 연결된 IP 수를 확인하려면 다음 명령을 사용합니다.
sudo awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -nr
두 번째 열에는 고유 IP와 이 IP가 Nginx를 요청한 횟수를 표시합니다. 예:
23 123.45.6.8
3 34.56.78.4
1 8.9.4.3
이 IP의 현지화를 다루는 세 번째 열을 원합니다. 이를 위해 나는 geoiplookup
.
출력 예:
23 123.45.6.8 Netherlands
3 34.56.78.4 England
1 8.9.4.3 Netherlands
출력 예 geoiplookup
:
GeoIP Country Edition: US, United States
#or
GeoIP Country Edition: FR, France
따라서 ","로 나누는 것으로 충분합니다.
이전 출력을 세 번째 열의 현지화로 변환하는 방법하나철사?
답변1
sudo awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -nr | awk '{"geoiplookup "$2" | egrep -o Country.*[A-Z]{2}" | getline line; split(line,a," "); print $1, a[3], $2}'