1. #!/bin/bash 
  2. #This script is used to general a statistics report for user login 
  3. #ken.zhang 
  4. while : 
  5. do 
  6. read -p "please input username:" username 
  7. count=`cat /etc/passwd|cut -d: -f1|grep -c "$username\>"` 
  8. #count=`grep -c $username /etc/passwd`  # 非精确匹配,输入roo 等也会计算在内,不符合要求。 
  9. if [ $count -eq 0 ];then 
  10. echo "Not a valid user!!!" 
  11. continue; 
  12. else 
  13. logintime=`last|grep -c "$username"` 
  14. if [ $logintime -eq 0 ];then 
  15. echo "User never login via console!!!" 
  16. continue; 
  17. fi 
  18. fi 
  19. hour=`last|grep -E 'pts|tty'|grep "$username"|grep -v 'still'|awk -F '(' '{print $2}'|awk -F ')' '{print $1}'|awk -F ':' '{sum+=$1};END{print sum}'` 
  20. min=`last|grep -E 'pts|tty'|grep "$username"|grep -v 'still'|awk -F '(' '{print $2}'|awk -F ')' '{print $1}'|awk -F ':' '{sum+=$2}END{print sum}'` 
  21. let "fhour=$hour+$min/60" 
  22. let "fmin=$min%60" 
  23.  
  24. cat << EOL 
  25. ########## User Login Report ######### 
  26. --- User Name --- Total Login Time --- 
  27.      $username          $fhour hour $fmin min 
  28. EOL 
  29. done