witam wszystkich probowalem zainstalowac te statystyki ze strony
http://www.wiki.nnd.freesco.pl/index.php/Statystyki zedytowalem odpowiednie pliki odnosnie opcji z APACHE ale podczas uruchomienia pokazuje mi cos takiego
[root@NND stat]# ./rc.stat start
[root@NND stat]# /usr/stat/statmat: line 141: /var/www/stats/stat.tmp: Nie ma takiego pliku ani katalogu
/usr/stat/statmat: line 221: /var/www/stats/stat.tmp: Nie ma takiego pliku ani katalogu
/usr/stat/statmat: line 222: /var/www/stats/stat.tmp: Nie ma takiego pliku ani katalogu
/usr/stat/statmat: line 224: /var/www/stats/stat.tmp: Nie ma takiego pliku ani katalogu
/usr/stat/statmat: line 226: /var/www/stats/stat.tmp: Nie ma takiego pliku ani katalogu
mv: nie można wykonać stat na `/var/www/stats/stat.tmp': Nie ma takiego pliku ani katalogu
podam jeszcze dwa pliki ktore zedytowalem i plik statmat prosilbym o jakas pomoc i wyrozumialosc poniewaz nie jestem dobry w linux-sie

plik il_pol
!/bin/bash
# Obliczanie ilosci polaczen
# Zciech
VER=0.2a-05.04.18
while :; do
echo "<head>
<meta HTTP-EQUIV=Refresh CONTENT=30>
<meta HTTP-EQUIV=Cache-Control content=no-cache>
<meta HTTP-EQUIV=Pragma CONTENT=no-cache>
<meta HTTP-EQUIV=Content-Type CONTENT=text/html; charset=iso-8859-2>
</head>">/tmp/ilosc_html
echo "<center><b><font color=#000080 face=Verdana>Statystyka ilosci polaczen</font></b></p>Godzina: ">>/tmp/ilosc_html
echo `date +%H:%M`>>/tmp/ilosc_html
echo '<br><br></center><body style="background-color: e0e0e0"><center>'>>/tmp/ilosc_html
echo '<table border=1 cellspacing=0 cellpadding=0 style="background-color: FFFFDE">'>>/tmp/ilosc_html
>/tmp/il_pol
echo "<tr><center><td><b>  IP  <b></td><td><b>  RAZEM  </b></td><td><b>  TCP  </b></td><td><b>  TCP EST. </b></td><td><b>  UDP  </b></td></center><tr>">>/tmp/ilosc_html
sed -n /^/P /proc/net/ip_conntrack | while read a1 a2 a3 a4 a5 a6 a7 a8;do
if [ $a1 = "tcp" ]; then
IP=$a5
echo $a5"-" "tcp"$a4 >>/tmp/il_pol
elif [ $a1 = "udp" ]; then
echo $a4"-" "udp" >>/tmp/il_pol
fi
done
sed -n /^/P /etc/hosts|while read IP Nazwa;do
ile=`cat /tmp/il_pol|sed -n /"src=$IP-"/P|wc -l`
iletcp=`cat /tmp/il_pol|sed -n /"src=$IP-"/P|grep tcp |wc -l`
ileudp=`cat /tmp/il_pol|sed -n /"src=$IP-"/P|grep udp |wc -l`
ileest=`cat /tmp/il_pol|sed -n /"src=$IP-"/P|grep tcpES |wc -l`
c=black
if [ $ile -gt 200 ];then
echo `date`" : "$IP " mial "$ile "polaczen">>/var/log/maskarada
c="red"
elif [ $ile -gt 100 ];then
c=blue
fi
if [ $ile -gt 0 ];then
echo "<tr><td><b>  $IP  </b></td><font color=$c><td>  $ile  </td><td>  $iletcp  </td><td>  $ileest  </td><td>  $ileudp  </td></font><tr>">>/tmp/ilosc_html
fi
done
cat << !EOF >>/tmp/ilosc_html
</LEFT></TABLE>Log polaczen ponad 200: /var/log/maskarada
<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0><TR VALIGN=top>
<TD WIDTH=150 ALIGN=LEFT><FONT FACE="Arial,Helvetica" SIZE=2>version $VER</FONT></TD>
<TD WIDTH=200 ALIGN=RIGHT><FONT FACE="Arial,Helvetica" SIZE=2>
<A HREF="mailto:zciech@wp.pl"><Zciech></A>
<A HREF="http://reliserv.pl/nnd"><http://reliserv.pl/nnd></A></TD>
</TR><TABLE></CENTER></BODY>
!EOF
mv /tmp/ilosc_html /home/httpd/html/stats/ilosc.html
rm /tmp/il_pol
sleep 30
done
plik statmat.conf
#konfiguracja statmat - monitor transferu dla duzych dystrybucji
#IP twojego serwera
ipserwera=192.168.0.1
# Linia od ktorej w /etc/hosts znajduja sie adresy hostow wewnetrznych
# 1 - w pierwszej, 2 - w drugiej itd... (licza sie tylko linie z adresami IP)
linia=9
#Sciezka gdzie beda zapisywane pliki loga oraz pliki html
wwwdir=/home/httpd/html/stats/
#Zadna liczba nie bedziewieksza od tej, jesli jest wieksza zostaje zamieniona na jednostke np. 110000 na 11k
podzielnik_stats=10000
#Wyswietlanie tylko hostow ktore maja sciagnieta jakakolwiek ilosc danych w calkowitych, tygodniowych itp statystykach
tylko_aktywni_stats=1
#Wyswietlanie tylko hostow ktore maja sciagnieta jakakolwiek ilosc danych w dzisiejszych itp statystykach
tylko_aktywni_dzis=1
#Czas zliczania danych
czas_cyklu=60
#Co ile cykli Monitor ma wyswietlac statystyki tygodniowe miesieczne itp
co_ile_cykli_staty=10
#Nazwy plikow html
stat_name=calkowite.html
statw_name=tygodniowe.html
www_stat=index.html
#Nazwy logow - najlepiej nie zmieniac
dzienne_plik=sdzisiaj.log
dat1_name=scalkowite
dat2_name=stygodniowe
#Tego tez nie ma sensu zmieniac
www_stat_tmp=stat.tmp
oraz plik statmat
#!/bin/bash
#Statystyki transferow na wzor tych z justice by mat1l9s, thx dla v|rusa
#=====konfiguracja=====
. statmat.conf
#path=/var/tmp/
#wwwdir=/usr/local/www/www/
#www_stat=stat.html
#dzienne_plik=sdzisiaj.log
#tylko_aktywni_dzis=1
#czas_cyklu=30
#co_ile_cykli_staty=10
#ipserwera=192.168.0.1
#podsiec=192.168.0.0/24
#www_stat_tmp=stat.tmp
#podzielnik_stats=10000
#=====koniec konfiguracji======
jdn_kb()
{
if [ $1 -gt 0 ]; then
if [ $1 -gt $(expr $podzielnik_stats \* 1024) ]; then
echo " $(expr $1 / 1048576) <font color=black face=courier>GB </font>"
elif [ $1 -gt $podzielnik_stats ]; then
echo " $(expr $1 / 1024) <font color=blue face=courier>MB </font>"
else
echo " $1 <font color=green face=courier>kB </font>"
fi
else echo " 0 <font color=green face=courier>kB </font>"
fi
}
jdn()
{
if [ $1 -gt 0 ]; then
if [ $1 -gt $(expr $podzielnik_stats \* 1024) ]; then
echo " $(expr $1 / 1048576) <font color=blue face=courier>MB </font>"
elif [ $1 -gt $podzielnik_stats ]; then
echo " $(expr $1 / 1024) <font color=green face=courier>kB </font>"
else
echo " $1 <font color=coral face=courier> B </font>"
fi
else echo " 0 <font color=coral face=courier> B </font>"
fi
}
jdn_bit()
{
if [ $1 -gt 0 ]; then
if [ $1 -gt $(expr $podzielnik_stats \* 1024) ]; then
echo " $(expr $1 / 1048576) <font color=blue face=courier>mb/s </font>"
elif [ $1 -gt $podzielnik_stats ]; then
echo " $(expr $1 / 1024) <font color=green face=courier>kb/s </font>"
else
echo " $1 <font color=coral face=courier> b/s </font>"
fi
else echo " 0 <font color=coral face=courier> b/s </font>"
fi
}
#kasowanie na wszelki wypadek.
iptables -D FORWARD -j liczenie 2>>/dev/null
iptables -X liczenie 2>>/dev/null
iptables -F liczenie 2>>/dev/null
#for i in `cat /etc/hosts|awk '{print $1}'`; do
# iptables -D liczenie -d $i -s ! $ipserwera -j ACCEPT 2>>/dev/null;
# iptables -D liczenie -s $i -d ! $ipserwera -j ACCEPT 2>>/dev/null;
#done
#Inicjacja zliczania i zerowanie licznikow (ew nabijanie licznikow)
iptables -N liczenie
ipeki[0]="Wszyscy"
dl_h[0]=0; ul_h[0]=0
dl_dz[0]=0; ul_dz[0]=0
dl_now[0]=0; ul_now[0]=0
licznik=$(expr 2 - $linia)
for i in `cat /etc/hosts| grep -v "^#"|grep [0123456789] |awk '{print $1}'`; do
if [ $licznik -ge 1 ];then
iptables -A liczenie -d $i -j RETURN 2>>/dev/null
iptables -A liczenie -s $i -j RETURN 2>>/dev/null
ipeki[$licznik]=$i
dl_h[$licznik]=0; ul_h[$licznik]=0
dl_dz[$licznik]=0; ul_dz[$licznik]=0
fi
licznik=$(expr $licznik + 1)
done
iptables -I FORWARD -j liczenie 2>>/dev/null
if [ -f $wwwdir$dzienne_plik ]; then #jesli mamy juz jakies dane to wczytajmy je
licznik=0
for i in ${ipeki[*]}; do #patrzymy czy dla kezdego IP mamy jakies dane, jesli nie (nowy IP), wtedy ustawiamy 0
linijka=`grep "$i " $wwwdir$dzienne_plik`
if [ -n "$linijka" ]
then #wczytujemy te linijke do tablic
licznik2=0
for j in $linijka; do
licznik2=$(expr $licznik2 + 1)
case $licznik2 in
2) dl_h[$licznik]=$j ;;
3) ul_h[$licznik]=$j ;;
4) dl_dz[$licznik]=$j ;;
5) ul_dz[$licznik]=$j ;;
esac
done
else dl_h[$licznik]=0; ul_h[$licznik]=0; dl_dz[$licznik]=0; ul_dz[$licznik]=0; fi
licznik=$(expr $licznik + 1)
done
fi
#Zliczanie.
h_skasowane=0; dz_skasowane=0
licznik_cyklu=1
while :; do
C1=`/bin/date +%s`
HM=`date +%H:%M`; S=`date +%S`
echo "<html>
<head>
<meta HTTP-EQUIV=Refresh CONTENT=$czas_cyklu>
<meta HTTP-EQUIV=Cache-Control content=no-cache>
<meta HTTP-EQUIV=Pragma CONTENT=no-cache>
<meta HTTP-EQUIV=Content-Type CONTENT=text/html; charset=iso-8859-2>
</head>
<body bgcolor=e0e0e0>
<p align=center><b><font color=#000080 face=verdana>Monitor Transferu</font></b></p>
<p>Czas wygenerowania statystyk - <b>$HM</b><font size=2>:$S</font> - srednia transferu z ostatnich $czas_cyklu sek.</p>
<p> <a href=../mrtg/index.html> Statystyki MRTG </p>
<p> <a href=nsstats.txt> Statystyki NICE </p>
<p> <a href=ilosc.html> Ilosci polaczen </p>
<center>
<table border=1 cellspacing=0 cellpadding=0>
<tr align=center><td width=100>IP</td><td width=100>aktualnie downl<br></td><td width=100>aktualnie upl<br></td><td width=100>ostatnia godz.<br>download</td><td width=100>ostatnia godz.<br>upload</td><td width=100>dzienny<br>download</td><td width=100>dzienny<br>upload</td></tr>" > $wwwdir$www_stat_tmp;
licznik=-1
flaga=0
dl_now[0]=0; ul_now[0]=0
for i in `iptables -v -n -x -L -Z liczenie|awk '{print $2}'`; do
if [ $licznik -ge 1 ]; then
if [ $flaga -eq 0 ]
then dl_now[$licznik]=$i; flaga=1; licznik=$(expr $licznik - 1)
else ul_now[$licznik]=$i; flaga=0;
dl_now[0]=$(expr ${dl_now[0]} + ${dl_now[$licznik]})
ul_now[0]=$(expr ${ul_now[0]} + ${ul_now[$licznik]}); fi
fi
licznik=$(expr $licznik + 1);
done
unset dl_now[$(expr $licznik)] #ostatnia linijka to napis
licznik=0
for i in ${ipeki[*]}; do
dl_teraz=${dl_now[$licznik]}
ul_teraz=${ul_now[$licznik]}
dl_h[$licznik]=$(expr ${dl_h[$licznik]} + $dl_teraz)
ul_h[$licznik]=$(expr ${ul_h[$licznik]} + $ul_teraz)
view_dl_dz=$(expr ${dl_dz[$licznik]} + ${dl_h[$licznik]} / 1024)
view_ul_dz=$(expr ${ul_dz[$licznik]} + ${ul_h[$licznik]} / 1024)
if [ $view_dl_dz -gt 0 -o $tylko_aktywni_dzis = 0 ]; then
echo "<tr><td align=left>$i</td><td align=right>`jdn_bit $(expr $dl_teraz \* 8 / $czas_cyklu)`</td><td align=right>`jdn_bit $(expr $ul_teraz \* 8 / $czas_cyklu)`</td><td align=right>`jdn ${dl_h[$licznik]}`</td><td align=right>`jdn ${ul_h[$licznik]}`</td><td align=right>`jdn_kb $view_dl_dz`</td><td align=right>`jdn_kb $view_ul_dz`</td></tr>">>$wwwdir$www_stat_tmp;
fi
licznik=$(expr $licznik + 1)
done
#Zapis/Kasownie licznikow o polnocy
if [ $HM = "00:00" -o $HM = "00:01" ]; then
if [ $dz_skasowane = 0 ]; then
./statistics update
licznik=0
# rm -f $wwwdir$dzienne_plik
for i in ${ipeki[*]}; do
dl_dz[$licznik]=0; ul_dz[$licznik]=0
dl_h[$licznik]=0; ul_h[$licznik]=0
# echo "$i ${dl_h[$licznik]} ${ul_h[$licznik]} ${dl_dz[$licznik]} ${ul_dz[$licznik]}" >> $wwwdir$dzienne_plik
licznik=$(expr $licznik + 1)
done
dz_skasowane=1
fi
elif [ $HM = "00:02" -o $HM = "00:03" ]
then if [ $dz_skasowane = 1 ]; then dz_skasowane=0; fi; fi
#Zapis co godzine
czas=`date +%M`
# echo $h_skasowane czas $czas
if [ $czas = "00" -o $czas = "01" ]; then
if [ $h_skasowane = 0 ]; then
# rm -f $wwwdir$dzienne_plik
licznik=0
for i in ${ipeki[*]}; do
dl_dz[$licznik]=$(expr ${dl_dz[$licznik]} + ${dl_h[$licznik]} / 1024 )
ul_dz[$licznik]=$(expr ${ul_dz[$licznik]} + ${ul_h[$licznik]} / 1024 )
dl_h[$licznik]=0; ul_h[$licznik]=0
# echo "$i ${dl_h[$licznik]} ${ul_h[$licznik]} ${dl_dz[$licznik]} ${ul_dz[$licznik]}" >> $wwwdir$dzienne_plik
licznik=$(expr $licznik + 1)
done
h_skasowane=1
fi
elif [ $czas = "02" -o $czas = "03" ]
then if [ $h_skasowane = 1 ]; then h_skasowane=0; fi
fi
if [ $licznik_cyklu -eq $co_ile_cykli_staty ]; then
licznik_cyklu=0
rm -f $wwwdir$dzienne_plik
licznik=0
for i in ${ipeki[*]}; do
echo "$i ${dl_h[$licznik]} ${ul_h[$licznik]} ${dl_dz[$licznik]} ${ul_dz[$licznik]}" >> $wwwdir$dzienne_plik
licznik=$(expr $licznik + 1)
done
./statistics view &
fi
licznik_cyklu=$(expr $licznik_cyklu + 1)
echo "</table>">>$wwwdir$www_stat_tmp
echo "<p> <a href="$stat_name">Statystyki D/M/R i Razem</a><br><a href="$statw_name">Statystyki tygodniowe</a></p>" >> $wwwdir$www_stat_tmp
C2=`/bin/date +%s`
echo "<p><font size=2>czas wykonania skryptu: $(expr $C2 - $C1) sek.</font></p>" >> $wwwdir$www_stat_tmp
echo "</body></html>">>$wwwdir$www_stat_tmp
mv $wwwdir$www_stat_tmp $wwwdir$www_stat
sleep $(expr $czas_cyklu + $C1 - $C2)
done
do tego dodam iz na stronie gdzie powinien co 5 sec. odswiezac aktualne transfery nic sie nie dzieje
a plik stworzylem recznie i tez nic
wykasowalem dla testu wszystkie pliki w katalogu stats tam gdzie generuje pliki html pokazaly sie statystyki niceshapera ilosc polaczen ale index.html wogole sie nie wygenerowal