# # This script searches the input stream and keeps a counter for # each of the strings we have defined. Usage example: # tail -f /var/log/apache/access_log | traffic_monitor # # Strings to search for.... search_string_1="POST" search_string_2="GET" search_string_3="robots" # # Initialize the counter variable for each item. index=1 while (true) do varname=search_string_${index} search_string=${!varname} # if [ "$search_string" == "" ] then break fi ((counter_$index=0)) ((index += 1)) done # #----------------------------- # while read input_string do # # Search for each of the search strings in the input string. index=1 while (true) do varname=search_string_${index} search_string=${!varname} # Done checking strings? if [ "$search_string" == "" ] then break fi # # Does the search string exist in this line? echo $input_string | grep "$search_string" >nul if [ $? -eq 0 ] then varname2=counter_${index} (( temp=$varname2 )) (( temp += 1 )) (( $varname2=temp )) fi # ((index += 1)) done # Display the counters. echo " " index=1 while (true) do varname=search_string_${index} search_string=${!varname} # if [ "$search_string" == "" ] then break fi ((counter=counter_$index)) echo "$search_string: $counter" ((index += 1)) done done # #