❗️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
Re: Graf o počtu stažených dat
A myslíš, že by si mi mohl poskytnout tvuj script a ten program ???
0 x
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
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íš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
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
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
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
ale ulozi mi to soubor pod nazvem date.txt
PSS:takze dalsi pokrok
ale potom obsah souboru je nesmysl
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
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
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)
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])
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)
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
diky moc....
jen se jeste zeptam.... nyni pouzivam na vycet stazenych dat tohle
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..
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
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 ??
A otazka 2. kolik tak pocet paketu/s je tak optimalni ??
0 x