查看用户是否已注销的脚本

查看用户是否已注销的脚本

我创建了这个程序来查看用户是否登录并且每分钟检查一次。

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 文件。它们将包含用户登录的历史数据。

相关内容