Freesco, NND, CDN, EOS

http://www.freesco.pl
Dzisiaj jest środa, 16 lipca 2025, 21:24

Strefa czasowa UTC+2godz.




Nowy temat Odpowiedz w temacie  [ Posty: 7 ] 
Autor Wiadomość
Post: poniedziałek, 29 maja 2006, 22:08 
Offline
Użytkownik

Rejestracja: poniedziałek, 19 grudnia 2005, 11:03
Posty: 189
Witam
Zarzucilem sobie na serwa te statystyki http://alec.pl/linux/stats.html
Działały bardzo dobrze do pewnego momentu, nagle odczyty zachely byc zawyzone, napoczatku niewiele a teraz to pokazują kosmiczne wartości

Oto screen:
Obrazek
Ma ktoś propozycje co moze byc nie tak? mam neo na sagemie.


Na górę
 Wyświetl profil  
 
 Tytuł:
Post: poniedziałek, 29 maja 2006, 22:52 
Offline
Użytkownik

Rejestracja: wtorek, 8 lutego 2005, 13:51
Posty: 456
Lokalizacja: Kielce
http://alec.pl/ zakładka kontakt

_________________
Obrazek


Na górę
 Wyświetl profil  
 
 Tytuł:
Post: wtorek, 30 maja 2006, 13:10 
Offline

Rejestracja: niedziela, 28 sierpnia 2005, 01:08
Posty: 52
Witam

nie chce robic nowego tematu o takiej samej nazwie wiec dalem posta tutaj,lecz problem inny... ktos moze powiedziec co jest nie tak ? ?

wlasnie udalo mi sie prawie uruchomic te statystyki :)
ale wyskakuje mi taki blad przez caly czas w uploadzie i w ogole go nie zlicza :( a download zliczany jest dobrze:

Obrazek

czy ktos moze spotkal sie z takim problemem ??

moj plik php wyglada tak:

: [/] [] ()
<?php

$path = "/tmp/stats";      //ścieżka do plików ze statystyką
$hosts_names = 1;      //używać nazw hostów zamiast IP
$default_sorting = 'download';   //domyślne sortowanie ('download' 'upload', 'host')
$skip_zeroes = 1;      //pomija komputery z zerowymi danymi
$time_limit = 300;      //czas (w sekundach), po którym komputery zostaną
            //uznane za nieaktywne

/*******************************************************************/
$title = 'Statystyka wykorzystania łącza v.0.9.5';
$footer = 'Copyright &copy; 2003-2005 A.L.E.C (<a href="http://alec.pl">www.alec.pl</a>)';
$months = array ('styczeń','luty','marzec','kwiecień','maj','czerwiec','lipiec','sierpień','wrzesień','październik','listopad','grudzień');

?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML>
<HEAD>
    <META http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
    <TITLE><? echo $title; ?></TITLE>
    <LINK rel="stylesheet" href="images/style.css" type="text/css">
</HEAD>
<BODY>

<?
function setunits($data)
{
   if ( !($data < (1024*1024*1000)) ) {
      $number = $data / (1024*1024*1024);
      $unit = "GB";
   } elseif ( !($data < (1024*1000) ) ) {
      $number = $data / (1024*1024);
      $unit = "MB";
   } else {
      $number = $data / 1024;
      $unit = "KB";
   }
   return array($number, $unit);
}

$now = time();
$date = getdate();
$month = ( $_POST['month'] ? $_POST['month'] : $date['mon'] );
$year = ( $_POST['year'] ? $_POST['year'] : $date['year'] );
$sort = ( $_POST['sort'] ? $_POST['sort'] : $default_sorting );

/****************************************************************/
print '<P class="header">'.$title.'</P>';
print '<P><FORM class="form" name="traffic" method="post" action="stat.php">';
print 'miesiąc:<SELECT class="select" name="month" OnChange="javascript:document.traffic.submit();">';
for ( $i=1; $i<=12; $i++ )
{
   print '<OPTION value="'.$i.'"';
   if ( $i==$month )
      print 'SELECTED';
   print '>'.$months[$i-1].'</OPTION>';
};
print '</SELECT>&nbsp;';
print 'rok:<SELECT class="select" name="year" OnChange="javascript:document.traffic.submit();">';
for ( $i=0; $i<=10; $i++ )
{
   print '<OPTION value="'.($i+2000).'"';
   if ( $i==$year-2000 )
      print 'SELECTED';
   print '>'.($i+2000).'</OPTION>';
};
print '</SELECT>&nbsp;';
print 'sortowanie:<SELECT class="select" name="sort" OnChange="javascript:document.traffic.submit();">';
print '<OPTION value="download"'.($sort=='download' ? 'SELECTED' : '').'>download</OPTION>';
print '<OPTION value="upload"'.($sort=='upload' ? 'SELECTED' : '').'>upload</OPTION>';
print '<OPTION value="host"'.($sort=='host' ? 'SELECTED' : '').'>host</OPTION>';
print '</SELECT>';
print '</FORM>';
 
//otwieramy plik ************************
if( !($file = @fopen($path.'/'.$year.$month,'r')) )
{
   print '<P class="error"><BR><BR>Brak statystyk z wybranego okresu!</P>';
   die;
}

//czytamy dane
while (!feof($file))
   $lines[] = fgets($file,100);
fclose($file);
foreach ($lines as $line)
{
   $tab = preg_split('/[ \t]+/', $line);
   $host = trim($tab[0]);
   $up = trim($tab[1]);
   $down = trim($tab[2]);
   $atime = trim($tab[3]);
   
   if(!$host || ($skip_zeroes && !($up || $down)) )
   {
      continue;
   }
   
   $hosts[] = ($hosts_names ? $host : ip2long($host));
   $upload[] = $up;
   $download[] = $down;
   $active[] = $atime>$now-$time_limit ? 1 : 0;
}

//skalowanie wykresów ********************
$maks_up = max($upload);
$maks_down = max($download);
$maks = ( $maks_up > $maks_down ? $maks_up : $maks_down );
if ($maks == 0)
   $maks = 1; //co by nie było dzielenia przez zero

//sortowanie *****************************
switch($sort)
{
   case 'download':
      array_multisort($download, SORT_DESC, $download, $upload, $hosts, $active);
   break;
   case 'upload':
      array_multisort($upload, SORT_DESC, $upload, $download, $hosts, $active);
   break;
   case 'host':
      array_multisort($hosts, SORT_ASC, $hosts, $download, $upload, $active);
   break;
}

print '<P><TABLE cellpadding="3" align="center"><TR><TD>';

//upload *********************************
$sum_upload = array_sum($upload);
print '<TABLE cellpadding="0" class="tables" ALIGN="right">';
print '<TR><TD colspan="2" align="center"><B>Upload</B></TD></TR>';
foreach ($upload as $idx => $data)
{
   list($number, $unit) = setunits($upload[$idx]);
   $d = round($upload[$idx]*200/$maks);
   print '<TR>';
   print '<TD align="right" nowrap>&nbsp;'.($active[$idx] ? '<B>' : '').($hosts_names ? $hosts[$idx] : long2ip($hosts[$idx])).($active[$idx] ? '</B>' : '').'&nbsp;</TD>';
   print '<TD><IMG src="images/bluepx.gif" height="12" width="'.($d ? $d : '1').'" align="absmiddle" alt="" border="1">&nbsp;';
   printf('%0.2f&nbsp;%s&nbsp;(%0.1f%%)</TD>', $number, $unit, ($upload[$idx]*100/$sum_upload));
   print '</TR>';
}
$sum = setunits($sum_upload);
print '<TR><TD colspan="2" align="center"><B>RAZEM: '.sprintf('%0.2f',$sum[0]).' '.$sum[1].'</B></TD></TR>';
print '</TABLE>';

print '</TD><TD>';

//download *******************************
$sum_download = array_sum($download);
print '<TABLE cellpadding="0" class="tables" align="center">';
print '<TR><TD colspan="2" align="center"><B>Download</B></TD></TR>';
foreach ($download as $idx => $data)
{
   list($number, $unit) = setunits($download[$idx]);
   $d = round($download[$idx]*200/$maks);
   print '<TR>';
   print '<TD align="right" nowrap>&nbsp;'.($active[$idx] ? '<B>' : '').($hosts_names ? $hosts[$idx] : long2ip($hosts[$idx])).($active[$idx] ? '</B>' : '').'&nbsp;</TD>';
   print '<TD><IMG src="images/redpx.gif" height="12" width="'.($d ? $d : '1').'" alt="" align="absmiddle" border="1">&nbsp;';
   printf('%0.2f&nbsp;%s&nbsp;(%0.1f%%)</TD>', $number, $unit, ($download[$idx]*100/$sum_download));
   print '</TR>';
}
$sum = setunits($sum_download);
print '<TR><TD colspan="2" align="center"><B>RAZEM: '.sprintf('%0.2f',$sum[0]).' '.$sum[1].'</B></TD></TR>';
print '</TABLE>';

print '</TD></TR><TR><TD colspan="2" align="center" class="footer"><P>'.$footer.'</P></TD></TR></TABLE>';

?>


moze ktos pomoc ??


Na górę
 Wyświetl profil  
 
 Tytuł:
Post: wtorek, 30 maja 2006, 20:36 
Offline
Użytkownik

Rejestracja: sobota, 14 maja 2005, 15:07
Posty: 3177
Lokalizacja: Busko-Zdrój
skrypt php jest ok, natomiast sposob zliczania danych jest conajmniej dziwny.

http://forum.freesco.pl/viewtopic.php?p=75703#75703


Ostatnio zmieniony środa, 31 maja 2006, 01:26 przez -MW-, łącznie zmieniany 1 raz

Na górę
 Wyświetl profil  
 
 Tytuł:
Post: wtorek, 30 maja 2006, 23:57 
Offline

Rejestracja: niedziela, 28 sierpnia 2005, 01:08
Posty: 52
ok dzieki :) jutro z rana przetestuje i pozmieniam :) i napisze czy sie udalo

tylko gdzie dac tego skrypta i co z nim zrobic ?? :P


Na górę
 Wyświetl profil  
 
 Tytuł:
Post: środa, 31 maja 2006, 01:25 
Offline
Użytkownik

Rejestracja: sobota, 14 maja 2005, 15:07
Posty: 3177
Lokalizacja: Busko-Zdrój
moim skryptem zastapisz to:

Cytuj:
iptables -t mangle -D FORWARD -i eth1 -j STAT >/dev/null 2>&1
iptables -t mangle -D FORWARD -o eth1 -j STAT >/dev/null 2>&1
iptables -t mangle -F STAT >/dev/null 2>&1
iptables -t mangle -X STAT >/dev/null 2>&1
iptables -t mangle -N STAT
iptables -t mangle -I FORWARD -o eth1 -j STAT
iptables -t mangle -I FORWARD -i eth1 -j STAT

# i dla każdego komputera po dwie reguły
iptables -t mangle -A STAT -d xxx.xxx.xxx.xxx
iptables -t mangle -A STAT -s xxx.xxx.xxx.xxx


a reszta w/g opisu autora.

co pewien okres czasu cronem musisz uruchamiac plik stat.pl
i to wszystko.


Na górę
 Wyświetl profil  
 
 Tytuł:
Post: środa, 31 maja 2006, 09:26 
Offline

Rejestracja: niedziela, 28 sierpnia 2005, 01:08
Posty: 52
dziekuje bardzo, wszystko ladnie chodzi :) i zliczane jest wszystko poprawnie :)


Na górę
 Wyświetl profil  
 
Wyświetl posty nie starsze niż:  Sortuj wg  
Nowy temat Odpowiedz w temacie  [ Posty: 7 ] 

Strefa czasowa UTC+2godz.


Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 6 gości


Nie możesz tworzyć nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Przejdź do:  
cron
Technologię dostarcza phpBB® Forum Software © phpBB Group
Hosting: Compus-Net
RobertKonik.pl