❗️Toto je původní verze internetového fóra ISPforum.cz do února 2020 bez možnosti registrace nových uživatelů. Aktivní verzi fóra naleznete na adrese https://telekomunikace.cz

Graf o počtu stažených dat

Návody a problémy s konfigurací.
Konycz
Příspěvky: 59
Registrován: 8 years ago

Re: Graf o počtu stažených dat

Příspěvekod Konycz » 8 years ago

A myslíš, že by si mi mohl poskytnout tvuj script a ten program ???
0 x

Uživatelský avatar
Fang
Příspěvky: 109
Registrován: 19 years ago
Kontaktovat uživatele:

Příspěvekod Fang » 8 years ago

Nebylo by jednodušší použít k vyčítání dat SNMP a network monitoring systém (cacti, librenms)? Než to ukládat do emailu a pak to zpracovávat dalším skriptem do databáze?
0 x

pgb
Příspěvky: 722
Registrován: 8 years ago

Příspěvekod pgb » 8 years ago

Konycz píše:Hoj, chtěl bych se zeptat, jestli je nějaká jednoduchá možnost , abych mohl sledovat počet stažených dat u různých IP adres ? V mikrotiku mám na každou IP adresu vytvořený Queue , když se dívám přímo ve Winboxu, tak na te IP adrese je počet stažených dat, mám i grafy na www rozhraní mikrotiku, ale tam je jen aktuální rychlost. a počet MB tam není.

Je nějaká jednoduchá možnost ? Abych mohl sledovat kolik kdo stáhl MB, třeba za poslední týden/měsíc/rok atd ???

Děkuji mockrát


Jen se zeptám, proč to řešíte skriptem, když jsou systémové nástroje? Třeba snmp + cacti/observium aj nebo si přes snmp vyčítat údaje sám a posílám do rrd databáze a vygeneruji si grafy.

Edit: Fang byl rychlejší o dvě minuty :)
0 x

Konycz
Příspěvky: 59
Registrován: 8 years ago

Příspěvekod Konycz » 8 years ago

No protože nevím jak to použít... ale podívám se na to
0 x

mpcz
Příspěvky: 2779
Registrován: 19 years ago

Příspěvekod mpcz » 8 years ago

Konycz píše:No protože nevím jak to použít... ale podívám se na to

No to je právě ten problém. Návod je podaný ve dvou řádcích, jeho realizace pro většinu běžných lidí velmi těžko uskutečnitelná.
Dle mého je systém se skriptem a jedním .exe souborem nejjednodušší neboť uživatel:
1. nahraje skript do ROS - 1 minuta práce, což umí každý
2. v případě potřeby pustí na PC ukazdata.exe ve windows a zobrazí se mu data všech klientů a popř. i grafy, zkrátka vše, co potřebuje, což umí každý
3. není třeba žádný další HW, či znalost dalších SW.
Asi by bylo dobré, kdyby se o ten systém staral někdo, kdo má trpělivost držet krok se Sergejem, který do těch skriptů neustále rýpe a zabudovat do něj požadavky všech uživatelů, aby sloužil co nejlépe. Povědomost o stažených datech je velmi důležitý faktor nejen z hlediska objemu. Je to i dobrá informace při častých báchorkách o údajných výpadcích, snížené rychlosti a mnoha dalších situacích.
mpcz, 13.aug.2017
Naposledy upravil(a) mpcz dne 13 Aug 2017 18:09, celkem upraveno 1 x.
0 x

Konycz
Příspěvky: 59
Registrován: 8 years ago

Příspěvekod Konycz » 8 years ago

proto se ptám jestli by si byl moc tak hodny a poskytl script + tebou vytvořený exe soubor. Děkuji


Jinak jsem nainstaloval Cacti a tam lze sledovat všechny prostředky z mikrotiku, ale nikde jsem nenašel možnost sledovat počet přenesených dat od IP adres
0 x

Konycz
Příspěvky: 59
Registrován: 8 years ago

Příspěvekod Konycz » 8 years ago

zkousim prijit na to, abych ten vycet neposilal do mailu (scriptem v mikrotiku), ale aby se mi ukladal na disk... a jeste aby ten soubor mel nazev napriklad 12-8-2017.txt a porad na to nemuzu prijit.. Muze mi nekdo poradit ?? A potom jak jeste takto vycitat pocet paketu

PS: Zkousim takto

Kód: Vybrat vše

/file print file=date
/file set date contents=$telo


ale ulozi mi to soubor pod nazvem date.txt

PSS:takze dalsi pokrok

Kód: Vybrat vše

:local months ("jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec");
:local name [/system identity get name];
:local date ([/system clock get date]);
:local time ([/system clock get time]);
:local telo
:local ds [/system clock get date];
:local month [ :pick $ds 0 3 ];
:local mm ([ :find $months $month -1 ] + 1);
:set ds ([:pick $ds 7 11] . $mm . [:pick $ds 4 6]);
:if ($mm < 10) do={ :set mm ("0" . $mm); }
:log info "Starting Data_Sum Script..."
:set telo ("Suma prenesenych dat za klienty Download / Upload [MB]" . "\n")
/queue simple
:foreach i in=[find] do={
  :local totalcurrent ([get $i bytes])
  :local pos5 [:find $totalcurrent "/"]
  :local pos6 [:len $totalcurrent]
  :local bytesupcurrent ([:pick $totalcurrent 0 ($pos5)])
  :local bytesdowncurrent ([:pick $totalcurrent ($pos5+1) $pos6])
  :local megsupcurrent ($bytesupcurrent / 1048576)
  :local megsdowncurrent ($bytesdowncurrent / 1048576)
      :set telo ($telo . [get $i name] . " - " . [get $i target] )
      :set telo ($telo . ": " . $megsdowncurrent . " / " . $megsupcurrent . "\n" )
   }

/file print file=$ds
/file set $ds contents=$telo



ale potom obsah souboru je nesmysl

Kód: Vybrat vše

# aug/14/2017 13:59:14 by RouterOS 6.41rc11
# software id = DVN2-3LN6
#
 # NAME                   TYPE                        SIZE CREATION-TIME       
 0 skins                  directory                        jan/01/1970 02:00:01
 1 log_provozu            file                   3418.4KiB jul/10/2017 16:15:57


PSS2: Tak zase pokrok. musim ten script pustit dvakrat, jednou to zapise ten vypis souboru a potom podruhy to smaze obsah souboru a nahraje to tam uz spravne.... no tak nastavim na sheduler aby se script poustel dvakrat a je to
0 x

mpcz
Příspěvky: 2779
Registrován: 19 years ago

Příspěvekod mpcz » 8 years ago

Zdravím,
používám tento skript. Určitě by to šlo ještě vylepšit, ale nejsem žádný profesionální programátor a hlavně mě nebaví neustále řešit ty Sergejovy změny v jazyku skriptu, co verze. Dost dlouho jsem si s ním dopisoval (bezvýsledně) ohledně té nepříjemné hranice 4K pro jeden soubor, v důsledku čehož je ten skript i win SW zbytečně komplikovaný a textové soubory je nutné kouskovat na více souborů. Ale třeba to někdy opraví nebo někdo jiný znalý linuxu najde způsob, jak to obejít. Tím by se skript i win SW značně zjednodušil a zpřehlednil.
Co se týká SW do win pro stažení a zpracování těch textových souborů z FILES, na to se ještě musím podívat, tu část pro data klientů mám součástí celého systému vč. účetnictví a odesílání faktur emailem a nevím, kolik práce to dá, vypreparovat to.
mpcz, 15.aug.2017

skript se spouští několikrát denně (dle potřeby)

bytes.png
bytes.png (7.42 KiB) Zobrazeno 3366 x


tady je text skriptu:

#:file remove bytes.txt;
:global fileContent "";#### iinitial timestamp ########################
:local time [/system clock get time];
:local startTime [/system clock get time];
:global stopTime [/system clock get time];
:global qc "";
set stopTime "";
#:global stopTime "";
:local date [/system clock get date];
:global ts "";
:local month [: pick $date 0 3];
:if ($month = "jan") do={:set month "01"} else={
:if ($month = "feb") do={:set month "02"} else={
:if ($month = "mar") do={:set month "03"} else={
:if ($month = "apr") do={:set month "04"} else={
:if ($month = "may") do={:set month "05"} else={
:if ($month = "jun") do={:set month "06"} else={
:if ($month = "jul") do={:set month "07"} else={
:if ($month = "aug") do={:set month "08"} else={
:if ($month = "sep") do={:set month "09"} else={
:if ($month = "oct") do={:set month "10"} else={
:if ($month = "nov") do={:set month "11"} else={
:if ($month = "dec") do={:set month "12"} else={
:set month "00" }}}}}}}}}}}};
#:put "current month is $month";
:set date ([:pick $date 7 11].$month.[:pick $date 4 6])
#:put "current date is $date";
:set time ([:pick $time 0 2].[:pick $time 3 5].[:pick $time 6 8])
#:put "current time is $time";
set ts ([$date]."-".[$time]);
###### konec Timestamp ######################


:global fn01 $ts ;
set fn01 ($fn01."-01.txt");
:file print file=$fn01;

:global fn02 $ts ;
set fn02 ($fn02."-02.txt");
:file print file=$fn02;

:global fn03 $ts ;
set fn03 ($fn03."-03.txt");
:file print file=$fn03;

:global fn04 $ts ;
set fn04 ($fn04."-04.txt");
:file print file=$fn04;

:global fn05 $ts ;
set fn05 ($fn05."-05.txt");
:file print file=$fn05;

:global fn06 $ts ;
set fn06 ($fn06."-06.txt");
:file print file=$fn06;

:global fn07 $ts ;
set fn07 ($fn07."-07.txt");
:file print file=$fn07;

:global fn08 $ts ;
set fn08 ($fn08."-08.txt");
:file print file=$fn08;

:global fn09 $ts ;
set fn09 ($fn09."-09.txt");
:file print file=$fn09;

:global fn10 $ts ;
set fn10 ($fn10."-10.txt");
:file print file=$fn10;

:global fn11 $ts ;
set fn11 ($fn11."-11.txt");
:file print file=$fn11;

:global fn12 $ts ;
set fn12 ($fn12."-12.txt");
:file print file=$fn12;

:global fn13 $ts ;
set fn13 ($fn13."-13.txt");
:file print file=$fn13;

:global fn14 $ts ;
set fn14 ($fn14."-14.txt");
:file print file=$fn14;

:global fn15 $ts ;
set fn15 ($fn15."-15.txt");
:file print file=$fn15;




delay 1s
#file set $fn01 contents ""



#/file print file= $fileName01;
#/set fileContent "";
#/file set $fileName01 contents=""

#/file print file=$fn01
#file set [$fn01] contents=""


#/file set "$fn01" contents="";





:global bbytes;
:local iip "";
:local nname;
:global queueCurrent;
:for queueCurrent from=0 to=848 do={
#log info $queueCurrent
global delka [len $fileContent]
#log info $delka
set bbytes [/queue simple get $queueCurrent bytes];
set iip [/queue simple get $queueCurrent target];
set nname [/queue simple get $queueCurrent name];
#set fileContent ([$fileContent].[$iip].";".[$bbytes].";".[$nname]."\r\n") ;
set fileContent ([$fileContent].[$ts].";".[$iip].";".[$bbytes].";".[$nname]."\r\n") ;

#log info $fileContent
}

file set $fn01 contents= ([:pick $fileContent 0 4000])
file set $fn02 contents= ([:pick $fileContent 4000 8000])
file set $fn03 contents= ([:pick $fileContent 8000 12000])
file set $fn04 contents= ([:pick $fileContent 12000 16000])
file set $fn05 contents= ([:pick $fileContent 16000 20000])
file set $fn06 contents= ([:pick $fileContent 20000 24000])
file set $fn07 contents= ([:pick $fileContent 24000 28000])
file set $fn08 contents= ([:pick $fileContent 28000 32000])
file set $fn09 contents= ([:pick $fileContent 32000 36000])
file set $fn10 contents= ([:pick $fileContent 36000 40000])
file set $fn11 contents= ([:pick $fileContent 40000 44000])
file set $fn12 contents= ([:pick $fileContent 44000 48000])
file set $fn13 contents= ([:pick $fileContent 48000 52000])
file set $fn14 contents= ([:pick $fileContent 52000 56000])
file set $fn15 contents= ([:pick $fileContent 56000 60000])
0 x

Konycz
Příspěvky: 59
Registrován: 8 years ago

Příspěvekod Konycz » 8 years ago

diky moc....

jen se jeste zeptam.... nyni pouzivam na vycet stazenych dat tohle

Kód: Vybrat vše

/queue simple
:foreach i in=[find] do={
  :local totalcurrent ([get $i bytes])
  :local pos5 [:find $totalcurrent "/"]
  :local pos6 [:len $totalcurrent]
  :local bytesupcurrent ([:pick $totalcurrent 0 ($pos5)])
  :local bytesdowncurrent ([:pick $totalcurrent ($pos5+1) $pos6])
  :local megsupcurrent ($bytesupcurrent / 1048576)
  :local megsdowncurrent ($bytesdowncurrent / 1048576)
      :set telo ($telo . [get $i name] )
      :set telo ($telo . ": " . $megsdowncurrent . " / " . $megsupcurrent . "\n" )


to me uklada pocet MB za den, jak zmenit megsdowncurrent a megsupcurrent abych ukladal pocet paketu ?? existuje nekde nejaky manual kde bych nasel co vsechno muzu ukladat a jak se to presne jmenuje ?? protoze samozrejme ve Winboxu je napsano Packet a ne presny nazev..
0 x

Konycz
Příspěvky: 59
Registrován: 8 years ago

Příspěvekod Konycz » 8 years ago

mohl by mi prosim nekdo poradit jak vytahnout pocet tech paketu za den ??? ted vytahuju pocet MB za den, ale potreboval bych jeste pocet paketu, abych mohl jeste zjistit kdo mi vytezuje linku ??? Muj ISP ma omezeni poctu paketu a nekdo v siti to zahlcuje, tak bych chtel jenom u toho jednoho omezit pocet paketu/s diky moc

A otazka 2. kolik tak pocet paketu/s je tak optimalni ??
0 x