1. bash / Говнокод #22359

    −98

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    #!/bin/bash
    #
    # munin plugin to monitor bans on Fail2ban jails
    #
    # Origional Author: Thomas Leveil
    # Contributors: none
    # Version: 1.1
    #
    ###############################################
    # You have to specify a different user in the munin-node config file as follow:
    #
    # [fail2ban_all_jails]
    # user root
    ###############################################
    #
    # HISTORY
    # v1.1 : better autoconf
    #
    #%# family=contrib
    #%# capabilities=autoconf
    
    
    case $1 in
    	autoconf)
    		if [ -z $(which fail2ban-client) ]; then
    			echo no
    			exit 1
    		fi
    		if [ $(whoami) != "root" ]; then
    			echo "no (fail2ban-client found but must run as root)"
    			exit 1
    		fi
    		if [ -x $(which fail2ban-client) ]; then
    			echo yes
    			exit 0
    		else
    			echo "no (fail2ban-client found but not executable)"
    			exit 1
    		fi
    		;;
    	config)
    		echo "graph_title Fail2ban"
    		echo 'graph_vlabel active bans'
    		echo 'graph_category Network'
    		echo 'graph_info number of jailled ip'
    		echo 'graph_info This graph shows the amount of bans caught by Fail2ban'
    		$(which fail2ban-client) status | awk '/Jail list:/ { for (i=4; i<=NF; i++) { sub(/,$/,"",$i); jail=$i; sub(/-/,"_",$i); print "fail2ban_"$i".label "jail } }'
    		exit 0
    		;;
    esac
    
     $(which fail2ban-client) status | awk '/Jail list:/ { for (i=4; i<=NF; i++) { sub(/,$/,"",$i); print $i } }' | \
      while read JAIL; do 
        echo -n "fail2ban_${JAIL//-/_}.value "
        $(which fail2ban-client) status $JAIL | awk '/Currently banned:/ { print $NF }'
      done

    Запостил: munin, 18 Февраля 2017

    Комментарии (0) RSS

    Добавить комментарий

    Ошибка компиляции комментария:
    1. Гости могут высказаться только во вторник, пятницу или субботу
    ava Помни, guest, за тобой могут следить!
    А не использовать ли нам bbcode?
    • [b]жирный[/b] — жирный
    • [i]курсив[/i] — курсив
    • [u]подчеркнутый[/u] — подчеркнутый
    • [s]перечеркнутый[/s] — перечеркнутый
    • [blink]мигающий[/blink] — мигающий
    • [color=red]цвет[/color] — цвет (подробнее)
    • [size=20]размер[/size] — размер (подробнее)
    • [code=<language>]some code[/code] (подробнее)
    Проверочный код