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 Mid Year Objectives

Hi all Today middle year check of my 2026's goals. 1. ENGLISH Improve listening comprehension (So and So)   See at least one or two film...