jak idzie ci tak dobrze to może jeszcze cie poprosze o troszeczke wysiłku
osobiście ja akurat zmieniam to ręcznie ale mógł byś dodać jeszcze drugie okno wyboru w zależności od tego czy posiadasz apacza czy zwykłego??
próbowalem rozkminić jak ty to zrobiłes ale narazie przerasta mnie programowanie w tym języku.
(chodzi mi oczywiście o zmiane ścieżek zeby w apaczku bylo home/httpd/html/mrtg/ )
czyli w twoim konfigu zmienia się
wiersz 29
mrtg_www_dir="/home/httpd/html/mrtg"
wiersz 422
#sciezka do pliku zastepowanego
PLIK=/home/httpd/html/mrtg/index.html
nie wiem tylko gdzie coś jest źle w lini 457 (to jest pusta linia) - skasowalem te 2 entery i skrypt działa dalej
i jeszcze jedno nie wiem czemu mimo wszystko zrobil mi katalog /var/www/mrtg/ podczas pierwszego uruchomienia. sprawdzam dalej błędy..
#!/bin/bash
#201006-MW-
clear
echo ""
echo ""
echo ""
echo " Z jakiej formy zapisu chcesz bałwan jestem"
echo " IP [ IP ] wybierze 1"
echo " IP [ host ] wybierze 2"
echo ""
echo ""
echo ""
read ZMIENNA
# z czego chcesz bałwan jestem?
############ plik konfiguracyjny MRTG ####################################
# zamienia IP na nazwe hosta -------------------------------
#set -x
# Zmienne plikow i katalogow
mrtg_conf_dir="/etc/mrtg"
script_dir=$mrtg_conf_dir
mrtg_conf_file="mrtg.conf"
mrtg_www_dir="/home/httpd/html/mrtg"
mrtg_ip_file="ipki.txt"
tmp_dir="/tmp"
interfejsy_file="interfejs"
wybor_interfejsow="wybor_int"
wybor_ip="wybor_ip"
wybor_dysk="wybor_dysk"
wybor_mem="wybor_mem"
tytul_strony="Statystyki serwera NND"
# Zmienne dodatkowe
bkg=e0e0e0
txt=00007f
# Prekonfiguracja
# Przygotowanie pliku z adresami IP sieci lokalnej (za maskarada)
>$mrtg_conf_dir/$mrtg_ip_file
grep "^" /etc/hosts | grep -v "^#"|grep [0123456789] |while read IP nazwa ; do
#sed -n /^/P /etc/hosts |while read IP nazwa ;do
echo $IP >> $mrtg_conf_dir/$mrtg_ip_file
done
# Przygotowanie listy interfejsow
ifconfig|grep encap|awk '{print $1}'|grep -v ^lo>$tmp_dir/$interfejsy_file
#liczba_interfejsow=`cat $tmp_dir/$interfejsy_file|wc -l`;
for each in `cat /proc/net/dev | grep -E "^(.*):" | grep -v lo | cut -f 1 -d ':'`
do IFACES="$IFACES $each $each on";
done
#IFACES="ppp0 ppp0 on eth1 eth1 on"
dialog --clear --separate-output --title "Wybor interfejsow routera" \
--backtitle "Konfigurator mrtg dla NND" --checklist \
"Zaznacz interfejsy, na ktorych chcesz zliczac:" 16 70 10 $IFACES 2>$tmp_dir/$wybor_interfejsow
for each in `cat $mrtg_conf_dir/$mrtg_ip_file`;do
each1=`resolveip -s $each`
#-----------------------------------------------------------------------------------------------------
#-----------------------------------------------------------------------------------------------------
if [ $ZMIENNA = 1 ] ; then
ADDRESSES="$ADDRESSES $each $each on";
else
ADDRESSES="$ADDRESSES $each $each1 on";
fi
#-----------------------------------------------------------------------------------------------------
#-----------------------------------------------------------------------------------------------------
done
dialog --clear --separate-output --title "Wybor adresow IP sieci lokalnej" \
--backtitle "Konfigurator mrtg dla NND" --checklist \
"Zaznacz adresy IP sieci lokalnej, na ktorych chcesz zliczac:" 16 70 10 $ADDRESSES 2>$tmp_dir/$wybor_ip
for each in `mount|grep hd|sed s/\\\\/dev\\\\///|awk '{print $1}'`
do DISKS="$DISKS $each $each on";
done
for each in `mount|grep sd|sed s/\\\\/dev\\\\///|awk '{print $1}'`
do DISKS="$DISKS $each $each on";
done
dialog --clear --separate-output --title "Wybor dyskow twardych" \
--backtitle "Konfigurator mrtg dla NND" --checklist \
"Zaznacz dyski twarde, ktore chcesz monitorowac:" 16 70 10 $DISKS 2>$tmp_dir/$wybor_dysk
MEMORY="mem mem on swap swap on";
dialog --clear --separate-output --title "Wybor pamieci routera" \
--backtitle "Konfigurator mrtg dla NND" --checklist \
"Zaznacz rodzaje pamieci, ktore chcesz monitorowac:" 16 70 10 $MEMORY 2>$tmp_dir/$wybor_mem
cat > $mrtg_conf_dir/$mrtg_conf_file <<!EOF
######################################################################
# Multi Router Traffic Grapher -- Example Configuration File
######################################################################
# This file is for use with mrtg-2.0
# 0.1 zciech
Language: polish
# Parametry globalne
WorkDir: $mrtg_www_dir
XSize[_]: 500
YSize[_]: 80
Options[_]: growright, gauge, nopercent, integer, nobanner, noinfo
BodyTag[_]: <BODY LEFTMARGIN="1" TOPMARGIN="1" bgcolor="$bkg" text="$txt" link="#dd3333" vlink="#dd33dd" alik="#A90000">
PageFoot[_]: </center>
!EOF
for each in `cat $tmp_dir/$wybor_interfejsow`
do
echo "Target[$each]: \`$script_dir/$each\`" >>$mrtg_conf_dir/$mrtg_conf_file;
echo "MaxBytes[$each]: 100000000" >>$mrtg_conf_dir/$mrtg_conf_file;
echo "Options[$each]: growright, nopercent, integer, nobanner, noinfo" >>$mrtg_conf_dir/$mrtg_conf_file;
echo "Title[$each]: $each" >>$mrtg_conf_dir/$mrtg_conf_file;
echo "kilo[$each]: 1024" >>$mrtg_conf_dir/$mrtg_conf_file;
echo "ShortLegend[$each]: B/s" >>$mrtg_conf_dir/$mrtg_conf_file;
echo "YLegend[$each]: B/s" >>$mrtg_conf_dir/$mrtg_conf_file;
echo "PageTop[$each]:<center> <H1>$each</H1>" >>$mrtg_conf_dir/$mrtg_conf_file;
echo "" >>$mrtg_conf_dir/$mrtg_conf_file;
cat > $script_dir/$each <<!EOF
#!/bin/bash
PPP=\`cat /proc/net/dev | grep -w $each\`
IPPP=\`echo \$PPP | awk '{print \$1" "\$2}' | awk -F: '{print \$2}' | awk '{print \$1}'\`
OPPP=\`echo \$PPP | awk -F: '{print \$2}' | awk '{print \$9}'\`
echo \$IPPP
echo \$OPPP
echo \`uptime\`
echo \`hostname \`
!EOF
chmod +x $script_dir/$each
done
for i in `cat $tmp_dir/$wybor_ip`
do
echo "Target[$i]: \`$script_dir/mrtg.ip $i\`" >>$mrtg_conf_dir/$mrtg_conf_file;
echo "MaxBytes[$i]: 100000000" >>$mrtg_conf_dir/$mrtg_conf_file;
echo "Options[$i]: growright, nopercent, integer, nobanner, noinfo" >>$mrtg_conf_dir/$mrtg_conf_file;
#--------------------------------------------------------------------------------
#--------------------------------------------------------------------------------
if [ $ZMIENNA = 1 ] ; then
echo "Title[$i]: $i     [ $i ]">>$mrtg_conf_dir/$mrtg_conf_file;
else
echo "Title[$i]: $i     [ `resolveip -s $i` ]">>$mrtg_conf_dir/$mrtg_conf_file;
fi
#--------------------------------------------------------------------------------
#--------------------------------------------------------------------------------
echo "kilo[$i]: 1024" >>$mrtg_conf_dir/$mrtg_conf_file;
echo "ShortLegend[$i]: B/s" >>$mrtg_conf_dir/$mrtg_conf_file;
echo "YLegend[$i]: B/s" >>$mrtg_conf_dir/$mrtg_conf_file;
#--------------------------------------------------------------------------------
#--------------------------------------------------------------------------------
if [ $ZMIENNA = 1 ] ; then
echo "PageTop[$i]:<center> <H1>$i     [ $i ]</H1>" >>$mrtg_conf_dir/$mrtg_conf_file;
else
echo "PageTop[$i]:<center> <H1>$i     [ `resolveip -s $i` ]</H1>" >>$mrtg_conf_dir/$mrtg_conf_file;
fi
#--------------------------------------------------------------------------------
#--------------------------------------------------------------------------------
echo "" >>$mrtg_conf_dir/$mrtg_conf_file;
done
cat > $script_dir/mrtg.ip <<!EOF
#!/bin/bash
iptables -L mrtg_traffic -v -x -n \
| grep " \$1 " \
| head -1 \
| awk '{print \$2}'
iptables -L mrtg_traffic -v -x -n \
| grep " \$1 " \
| tail -1 \
| awk '{print \$2}'
echo \`uptime\`
echo \`hostname \`
!EOF
chmod +x $script_dir/mrtg.ip
cat >>$mrtg_conf_dir/$mrtg_conf_file <<!EOF
Title[prtcp]: Polaczenia tcp
PageTop[prtcp]: <center> <H1>Polaczenia tcp</H1>
Target[prtcp]: \`/etc/mrtg/prtcp\`
MaxBytes[prtcp]: 3000
kilo[prtcp]: 1000
ShortLegend[prtcp]:
YLegend[prtcp]: ilosc
Legend1[prtcp]: Polaczenia nawiazane
Legend2[prtcp]: Wszystkie polaczenia
LegendI[prtcp]: polaczenia nawiazane
LegendO[prtcp]: polaczenia
#Options[prtcp]: growright, gauge, nopercent, integer, nobanner, noinfo, nolegend
!EOF
cat > $script_dir/prtcp <<!EOF
#!/bin/sh
polaczenia=\`netstat-nat -n | wc -l\`
polaczeniaest=\`netstat-nat -n | grep ESTABLISHED | wc -l\`
echo \$polaczeniaest
echo \$polaczenia
echo \`uptime\`
echo \`hostname\`
!EOF
chmod +x $script_dir/prtcp
cat >>$mrtg_conf_dir/$mrtg_conf_file <<!EOF
#Ilosc uzytkownikow
Title[hosty]: Ilosc uzytkownikow
PageTop[hosty]: <center> <H1>Ilosc uzytkownikow</H1>
Target[hosty]: \`/etc/mrtg/hosty\`
MaxBytes[hosty]: 150
kilo[hosty]: 1000
ShortLegend[hosty]:
YLegend[hosty]: ilosc
Legend1[hosty]: Aktywne
Legend2[hosty]: Wszystkie
LegendI[hosty]: aktywne
LegendO[hosty]: wszystkie
#Options[hosty]: growright, gauge, nopercent, integer, nobanner, noinfo, nolegend
##Procek
Target[cpu]: \`awk '/cpu /{print \$4; print \$2+\$3+\$4}'</proc/stat; uptime; hostname\`
Title[cpu]: Użycie procesora na serwerze
PageTop[cpu]: <center> <H1>Użycie procesora na serwerze</H1>
MaxBytes[cpu]: 100
Unscaled[cpu]: ymwd
Options[cpu]: growright, nopercent, integer, nobanner, noinfo
LegendI[cpu]: user:
LegendO[cpu]: total:
Ylegend[cpu]: %
ShortLegend[cpu]: %
Legend1[cpu]: Czas spedzony trybie user
Legend2[cpu]: Czas spedzony trybie user + czas spedzony trybie system
!EOF
for i in `cat $tmp_dir/$wybor_dysk`
do
echo "Target[$i]: \`df|grep $i|awk '{print \$3 \"\\n\" \$4}'\`" >>$mrtg_conf_dir/$mrtg_conf_file;
echo "MaxBytes[$i]: `df|grep $i|awk '{print $2}'`" >>$mrtg_conf_dir/$mrtg_conf_file;
# echo "Options[$i]: gauge, growright" >>$mrtg_conf_dir/$mrtg_conf_file;
echo "Unscaled[$i]: ymdw" >>$mrtg_conf_dir/$mrtg_conf_file;
echo "Title[$i]: Dysk $i" >>$mrtg_conf_dir/$mrtg_conf_file;
echo "kMG[$i]:K,M,G,T" >>$mrtg_conf_dir/$mrtg_conf_file;
echo "ShortLegend[$i]:B" >>$mrtg_conf_dir/$mrtg_conf_file;
echo "YLegend[$i]: Megabajty" >>$mrtg_conf_dir/$mrtg_conf_file;
echo "PageTop[$i]:<CENTER> <H1>Zajetosc dysku $i</H1>" >>$mrtg_conf_dir/$mrtg_conf_file;
echo "LegendI[$i]: Used:">>$mrtg_conf_dir/$mrtg_conf_file;
echo "LegendO[$i]: Free:">>$mrtg_conf_dir/$mrtg_conf_file;
echo "Legend1[$i]: Obszar zajety">>$mrtg_conf_dir/$mrtg_conf_file;
echo "Legend2[$i]: Obszar wolny">>$mrtg_conf_dir/$mrtg_conf_file;
echo "" >>$mrtg_conf_dir/$mrtg_conf_file;
done
if [ `cat $tmp_dir/$wybor_mem|grep swap` ];
then
cat > $script_dir/swap <<!EOF
cat /proc/meminfo|grep Swap: |while read nazwa mem used free ; do
echo "\$used";
echo "\$mem";
echo \`uptime\`;
echo \`hostname \`;
done
!EOF
chmod +x $script_dir/swap
echo "# Swap">>$mrtg_conf_dir/$mrtg_conf_file;
#echo "Options[swap]: gauge,growright">>$mrtg_conf_dir/$mrtg_conf_file;
echo "MaxBytes[swap]: `cat /proc/meminfo|grep Swap:|awk '{print $2}'`" >>$mrtg_conf_dir/$mrtg_conf_file;
echo "LegendI[swap]: Used:">>$mrtg_conf_dir/$mrtg_conf_file;
echo "LegendO[swap]: Total:">>$mrtg_conf_dir/$mrtg_conf_file;
echo "kilo[swap]: 1024">>$mrtg_conf_dir/$mrtg_conf_file;
echo "ShortLegend[swap]:B">>$mrtg_conf_dir/$mrtg_conf_file;
echo "Ylegend[swap]: Megabajty">>$mrtg_conf_dir/$mrtg_conf_file;
echo "Target[swap]: \`$script_dir/swap\`">>$mrtg_conf_dir/$mrtg_conf_file;
echo "Title[swap]: Pamięć swap">>$mrtg_conf_dir/$mrtg_conf_file;
echo "PageTop[swap]:<CENTER> <H1>Pamięć Swap</H1>">>$mrtg_conf_dir/$mrtg_conf_file;
echo "Legend1[swap]: Swap uzywany">>$mrtg_conf_dir/$mrtg_conf_file;
echo "Legend2[swap]: Swap calkowity">>$mrtg_conf_dir/$mrtg_conf_file;
echo " " >>$mrtg_conf_dir/$mrtg_conf_file;
fi
if [ `cat $tmp_dir/$wybor_mem|grep mem` ];
then
cat > $script_dir/memory <<!EOF
cat /proc/meminfo|grep Mem: |while read nazwa mem used free ; do
echo "\$used";
echo "\$mem";
echo \`uptime\`;
echo \`hostname \`;
done
!EOF
chmod +x $script_dir/memory
echo "Target[mem]: \`$script_dir/memory\`" >>$mrtg_conf_dir/$mrtg_conf_file;
echo "MaxBytes[mem]: `cat /proc/meminfo|grep Mem:|awk '{print $2}'`" >>$mrtg_conf_dir/$mrtg_conf_file;
# echo "Options[mem]: gauge, growright" >>$mrtg_conf_dir/$mrtg_conf_file;
echo "Unscaled[mem]: ymdw" >>$mrtg_conf_dir/$mrtg_conf_file;
echo "Title[mem]: Pamięć fizyczna" >>$mrtg_conf_dir/$mrtg_conf_file;
echo "kilo[mem]: 1024" >>$mrtg_conf_dir/$mrtg_conf_file;
echo "ShortLegend[mem]:B" >>$mrtg_conf_dir/$mrtg_conf_file;
echo "YLegend[mem]: Megabajty" >>$mrtg_conf_dir/$mrtg_conf_file;
echo "LegendI[mem]: Used:">>$mrtg_conf_dir/$mrtg_conf_file;
echo "LegendO[mem]: Total:">>$mrtg_conf_dir/$mrtg_conf_file;
echo "PageTop[mem]:<center> <H1>Pamięć fizyczna</H1>" >>$mrtg_conf_dir/$mrtg_conf_file;
echo "Legend1[mem]: Pamiec uzywana">>$mrtg_conf_dir/$mrtg_conf_file;
echo "Legend2[mem]: Pamiec calkowita">>$mrtg_conf_dir/$mrtg_conf_file;
echo "" >>$mrtg_conf_dir/$mrtg_conf_file;
echo "# Procesy">>$mrtg_conf_dir/$mrtg_conf_file;
#echo "Options[procesy]: growright, gauge, nopercent, integer">>$mrtg_conf_dir/$mrtg_conf_file;
echo "Target[procesy]: \`$script_dir/procesy\`">>$mrtg_conf_dir/$mrtg_conf_file;
echo "MaxBytes[procesy]: 30000">>$mrtg_conf_dir/$mrtg_conf_file;
echo "kilo[procesy]: 1000">>$mrtg_conf_dir/$mrtg_conf_file;
echo "Title[procesy]: Ilo¶ć procesów">>$mrtg_conf_dir/$mrtg_conf_file;
echo "PageTop[procesy]: <center> <H1>Ilosc procesów w systemie</H1>">>$mrtg_conf_dir/$mrtg_conf_file;
echo "ShortLegend[procesy]: ">>$mrtg_conf_dir/$mrtg_conf_file;
echo "YLegend[procesy]: Procesy">>$mrtg_conf_dir/$mrtg_conf_file;
echo "Legend1[procesy]: Ilo¶ć wszystkich procesów w systemie">>$mrtg_conf_dir/$mrtg_conf_file;
echo "Legend2[procesy]: Ilo¶ć działaj±cych procesów">>$mrtg_conf_dir/$mrtg_conf_file;
echo "LegendI[procesy]: procesy:">>$mrtg_conf_dir/$mrtg_conf_file;
echo "LegendO[procesy]: działaj±ce:">>$mrtg_conf_dir/$mrtg_conf_file;
fi
if [ ! -d $mrtg_www_dir ];then
mkdir -p $mrtg_www_dir
echo Utworzono katalog $mrtg_www_dir
fi
#if [ ! "`cat /etc/rc.d/rc.thttpd|grep \"$mrtg_www_dir\"`" ];
#then
# echo "thttpd -p 82 -u nobody -d $mrtg_www_dir -l /var/log/thttpd-mrtg" >>/etc/rc.d/rc.thttpd
#fi
#if [ ! "`cat /etc/rc.d/rc.local|grep \"rc.mrtg\"`" ];then
# echo "/etc/rc.d/rc.mrtg start" >>/etc/rc.d/rc.local
#fi
indexmaker \
--title="$tytul_strony" \
--bodyopt="bgcolor=$bkg text=$txt" \
--pagetop="<center>" \
--pageend="</center>" \
--columns=1 \
--output=$mrtg_www_dir/index.html /etc/mrtg/mrtg.conf
#-- towtzy pliki -- hosty i procesy -- niezbedne do prawidlowej pracy MRTG
cat > $script_dir/procesy <<!EOF
#!/bin/sh
-----procesy-----
processes=\`ps -A | wc -l\`
let \processes-=5
echo \$processes
processes=\`ps -A r | wc -l\`
let processes-=2
echo \$processes
uptime | sed -e 's/^.*up *//g' -e 's/, *[0-9] *u.*$//g'
hostname
!EOF
chmod +x $script_dir/procesy
############################################################################
cat > $script_dir/hosty <<!EOF
#!/bin/sh
# -----hosty------
#hosts=\`cat /etc/hosts| grep -v "^#"|grep [0123456789]|wc -l\`
#let hosts=0
#echo \$hosts
# wstaw prawidlowa sciezke do pliku statystyk niceshapera
hosts=\`cat /var/www/stats/nsstats.txt | wc -l\`
#hosts=\`cat /var/www/stats/niceshaper.txt | wc -l\`
let hosts-=2
echo \$hosts
echo \$hosts
uptime | sed -e 's/^.*up *//g' -e 's/, *[0-9] *u.*$//g'
hostname
!EOF
chmod +x $script_dir/hosty
##############################################################################
cat > $script_dir/mrtg.run <<!EOF
#!/bin/bash
while :; do
sleep 600
mrtg /etc/mrtg/mrtg.conf 1>/dev/null 2>&1
#mrtg /etc/mrtg/mrtg.conf 1>/etc/mrtg/mrtg.log 2>&1
done
!EOF
chmod +x $script_dir/mrtg.run
##############################################################################
# Podmienia wyrazenia w pliku index.thml
##############################################################################
#!/bin/sh
# zastepuej wyrazenie innym z pliku do pliku
# : : :
#sciezka do pliku zastepowanego
PLIK=/home/httpd/html/mrtg/index.html
# kopiuje plik i zastepuje wyrazenie
cp $PLIK tmp
sed 's:<td><DIV><B>imq0</B></DIV>:<td><DIV><B>imq0_UL_niceshaper</B></DIV>:g' tmp > $PLIK
# kopiuje plik i zastepuje wyrazenie
cp $PLIK tmp
sed 's:<td><DIV><B>imq1</B></DIV>:<td><DIV><B>imq1_DL_niceshaper</B></DIV>:g' tmp > $PLIK
# kopiuje plik i zastepuje wyrazenie
cp $PLIK tmp
sed 's:<td><DIV><B>imq2</B></DIV>:<td><DIV><B>imq2_UL_p2p</B></DIV>:g' tmp > $PLIK
# kopiuje plik i zastepuje wyrazenie
cp $PLIK tmp
sed 's:<td><DIV><B>imq3</B></DIV>:<td><DIV><B>imq3_DL_p2p</B></DIV>:g' tmp > $PLIK
# kopiuje plik i zastepuje wyrazenie
cp $PLIK tmp
sed 's:<td><DIV><B>imq4</B></DIV>:<td><DIV><B>imq4_DL_squid</B></DIV>:g' tmp > $PLIK
# kopiuje plik i zastepuje wyrazenie
cp $PLIK tmp
sed 's:<td><DIV><B>imq5</B></DIV>:<td><DIV><B>--imq5--</B></DIV>:g' tmp > $PLIK
# kopiuje plik i zastepuje wyrazenie
cp $PLIK tmp
sed 's:<td><DIV><B>imq6</B></DIV>:<td><DIV><B>--imq6--</B></DIV>:g' tmp > $PLIK
# kasuje plik tmp
rm tmp
##############################################################################
tak to wyglada cały konfig zmieniony pod apacza (dla potomnych)