#!/bin/bash NEWUSERSFILE=/tmp/support/newusers OPTION=$1 case $OPTION in '') ;; -v) VERBOSE=y ;; -h) echo "Usage: $0 [-h|-v]" echo exit ;; *) echo "Usage: $0 [-h|-v]" echo exit 1 ;; esac for ENTRY in $(cat $NEWUSERSFILE); do FIRSTNAME=$(echo $ENTRY | cut -d: -f1) LASTNAME=$(echo $ENTRY | cut -d: -f2) TIER=$(echo $ENTRY | cut -d: -f4) FIRSTINITIAL=$(echo $FIRSTNAME | cut -c 1 | tr 'A-Z' 'a-z') LOWERLASTNAME=$(echo $LASTNAME | tr 'A-Z' 'a-z'); ACCTNAME=$FIRSTINITIAL$LOWERLASTNAME FULLNAME="$FIRSTNAME $LASTNAME" # Test for dups and conflicts ACCTEXIST='' ACCTEXISTNAME='' id $ACCTNAME &> /dev/null if [ $? -eq 0 ]; then ACCTEXIST=y ACCTEXISTNAME="$(grep ^$ACCTNAME: /etc/passwd | cut -d: -f5)" fi # Test for dups and conflicts if [ "$ACCTEXIST" = 'y' ] && [ "$ACCTEXISTNAME" = "$FULLNAME" ]; then echo "Skipping $ACCTNAME. Duplicate found." elif [ "$ACCTEXIST" = 'y' ]; then echo "Skipping $ACCTNAME. Conflict found." else useradd $ACCTNAME -c "$FULLNAME" if [ "$VERBOSE" = 'y' ]; then echo "Added $ACCTNAME." fi fi done # Create report TOTAL=$(cat $NEWUSERSFILE | wc -l) TIER1COUNT=$(grep -c :1$ $NEWUSERSFILE) TIER2COUNT=$(grep -c :2$ $NEWUSERSFILE) TIER3COUNT=$(grep -c :3$ $NEWUSERSFILE) TIER1PCT=$[ $TIER1COUNT * 100 / TOTAL ] TIER2PCT=$[ $TIER2COUNT * 100 / TOTAL ] TIER3PCT=$[ $TIER3COUNT * 100 / TOTAL ] # Print report echo "\"Tier 1\",\"$TIER1COUNT\",\"$TIER1PCT%\"" echo "\"Tier 2\",\"$TIER2COUNT\",\"$TIER2PCT%\"" echo "\"Tier 3\",\"$TIER3COUNT\",\"$TIER3PCT%\""