Пример 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