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