giovedì 31 maggio 2012

Bash shell script to see who is logged on or logged out every 3 seconds

Today a simple bash shell script to check every 3 seconds what user is logged in or logged out.
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

Check first quarter 2024

 Hi all Today, 1st May I'll check my 2024 goals. This is the first time I check it. For me it's a good way to reach more objective p...