사용자가 로그인했는지 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 파일을 확인하십시오. 여기에는 사용자 로그인의 기록 데이터가 포함됩니다.