사용자가 로그아웃했는지 확인하는 스크립트

사용자가 로그아웃했는지 확인하는 스크립트

사용자가 로그인했는지 1분마다 확인하기 위해 이 프로그램을 만들었습니다.

if [ "$#" -ne 1 ]
then
    echo "Usage: mon user"
    exit 1
fi
user="$1"
until who | grep "^$user " > /dev/null
do
    sleep 60
done

echo "$user has logged on"

하지만 내 질문은 사용자가 로그인 대신 로그아웃되었는지 확인하기 위해 이 프로그램을 수정하는 방법입니다.

당신이 제공할 수 있는 도움에 감사드립니다! 고마워하는.

답변1

이 시도.

#!/bin/bash

[ "$#" -ne 1 ] && {
    echo "Usage: $(basename $0) user"
    exit 1
}

user="$1"
grep "^$user:" /etc/passwd > /dev/null || {
    echo "There's no user called $user in this system."
    exit 2
}

who | grep "^$user " > /dev/null && sleep 60

echo "$user has logged out"

답변2

보안 로그 파일을 필터링할 수 있습니다(원격 로그인만 확인한다고 가정). 보안 로그 파일은 사용자가 로그인 및 로그아웃할 때 알려줍니다. 또한 lastlog 명령과 wtmp 및 utmp 파일을 확인하십시오. 여기에는 사용자 로그인의 기록 데이터가 포함됩니다.

관련 정보