현재 로그인된 "루트" 사용자의 IP 주소만 인쇄하는 방법은 무엇입니까?

현재 로그인된 "루트" 사용자의 IP 주소만 인쇄하는 방법은 무엇입니까?

현재 이 명령의 출력 상단에서 내 (루트) IP 주소를 볼 수 있습니다.

last

하지만 내가 원하는 것은 IP 주소가 깔끔하게 인쇄되는 것뿐입니다.

root     pts/1        1.1.1.1      Tue Aug 19 03:33   still logged in

우리의 소망은 단순히 다음을 얻는 것입니다:

1.1.1.1

답변1

따라서 현재 원격으로 로그인한 사용자 목록이 필요합니다 root. 이 명령은 w시스템의 모든 로그인을 나열합니다. 따라서 grep출력을 조작하기 위해 또는 다른 것을 사용할 수 있습니다 .

root그러면 원격 로그인 정보 와 로컬 로그인 정보에 대한 현재 IP 주소가 제공됩니다 .

w -s root

grep필요한 출력을 얻으려면 이 출력과 함께 사용하십시오 .

w -s root | grep -v ":0"

답변2

위에서 언급했듯이 이를 달성하는 방법에는 여러 가지가 있습니다. 나는 awk다음과 같이 사용할 것이다

last | awk '$1 ~ /root/ && /logged/{print $3 | "uniq" ;}' 

또는

last | awk '$1 ~ /root/ && /logged/{a[$3]++}END{ for (i in a) print i}'

답변3

@jasonwryan의 의견에 동의합니다.

last | awk ' $1=/root/ {print $3}'|uniq또는 last | awk ' $1=/root/ {print $3}'|sort -u

답변4

last=`last|tail -n <line number desired here>`;last=($last);echo ${last[2]}

관련 정보