.comment { color: gray; } .keyword { font-weight: bold; } .html .atribute .value { color: green; }

пятница, 16 сентября 2011 г.

Пример shell скрипта

Пример shell скрипта. Это быстрый вариант отчета по трафику шефу с двух офисов. Использовал korn shell только ради массивов (в c shell массивов не нашел :).

#!/usr/local/bin/ksh
#echo "Start..."

mdate=`date -v-1m +%Y.%m`

set -A host_k ' BONDARENKO      .   '\
              ' BOSS            .   '\
              ' DYMARSKIY       .   '\
              ' GORODKOV        .   '\
              ' GRISHIN         .   '\
              ' KUZHETSOVA      .   '\
              ' LIPETSKAYA      .   '\
              ' MALZUP          .   '\
              ' MELNICHENKO     .   '\
              ' MITINA          .   '\
              ' MOISEENKO       .   '\
              ' PODVOINAYA      .   '\
              ' RECRUIT         .   '\
              ' RYASCHENKO_nb   .   '\
              ' RYASHENK        .   '\
              ' SECRETARY       .   '\
              ' SIKALOV         .   '\
              ' YATSUN          .   '\
              ' ZHUKOVSKIY      .   '\
              ' ZORINA          .   '\
              ' ZUBOVA          .   '

set -A ip_k     59\
                10\
                50\
                58\
                19\
                15\
                12\
                18\
                40\
                75\
                56\
                13\
                14\
                11\
                8\
                43\
                60\
                45\
                51\
                21\
                55


set -A host_b   ' BESSMERTNIY     .   '\
                ' BUHGALTER       .   '\
                ' BURLIY          .   '\
                ' GAVRUSHENKO     .   '\
                ' GAVRUSHENKO_nb  .   '\
                ' GUBENKO         .   '\
                ' IVANCHENKO      .   '\
                ' IVANCHENKO_nb   .   '\
                ' KONONENKO       .   '\
                ' KONONENKO_iPhone.   '\
                ' KUCHERENOSOV    .   '\
                ' KUCHERENOSOV_nb .   '\
                ' LISCHUK         .   '\
                ' METELKIN_S      .   '\
                ' PARHOMENKO      .   '\
                ' SECRETARY_b     .   '\
                ' SHKURKO         .   '\
                ' YAKOVENKO       .   '\
                ' YAKOVENKO_J     .   '



set -A ip_b     78\
                72\
                80\
                77\
        82\
                87\
                38\
                83\
                71\
                85\
                5\
                20\
                76\
                88\
                84\
                74\
                17\
                81\
                86



###### Get data from Krestchatik report and resolv host names #####

cd /opt/traf_notify_k/

#cat /dev/null > boss_month_report_k.tmp

i=0

while [ $i -lt 21 ]

do
#echo "${ip_k[i]}"
data=`cat /opt/traf_notify_k/report_boss.txt | grep -w 192.168.3.${ip_k[i]} | awk '/192.168.3/ {a= $2/1048576; print(int(a))}'`;
#echo "${data}"

echo "|| ${host_k[i]}    ${data} Mb" >> boss_month_report_k.tmp

((i += 1))

done

###### Get data from Barbusa report and resolv host names #####

cd /opt/traf_notify_b/

cat /dev/null > boss_month_report_b.tmp
#pwd
i=0

while [ $i -lt 19 ]

do
#echo "${ip_b[i]}"
data=`cat /opt/traf_notify_b/report_boss.txt | grep -w 192.168.2.${ip_b[i]} | awk '/192.168.2/ {a= $2/1048576; print(int(a))}'`;
#echo "${data}"
echo "|| ${host_b[i]}    ${data} Mb" >> boss_month_report_b.tmp

((i += 1))

done


##### Mailing all of this shit to BOSS #####
cd /opt/traf_notify_k/


echo "Общий трафик за месяц ${mdate} :

    ### Крещатик ###

  Имя Компьютера          Объем
" > /opt/traf_notify_k/mail_to_boss.tmp

cat /opt/traf_notify_k/boss_month_report_k.tmp >> /opt/traf_notify_k/mail_to_boss.tmp

echo "
    ### Барбюса ###

  Имя Компьютера          Объем
" >> /opt/traf_notify_k/mail_to_boss.tmp

cat /opt/traf_notify_b/boss_month_report_b.tmp >> /opt/traf_notify_k/mail_to_boss.tmp

echo "
" >> /opt/traf_notify_k/mail_to_boss.tmp

########################################
#cat /opt/var/mail_to_boss.tmp | awk '/\|\|/ {a= $2/1048576; print($1,int(a)" Mb"); s=s+a} END {print("Total "int(s)" Mb")}'\
########################################

cat /opt/traf_notify_k/mail_to_boss.tmp | awk '/\|\|/ {a= $4; s=s+a} END {print("     Всего "int(s)" Mb")}' >> /opt/traf_notify_k/mail_to_boss.tmp

echo "

     Общий трафик включает в себя интернет посещения (http),
передача файлов (ftp), исходящую(smtp) или входящую(pop3) почту.



-- 

Best regards" >> /opt/traf_notify_k/mail_to_boss.tmp

cat /opt/traf_notify_k/mail_to_boss.tmp | mail -s "Общий трафик за месяц ${mdate}" -c pavelb@infocon.ua vic@infocon.ua

rm /opt/traf_notify_k/boss_month_report_k.tmp
rm /opt/traf_notify_b/boss_month_report_b.tmp
rm /opt/traf_notify_k/mail_to_boss.tmp