This script use "who" linux/unix command, result of these command is saved on a file that is checked every 3 seconds with new who execution :
#!/bin/bash
# + Giovanni Palleschi
# + 05/30/2012 13:23
# + Who is logged on or logged out every 3 seconds
echo 'The current time is:'
date
echo ' '
# List Current Users Connected
echo 'The current users are:'
who | cut -d' ' -f1 | sort -u > ./list_user_before
cat ./list_user_before
# Loop control login - logout every 3 seconds
while [ 1 ]; do
sleep 3
# List Current Users Connected
who | cut -d' ' -f1 | sort -u > ./list_user_after
# List of New Users Connected
echo ' '
diff ./list_user_before ./list_user_after | grep "^>" | cut -d' ' -f2 |
while read new_user_login
do
echo 'User' $new_user_login 'has logged in.'
echo ' '
done
# List of Users Disconnected
diff ./list_user_before ./list_user_after | grep "^<" | cut -d' ' -f2 |
while read new_user_login
do
echo 'User' $new_user_login 'has logged out.'
echo ' '
done
tot_users_diff=$(diff ./list_user_before ./list_user_after | wc -l)
if [ $tot_users_diff -eq 0 ]; then
echo 'No user has logged in/out in the last 3 seconds.'
fi
# Move file list user after in file user before for next control
mv -f ./list_user_after ./list_user_before
done
Stay tuned.
Nessun commento:
Posta un commento