Script para ver se o usuário efetuou logoff

1

Eu criei este programa para ver se um usuário está conectado e verifica cada minuto.

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"

Mas minha pergunta é como posso modificar este programa para ver se um usuário fez logoff ao invés de fazer o login?

Obrigado por qualquer ajuda fornecida! Muito apreciado.

    
por Aphicis 13.11.2014 / 01:27

2 respostas

0

Você pode filtrar o arquivo de log seguro (supondo que esteja apenas verificando o login remoto). O arquivo de log seguro informa quando um usuário efetua login e logout. Verifique também o comando lastlog, bem como os arquivos wtmp e utmp. Eles conterão dados históricos para logins de usuários.

    
por 13.11.2014 / 03:37
0

Tente isso.

#!/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"
    
por 30.11.2016 / 15:58