hladam program - Na monitorování trafficu (a následné akci při malém vytížení)
Hladam neaky program, ktory by monitoroval nez a keby bol trafic napr. za 5 min nulovy alebo neaky zanedbatelny vykonal by neaku akci napr. spustil neaky program resetil program alebo pod.
Potrebujem preto bo ked upujem tak som vacsinou v praci a cez den mi zblbne rapiduploader, prestane upovat, takze to mozem az vecer napravit. Ten program by monitoroval upload a keby bol zanedbatelny v priebehu napr 5. min tak by resetol program. thx
[mod]Změna předmětu, původně: hladam program (AZOR)[/mod]
pokud předpokládáme Windows, tak bych to vyřešil pomocí wipfw a nějakého jednoduchého VSB skriptu.
Ve wipfw stačí nastavit jedno pravidlo, které bude accountovat daný traffic a co 5 minut to stačí kontrolovat VBS skriptem, který se může nastavit jako naplánovaná úloha a rovnou v něm nadefinovat to "resetování programu"
hmm vo VBS neviem spravit uplne nic, mohol by si pjosiim napisat take nieco a ako sa to pouziva... ma win XP
tak to budeš muset chvíli vydržet, až na to (snad večer) najdu čas.
si super, budem ti velmi vdacny dakujeeeeeeem
sorry, dneska už nic nenapíšu, bo jsem spařený.. btw chybí tady ikonka borovičky¨..
megaLOL
Edituj konstanty měnitelné uživatelem, ale pozor, některé věci jsou hardcoded do kódu, běží to defaultně z c:\temp
pokračování v další reakci
dávka GETDATA.BAT (standardně v c:\temp):
upravený wipfw.conf:
upravený loadrules.cmd:
Pozor, firewall normálně propouští, je použit pouze na počítání dat
Tento příklad počítá s tím, že proměnné a dávka jsou uloženy v C:\temp. Je to předvedeno na příkladu restartování aplikace calc.exe s tím, že se počítají odeslaná data na vzdálený port 80 - jedná se o řádku konfigurace 101.
Kdyby bylo něco nejasné, dej vědět.
edit: jo, proměnná konst slouží k nastavení minimálního trafficu (v bytech), který se přičte k naměřeným datům
wooow dakujeem dakujeeem dakujeeem si super mas u mna
v system32 ja nemam subor ipfw.exe. mam winxp. este by som sa chcel spytat na rozmiestnenie suborov subory getdata.bat umiestnim do c:\temp a loadrules.cmd tiez do temp? a ten prvy script to je jedno ako ho umiestnim a pomenujem? thx
Ani se nedivím, že ipfw.exe nemáš... Touchwood zřejmě předpokládal použití wipfw?
wipfw.sourceforge.net
getdata.bat je v c:/temp, loadrules.cmd je v adresáři v firewalem ipfw.
Snad mě autor skriptu neseřve, že mu do toho kecám...
este jedna mala otazocka, tento script konroluje traffic jednorazovo ze? musim ho dat nex sa spusta zhruba raz za 5 min popr. alebo ako budem potrebovat? thx
Už ti to touchwoood psal:
jj přesně tak. samozřejmě by to šlo udělat jako nekonečný cyklus a spouštět jako program.
ok este raz thx. ked pridem domof s prace tak to vyskusam... dufam ze tam nic nepomrvim..
mno zatim som to vseko porobkal a tvari sa to, ze to funguje. este taka mala otazocka konstanta Const FWrow = "00101" naco sluzi?
FWrow se odkazuje na řádek pravidel ipfw. Na řádku 101 je pravidlo, jehož počítání proteklých bajtů nás zajímá. Tedy změnou čísla řádku můžeš změnit řádek (vždy je to třetí sloupec na daném řádku), kterou ti bude skript "vycucávst" z výpisu ipfw. To se hodí, kdybys náhodou začal ipfw používat jako standardní firewall (což každému doporučuju; je k tomu ke stažení i GUI klikátko)
samotná pravidla ipfw si můžeš zobrazit pomocí příkazu ipfw show - pak ti to bude jasné.
nieco nefunguje, premennu konst som nastavil takto: konst = 7340032 to je 7 mb
a teraz mi to vypisuje chybu
line: 83
Error: Overflow'Clng'
Code: 800A003
je tam toto
if CLng(oldtraffic + konst) >= CLng(traffic) then
Je ti jasne ze cislo ulozene v PC (ako byte alebo word alebo dword alebo qword) nemoze nadobudat nekonecne velke hodnoty?
vsak hej ale neviem preco by to mala byt nekonecna hodnota...
nie nekonecna, staci ze je vacsia ako urcita maximalna hodnota a nie je mozne ju do daneho miesta (rezerbvovaneho pre premennu) ulozit. To sa vola overflow (pretecenie).
Pockaj si ale na vyjadrenie touchwooda, kedze je to naprogramovane v niecom strasne divnom a nevidim tam ziadne definicie typu (a teda aj max.rozsahu) premennych.
hmm uz mi to kupodivu prestalo vyhadzovat, nexapem. thx moc za vsetko
Fcia CLng konvertuje na premennu typu long, t.j. maximalny rozsah je -2147483648 az 2147483647. Ak hodnota (oldtraffic + konst), alebo hodnota traffic je z nejakeho dovodu mimo tohoto rozsahu, tak nastane overflow. Alebo mozno to vypise nejaku chybu aj ak niektora z tych premennych neobsahuje nic alebo nejaku blbost (text apod).
Pozeram ze ten program bere hodnotu oldtraffic zo suboru status.txt
do ktoreho si o par riadkov neskor zapisuje aktualny traffic (pre dalsi priebeh programu).
problem bol mozno v tom ze pri prvom spusteni programu ten subor status.txt este neexistoval, takze precital asi do premennej oldtraffic nejaku hovadinu. Pri dalsom spusteni programu uz ten subor existuje (pri prvom spusteni ho tesne pred tym padnutim vytvoril).
P.S. Alebo to precita do oldtraffic alebo traffic nahodne nejake sialene cislo. Ak to niekedy v buducnosti padne tak si pozri subor status.txt (mal by byt tam kde je ten program), mala by byt v nom posledna hodnota premennej traffic.
hmm prave teraz mi to zase vyhodilo errora, toto co si napisal som sa tak "lamerski" dovtipil. aj som kontroloval ten subor ale nic podozriveho som tam nevidel, teraz je tam cislo 2164495735 taze asi preto to vypisuje, mozno by sa zislo nieco cim by sa to vzdy resetlo nex to neblbne. Vies ako? thx vopred
alebo zmenit premennej maximalny rozsah na neaky neobmedzeny.
Neobmedzeny rozsah neexistuje. Ked tam mas take cislo tak ten program nefunguje spravne, ako si mohol mat taky velky traffic?
P.S. ked to zas drbne tak si pozri aj C:\temp\data.txt to by mal byt posledny vystup z firewallu, tam vidiet potom aj v riadku 00101 ten traffic (odtial ho program precital).
Urobil si vsetko presne tak ako pisal touchwood?
.bat subor, ten program (nemenit tu hodnotu "00101"), zmenil si tie konfiguracne subory firewallu?
.. alebo si skus rucne spustit
C:\WINDOWS\system32\ipfw.exe show
ked si v C:\temp, ze ci to vobec korektne vola ten firewall a ci ti to do riadku s 00101 vypise aktualny traffic.
jj spravil som to presne tak, len ten rozsah to je 10 miestne cislo a to cca 2200 mb to mam upload za den preto mi to pada... neaky prikaz na ten ipfw.exe co by ho resetol nie je? ze by som ho tam niekde pridal do toho bataku..?
2G upload
ok tak ten prevod zmen na double, to zvladne aj hodne vecsie cisla ale od urcitej velkosti straca presnost, co ale v tomto pripade nebude vadit.
if CLng(oldtraffic + konst) >= CLng(traffic) then
zmen na
if (CDbl(oldtraffic) + CDbl(konst)) >= CDbl(traffic) then
neskusal som to VBasicu sa na kilometer vyhybam, daj vediet ci to funguje.
P.S. inac to if by logickejsie malo byt
if (CDbl(traffic) - CDbl(oldtraffic)) <= CDbl(konst) then
aby to bolo pochopitelne nielen pre autora programu , inac je to ale to iste.
jj, přesně tak.
BTW, by mě zajímalo, co furt eth4endil uploaduje
Mozno skusa ze co sa stane ked zaplni cely internet
myslím, že má reálnou šanci, za předpokladu, že na druhé straně není výstup směrován do /dev/nul
a malickost 200 filmov
No jo ale to sem nepis. Takze budem predpokladat ze sa jedna o tvoje "filmy" z dovolenky apod.
ok thx, skusim ale az vecer bo som teraz v praci, nepomohlo by keby som do planovanych uloh niekedy po spusteni tohto sciriptu dal raz za den spustit ten batak co odinstaluje wipf a nasledne druhy batak co ho nainstaluje ? tym by sa vlastne resetol trafic? alebo dva krat bo mam niekedy upload 3,5gb?
Zmen ten jeden riadok co som pisal (to ti pojde aj do miliion GB aj ked to porovnanie bude s mensou presnostou napr. plusminus kilobajt pri milionoch GB) a nevymyslaj zhadzovanie programov. S tankom na komare :)
jj ok ja som len myslel ze to bude mensi limit a viac nepresne. s tankom na komare :D roflol
jj funguje to super skusal som to dakujeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeem velmi vsetkych moc mi pomahali
....vyriesene... (teda zatial (:) double smile :D