wtmp 파일의 고유 사용자 수 계산

wtmp 파일의 고유 사용자 수 계산

Wtmp 파일에서 고유 사용자 수를 계산하는 데 어려움을 겪고 있습니다.

이것이 내가 지금까지 가지고 있는 것입니다:

uniqueUsers=$(last | uniq -c | wc -l)

echo "There were '$uniqueUsers' unique users logged on"

어떤 도움이라도 대단히 감사하겠습니다!

답변1

last명령은 다중 열 출력을 제공합니다. 첫 번째 열만 추출하고( awk또는 사용) 해당 작업을 수행할 수 cut있도록 데이터를 정렬해야 합니다 . uniq두 가지를 모두 사용하면 uniq -c중복 wc -l됩니다(하나 선택).

uniqueUsers=$(last |cut -f1 -d ' ' | grep -v -e '^\(\|reboot\|wtmp\)$' |sort -u | wc -l)

답변2

조금 더 짧은 내 찌르기 (나는 자르는 것을 선호하기 때문에) :

uniqueUsers=$(last | awk '{ print $1 }' | sort -u | grep -vE 'reboot|wtmp|^$'| wc -l)

답변3

빈 줄을 무시하고 wtmp를 실행한 후 재부팅하세요.

last | awk '!a[$1]++&&$1!~/reboot|wtmp|^$/' | wc -l

관련 정보