| 1 | #!/bin/bash
|
|---|
| 2 |
|
|---|
| 3 | ITERATIONS=100
|
|---|
| 4 |
|
|---|
| 5 | source `dirname $0`/utils.sh
|
|---|
| 6 |
|
|---|
| 7 | PRINCIPAL=$(get_principal $1)
|
|---|
| 8 | PASSWORD=$(get_password $1)
|
|---|
| 9 | REALM=$(get_realm $1)
|
|---|
| 10 | NT_DOM=$(get_nt_dom $1)
|
|---|
| 11 | SERVER=$2
|
|---|
| 12 |
|
|---|
| 13 | search_users () {
|
|---|
| 14 | ${NET} ads search '(objectCategory=user)' sAMAccountName -k -s $CONFIG_FILE -S ${SERVER} > /dev/null
|
|---|
| 15 | RET=$?
|
|---|
| 16 | if [ $RET -ne 0 ]; then
|
|---|
| 17 | echo "${NET} returned error: $RET"
|
|---|
| 18 | exit 1
|
|---|
| 19 | fi
|
|---|
| 20 | }
|
|---|
| 21 |
|
|---|
| 22 | search_groups () {
|
|---|
| 23 | ${NET} ads search '(objectCategory=group)' sAMAccountName -k -s $CONFIG_FILE -S ${SERVER} > /dev/null
|
|---|
| 24 | if [ $RET -ne 0 ]; then
|
|---|
| 25 | echo "${NET} returned error: $RET"
|
|---|
| 26 | exit 1
|
|---|
| 27 | fi
|
|---|
| 28 | }
|
|---|
| 29 |
|
|---|
| 30 | search_computers () {
|
|---|
| 31 | ${NET} ads search '(objectCategory=computer)' sAMAccountName -k -s $CONFIG_FILE -S ${SERVER} > /dev/null
|
|---|
| 32 | if [ $RET -ne 0 ]; then
|
|---|
| 33 | echo "${NET} returned error: $RET"
|
|---|
| 34 | exit 1
|
|---|
| 35 | fi
|
|---|
| 36 | }
|
|---|
| 37 |
|
|---|
| 38 | search_wildcard () {
|
|---|
| 39 | ${NET} ads search '(objectCategory=*)' sAMAccountName -k -s $CONFIG_FILE -S ${SERVER} > /dev/null
|
|---|
| 40 | if [ $RET -ne 0 ]; then
|
|---|
| 41 | echo "${NET} returned error: $RET"
|
|---|
| 42 | exit 1
|
|---|
| 43 | fi
|
|---|
| 44 | }
|
|---|
| 45 |
|
|---|
| 46 | search_unindexed () {
|
|---|
| 47 | ${NET} ads search '(description=Built-in account for adminstering the computer/domain)' sAMAccountName -k -s $CONFIG_FILE -S ${SERVER} > /dev/null
|
|---|
| 48 | if [ $RET -ne 0 ]; then
|
|---|
| 49 | echo "${NET} returned error: $RET"
|
|---|
| 50 | exit 1
|
|---|
| 51 | fi
|
|---|
| 52 | }
|
|---|
| 53 |
|
|---|
| 54 | set_up () {
|
|---|
| 55 | set_krb_env
|
|---|
| 56 | setup_kinit
|
|---|
| 57 | call_kinit "${PRINCIPAL}" "${PASSWORD}"
|
|---|
| 58 | write_configfile "${REALM}" "${NT_DOM}"
|
|---|
| 59 | }
|
|---|
| 60 |
|
|---|
| 61 | tear_down () {
|
|---|
| 62 | ${KDESTROY}
|
|---|
| 63 | restore_krb_env
|
|---|
| 64 | }
|
|---|
| 65 |
|
|---|
| 66 | set_up
|
|---|
| 67 |
|
|---|
| 68 | echo -e "\tSEARCH INDEXED $2"
|
|---|
| 69 |
|
|---|
| 70 | START_TIME=$(start_timer)
|
|---|
| 71 |
|
|---|
| 72 | echo -en "\t"
|
|---|
| 73 | for i in $( ${SEQ} 1 $ITERATIONS ); do
|
|---|
| 74 | search_users
|
|---|
| 75 | search_groups
|
|---|
| 76 | search_computers
|
|---|
| 77 | echo -n "."
|
|---|
| 78 | done
|
|---|
| 79 | echo "done"
|
|---|
| 80 |
|
|---|
| 81 | STOP_TIME=$(stop_timer)
|
|---|
| 82 |
|
|---|
| 83 | TOTAL_TIME=$( total_time $START_TIME $STOP_TIME )
|
|---|
| 84 |
|
|---|
| 85 | echo -e "\t\ttotal time:\t\t${TOTAL_TIME}s"
|
|---|
| 86 |
|
|---|
| 87 | LOGINS_PER_MINUTE=$(iterations_per_minute $START_TIME $STOP_TIME $ITERATIONS)
|
|---|
| 88 |
|
|---|
| 89 | echo -e "\t\titerations/min:\t\t$LOGINS_PER_MINUTE"
|
|---|
| 90 |
|
|---|
| 91 | ########################
|
|---|
| 92 |
|
|---|
| 93 | echo -e "\tSEARCH WILDCARD $2"
|
|---|
| 94 |
|
|---|
| 95 | START_TIME=$(start_timer)
|
|---|
| 96 |
|
|---|
| 97 | echo -en "\t"
|
|---|
| 98 | for i in $( ${SEQ} 1 $ITERATIONS ); do
|
|---|
| 99 | search_wildcard
|
|---|
| 100 | echo -n "."
|
|---|
| 101 | done
|
|---|
| 102 | echo "done"
|
|---|
| 103 |
|
|---|
| 104 | STOP_TIME=$(stop_timer)
|
|---|
| 105 |
|
|---|
| 106 | TOTAL_TIME=$( total_time $START_TIME $STOP_TIME )
|
|---|
| 107 |
|
|---|
| 108 | echo -e "\t\ttotal time:\t\t${TOTAL_TIME}s"
|
|---|
| 109 |
|
|---|
| 110 | LOGINS_PER_MINUTE=$(iterations_per_minute $START_TIME $STOP_TIME $ITERATIONS)
|
|---|
| 111 |
|
|---|
| 112 | echo -e "\t\titerations/min:\t\t$LOGINS_PER_MINUTE"
|
|---|
| 113 |
|
|---|
| 114 | ########################
|
|---|
| 115 |
|
|---|
| 116 | echo -e "\tSEARCH UNINDEXED $2"
|
|---|
| 117 |
|
|---|
| 118 | START_TIME=$(start_timer)
|
|---|
| 119 |
|
|---|
| 120 | echo -en "\t"
|
|---|
| 121 | for i in $( ${SEQ} 1 $ITERATIONS ); do
|
|---|
| 122 | search_unindexed
|
|---|
| 123 | echo -n "."
|
|---|
| 124 | done
|
|---|
| 125 | echo "done"
|
|---|
| 126 |
|
|---|
| 127 | STOP_TIME=$(stop_timer)
|
|---|
| 128 |
|
|---|
| 129 | TOTAL_TIME=$( total_time $START_TIME $STOP_TIME )
|
|---|
| 130 |
|
|---|
| 131 | echo -e "\t\ttotal time:\t\t${TOTAL_TIME}s"
|
|---|
| 132 |
|
|---|
| 133 | LOGINS_PER_MINUTE=$(iterations_per_minute $START_TIME $STOP_TIME $ITERATIONS)
|
|---|
| 134 |
|
|---|
| 135 | echo -e "\t\titerations/min:\t\t$LOGINS_PER_MINUTE"
|
|---|
| 136 |
|
|---|
| 137 | tear_down
|
|---|