FreeBSD - статьи



         

Скрипты


Нам будут необходимы следующи скрипты:

  • network_usage.sh – обновляет базу. Запускается периодиески. Для нашего примера, раз в 5 минут.
  • network_usage_create.sh – создает базу данных для четырех счетчиков, описанных выше. Запускается один раз.
  • network_usage_graph2.sh – рисует графики загрузки канала. Запускается раз в 5 минут.
  • network_usage_update_rrdtool.sh – фактически, этот скрипт просто запускает раз в пять минут network_usage.sh и network_usage_graph2.sh. Его содержимое самое очевидное.
  • Сразу приведу их содержимое:

    network_usage_create.sh

    #!/bin/sh

    rrdtool create /var/rrdtool/db/network_usage.rrd \ --start 1176595200 \ DS:input_mail:COUNTER:600:U:U \ DS:output_mail:COUNTER:600:U:U \ DS:www:COUNTER:600:U:U \ DS:all:COUNTER:600:U:U \ RRA:AVERAGE:0.5:1:600 \ RRA:AVERAGE:0.5:6:700 \ RRA:AVERAGE:0.5:24:775 \ RRA:AVERAGE:0.5:288:797 \ RRA:MAX:0.5:1:600 \ RRA:MAX:0.5:6:700 \ RRA:MAX:0.5:24:775 \ RRA:MAX:0.5:288:797

    network_usage.sh

    #!/bin/sh

    input_mail=`/sbin/ipfw show 0011 | awk '{print $3}'` output_mail=`/sbin/ipfw show 0010 | awk '{print $3}'` www=`/sbin/ipfw show 0012 | awk '{print $3}'` all=`/sbin/ipfw show 0013 | awk '{print $3}'` /usr/local/bin/rrdtool update /var/rrdtool/db/network_usage.rrd \ N:$input_mail:$output_mail:$www:$all

    network_usage_graph2.sh

    #!/bin/sh

    WWWPREFIX=/var/www/rrdtool/images RRDPREFIX=/var/rrdtool/db

    /usr/local/bin/rrdtool graph $WWWPREFIX/network.png \ --width 500 --height 500 --imgformat PNG \ --start -43200 \ --title "Bandwidth graph for last 12 hours" --rigid --color BACK#FAFAFA \ --vertical-label Kbit/sec \ DEF:ifino=$RRDPREFIX/network_usage.rrd:input_mail:AVERAGE \ DEF:ifouto=$RRDPREFIX/network_usage.rrd:output_mail:AVERAGE \ DEF:www=$RRDPREFIX/network_usage.rrd:www:AVERAGE \ DEF:all=$RRDPREFIX/network_usage.rrd:all:AVERAGE \ CDEF:pop3=ifino,128,/ \ CDEF:smtp=ifouto,128,/ \ CDEF:www1=www,128,/ \ CDEF:all1=all,128,/ \ VDEF:sumpop3=ifino,TOTAL \ VDEF:sumsmtp=ifouto,TOTAL \ VDEF:sumwww=www,TOTAL \ VDEF:sumall=all,TOTAL \ VDEF:maxpop3=pop3,MAXIMUM \ VDEF:maxsmtp=smtp,MAXIMUM \ VDEF:maxwww=www1,MAXIMUM \ VDEF:maxall=all1,MAXIMUM \ VDEF:avgpop3=pop3,AVERAGE \ VDEF:avgsmtp=smtp,AVERAGE \ VDEF:avgwww=www1,AVERAGE \ VDEF:avgall=all1,AVERAGE \ AREA:all1#CCCCCC:"ALL" \ GPRINT:maxall:"Max=%lf%s" \ GPRINT:avgall:"Avg=%lf%s" \ GPRINT:sumall:"Sum=%lf %sbytes\l" \ LINE1:www1#FF6600:"WWW" \ GPRINT:maxwww:"Max=%lf%s" \ GPRINT:avgwww:"Avg=%lf%s" \ GPRINT:sumwww:"Sum=%lf %sbytes\l" \ LINE1:pop3#0000FF:"POP3" \ GPRINT:maxpop3:"Max=%lf%s" \ GPRINT:avgpop3:"Avg=%lf%s" \ GPRINT:sumpop3:"Sum=%lf %sbytes\l" \ LINE1:smtp#FF0000:"SMTP" \ GPRINT:maxsmtp:"Max=%lf%s" \ GPRINT:avgsmtp:"Avg=%lf%s" \ GPRINT:sumsmtp:"Sum=%lf %sbytes\l" \

    network_usage_update_rrdtool.sh

    #!/bin/sh

    /var/rrdtool/script/network_usage.sh /var/rrdtool/script/network_usage_graph2.sh

    Описывать подробно я не буду, так как здесь проще действовать, щупая все руками. На мой взгляд, в таких скриптах проще разобраться, если пробовать менять значения в них, перезапускать и смотреть, что поменялось.




    Содержание  Назад  Вперед