- Álláskeresés, interjú, önéletrajz
- Vodafone otthoni szolgáltatások (TV, internet, telefon)
- Kodi és kiegészítői magyar nyelvű online tartalmakhoz (Linux, Windows)
- Videó stream letöltése
- SkyShowtime
- Telekom otthoni szolgáltatások (TV, internet, telefon)
- Erőszakos tartalomba fut a gyerek, ha internetezik
- Aliexpress tapasztalatok
- YouTube
- Facebook és Messenger
Új hozzászólás Aktív témák
-
SteveBeard
senior tag
válasz Jester01 #1250 üzenetére
Szia!
Ez is rendben van, tökéletesen megy nálam is.
A söröket hova küldjem?
Gondolom ezt lenne célszerű használni.
De alapból a host parncsot nem ismerte, mert arra a következő választ kaptam.
-ash: host: not foundJobb ötlet híján telepítettem ezt
bind-host 9.9.1-P3-1 bind simple DNS client
és innentől kezdve ez is ment.Mondtad, hogy láttad az eredeti scriptet és elszörnyülködtél rajta. Ettől függetlenül lehet még azzal kapcsolatban kérdésem, vagy ne hergeljelek vele tovább?
Mert van benne még egy ilyen grep | awk | grep sor , (kettő, de szinte ugyanaz) amit ha rendbe lehetne hozni nem is zaklatnálak tovább.
Ráadásul úgy vettem észre, hogy néha ki is akasztja a scriptet.
Ami azt jelenti, hogy váratlanul leáll syntax error hibával, de kétszer- háromszor újraindítva lefut rendesen.Ez az egész egy routeren fut. Van benne egy csomó monitorozó lehetőség, de olyan nagy az erőforrásigénye azoknak, hogy nem érdemes használni. Az rrdtool-t, ami gyűjti az adatokat és rajzolja a grafikonokat, meg észre sem venni, hogy megy a háttérben.
[ Szerkesztve ]
Steve
-
-
Jester01
veterán
-
SteveBeard
senior tag
válasz Jester01 #1253 üzenetére
Köszönöm!
Eu a parancs írja egy fájlba a forgalmat
iptables -L traffic -vnxZ -t filter > /opt/test/sum/traffic.tmpami így néz ki:
Chain traffic (1 references)
pkts bytes target prot opt in out source destination
15 3046 all -- * * 192.168.1.150 0.0.0.0/0
16 1238 all -- * * 0.0.0.0/0 192.168.1.150
184 23170 all -- * * 192.168.1.135 0.0.0.0/0
133 16470 all -- * * 0.0.0.0/0 192.168.1.135
0 0 all -- * * 192.168.1.190 0.0.0.0/0
0 0 all -- * * 0.0.0.0/0 192.168.1.190
0 0 all -- * * 192.168.10.5 0.0.0.0/0
0 0 all -- * * 0.0.0.0/0 192.168.10.5
0 0 all -- * * 192.168.10.152 0.0.0.0/0ez folytatódik hosszú sorokon keresztül, majd így fejeződik be:
0 0 all -- * * 0.0.0.0/0 192.168.2.150
0 0 all -- * * 192.168.1.10 0.0.0.0/0
0 0 all -- * * 0.0.0.0/0 192.168.1.10
5962 4181681 all -- * * 192.168.1.100 0.0.0.0/0
3893 419831 all -- * * 0.0.0.0/0 192.168.1.100
0 0 all -- * * 192.168.10.106 0.0.0.0/0
0 0 all -- * * 0.0.0.0/0 192.168.10.106
0 0 all -- * * 192.168.10.188 0.0.0.0/0
0 0 all -- * * 0.0.0.0/0 192.168.10.188
0 0 all -- * * 192.168.10.100 0.0.0.0/0
0 0 all -- * * 0.0.0.0/0 192.168.10.100
0 0 all -- * * 192.168.10.115 0.0.0.0/0
0 0 all -- * * 0.0.0.0/0 192.168.10.115
Zeroing chain `traffic'Azt nem tudom, hogy miért kerülnek bele a 192.168.10.XXX ip címek, de most ez talán lényegtelen. A modem címe egyébként a 192.168.10.1
Majd ebből a bejövő forgalmat ezzel szedi ki.
IN=$(cat /opt/test/sum/traffic.tmp | awk '{print $2 " " $7}' | grep $IP | awk '{print $1}' | tr -d '\n' )
IN=$(($IN+0))A kimenő forgalom ugyanez, csak a $7 helyett $8 szerepel
Steve
-
válasz SteveBeard #1254 üzenetére
azt ugye érzed, hogyha azt írod, hogy:
cat filenev | awk
ahelyett, hogy
awk '{...}' filenev
akkor itten téged virtuálisan keresztre feszítenek?Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis
-
válasz SteveBeard #1254 üzenetére
"IN=$(cat /opt/test/sum/traffic.tmp | awk '{print $2 " " $7}' | grep $IP | awk '{print $1}' | tr -d '\n' )"
bajok:
- ha a grep $IP-t másodiknak rakod, akkor az első awknak fel kell dolgoznia minden sort, amiben nincs benne az ip, azt is, feleslegesen. tehát ha tudod szűrni, csökkenteni azt az adatmennyiséget, amit az awknak betolsz, azt jobb minél előbb, mert az awk egyébként interpreter nyelv, tehát lassú
- tehát nem cat /opt...| awk | grep $IP, hanem grep $IP /opt/test/sum/traffic.tmp
- ebben az esetben szerintem a két awk összevonható egybe
- például így: awk '{ if ($7==$IP) print $2' }" szintaxist most nem teszteltem terminálban.
- ha a végén úgyis letörlöd a soremelést, akkor egyszerűbb az awk-kal ki sem iratni, megint megspóroltál egy forkot.elvileg az awk-nak lehet kívülről változónak értéket adni, valahogy így a doksi szerint: awk -v IP=192...
és akkor erre tudsz a programon belül hivatkozni.Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis
-
-
SteveBeard
senior tag
válasz bambano #1255 üzenetére
Természetesen igen, érzem, ezért is írtam, amit írtam, hogy kérdezhetek-e.
Az openwrt wiki-n találtam, az egészet, jól hangzott, kipróbáltam, nem működött és addig-addig alakítgattam,a míg sikerült belőle grafikonokat gyártani.
Ezen a részen nem alakítottam semmit ez teljesen ugyanaz, mint a leírásban
És van még benne több ilyen is
Most, hogy már működik és felvilágosítottatok arról, hogy egyébként úgy sz.r, ahogy van gondoltam valahogy egy kicsit rendbe kéne rakni és én is tanulok belőle valamit... talán, hisz' tele csuporba már nehéz tölteniSteve
-
válasz SteveBeard #1260 üzenetére
két awk-nak egymás után, amik csak kiírnak, nincs értelme.
akkor már elég lenne a két awk helyett egy awk '{print $2}'
ezt még lehetne azzal rövidíteni, hogyha print helyett printf-et használsz, és nem írsz bele soremelést a végére, akkor nem írja ki, tehát a tr-t is le lehet hagyni a végéről.
az egész kb. ennyi lenne:IN=$(grep $IP /opt/test/sum/traffic.tmp | awk '{printf "%d",$2 }' )"
viszont ez a két irányt össze fogja keverni, a bemeneti és a kimeneti irányra is ki fogja írni a forgalmat. tehát kell még bele egy feltétel.
Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis
-
válasz SteveBeard #1260 üzenetére
még annyit lehetne optimalizálni az egészen, hogy amikor az iptables logját mented az ideiglenes fájlba, akkor csinálsz egy kis előfeldolgozást, hogy a későbbi adatbányászathoz egyszerűbb formátumban teszed le az adatokat.
Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis
-
dabadab
titán
válasz bambano #1258 üzenetére
"majd feladod ezt az elvedet, ha pár mega ramos, márszáz MHz-es procival szerelt routerbe pakolod a programot."
Annak idejen, amikor shellt programozni tanultam, baromira orultem volna egy olyan eros, sok memorival szerelt gepnek, mint egy mai router (helyette volt 40 MHz meg 4 MB)
Az az egy szal cat nem oszt, nem szoroz, egy nagyon gyenge rendszeren meg ugyis busyboxot hasznal az ember, ott meg plane nem.[ Szerkesztve ]
DRM is theft
-
válasz dabadab #1264 üzenetére
egy 1043nd-ben futó openwrt van most kéznél, amit nézhetek. 32 M ram, 266MHz proc. De ez a risc proc nem az a cisc proc, mint egy 40-50MHz-es 486DX volt anno, ez a több, mint százmillió soros kernel nem az a kernel, ami volt anno, elég csak a tar.gz-k méretét megnézni, a libc sem ugyanakkora, stb.
lehet, hogy összességében egy régi gép hatékonyabb volt, mint ez a router.
Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis
-
Jester01
veterán
-
válasz Jester01 #1266 üzenetére
ez alapvetően igaz lenne, ha nem akarná utána egyesével megetetni az rrdtool adatbázis részével. (ha jól értem az eddig kideríthető szándékát).
persze lehetne awk-ból forkolni rrdtool db-t is, kinek mekkora perverziói vannak
Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis
-
SteveBeard
senior tag
válasz Jester01 #1268 üzenetére
Köszönöm a segítségeteket!
Amit elsőként szerettem volna megcsinálni az sikerült.
Sajnos igazán rendbe rakni nem tudtam, egyelőre így marad...
Ha már ennyit foglalkoztatok velem, akkor megmutatom miről is volt szó.
Ezek a képek MAC címre bontva készülnek el, napi, heti, és havi bontásban...Steve
-
szoke12
őstag
Sziasztok!
Ma sokat olvastam a témában, egy dolgot viszont nem találtam.
if [ "$SNUM" == "10" ] ;Hogy tudom azt megadni, hogy ne csak akkor legyen igaz, ha az értéke 10, hanem akkor is, ha 9, 8, 7, 6... stb?
"Élj úgy, hogy ha majd lepereg előtted életed filmje, érdemes legyen végignézni!"
-
dabadab
titán
válasz szoke12 #1270 üzenetére
Az ==, amit hasznalsz, az igazan stringek osszehasonlitasara van, neked meg szamokat kell osszehasonlitanod, arra mas operatorok vannak, az egyenloseg:
if [ $NUM -eq 10 ] ; then
A komplett sor: -lt, -le, -eq, -ge, -gt (kisebb, kisebbegyenlo, egyenlo, nagyobbegyenlo, nagyobb)
vagyis ami neked kell az az, hogy
if [ $NUM -le 10 ] ; then[ Szerkesztve ]
DRM is theft
-
válasz SteveBeard #1269 üzenetére
azt ugye tudod, hogy a routeredben a flash nagyon nem fogja csípni, ha 5 percenként teleírod grafikákkal? ezt külsőleg csatlakoztatott pendrive-on érdemes.
Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis
-
SteveBeard
senior tag
Ahogy mondtam korábban, hogy napi, heti, és havi bontásban készülnek el a képek.
Azt sikerült elérni, hogy csak hétfőn készítse el az előző heti képet.
Azt meg lehet oldani, ha már elkészítette a képet, akkor többször már csinálja meg?
A script ide vonatkozó része:
if [ -z $1 ] && [ $WEEKDAY -eq 1 ]
then
WEEK=`echo 1 | awk '{print strftime("%Y-%W", systime()-86400)}'`
STATDATE=week_$WEEK
START=7d
CreateGraph "/opt/www_traff/rrd/${MAC_}_${STATDATE}.png" $START /opt/www_traff/rrd/${MAC_}.rrd "IP: $IP MAC: $MAC_ Host: $NAME $SUMMB MB"
fi[ Szerkesztve ]
Steve
-
válasz SteveBeard #1275 üzenetére
az echo 1 | awk '{}' helyett awk 'BEGIN {..}' elegánsabb.
Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis
-
Jester01
veterán
válasz SteveBeard #1275 üzenetére
Tedd a fájlnevet egy változóba (pl. $png) aztán ellenőrizd, hogy létezik-e: if [ -f "$png" ]
A hét számának előállítása igen kreatív.
Jester
-
Jester01
veterán
válasz SteveBeard #1278 üzenetére
Értem én. A tagadást gondoltam a környezet függvényében már megoldod.
Például if [ ! -f "$png" ] ...Jester
-
SteveBeard
senior tag
Sziasztok!
Nem nagyon van mozgás, ezért fel merem tenni a kérdésem...Egy scriptben ennek a sornak mi a feladata?
logger -t makepng_load "Imgfile:$IMGFILE Start:$2"
Steve
-
Jester01
veterán
válasz SteveBeard #1281 üzenetére
Kiírja a syslog-ba a megadott szöveget a megadott "tag" megjelöléssel:
Hogy honnan tudom? Hát innen:$ logger --help
BusyBox v1.17.1 (Debian 1:1.17.1-8) multi-call binary.
Usage: logger [OPTIONS] [MESSAGE]
Write MESSAGE (or stdin) to syslog
Options:
-s Log to stderr as well as the system log
-t TAG Log using the specified tag (defaults to user name)
-p PRIO Priority (numeric or facility.level pair)Jester
-
válasz SteveBeard #1283 üzenetére
a múltkori cuccot, amit faragtál, kitehetnéd publikus helyre (pl. logout blog), hátha mást is érdekel.
Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis
-
szoke12
őstag
Sziasztok!
Olyan kérdésem lenne, hogy hogyan tudnám azt elérni, hogy egy script futtatása közben read parancs beiktatása mellett hogy tudnám rossz válaszkor viszzaugratni pár sorral a scriptet?
Tehát hogy egy bizonyos ponttól fusson újra."Élj úgy, hogy ha majd lepereg előtted életed filmje, érdemes legyen végignézni!"
-
SteveBeard
senior tag
Sziasztok!
Szeretnék törölni több fájlt, mindegyikben szerepel a 00-00-00-00-00-00 és .traf .png .rrd lehet a kiterjesztése.
Az rm $IMAGEFILE/00-00-00-00-00-00*.png és persze a kiterjesztésnek megfelelően a többi parancs törli is a fájlokat, de ha nincs ilyen fájl, akkor hibaüzenetet ad.
Ezt szerettem volna kikerülni és a korábbi hozzászólásokat bogarászva próbáltam megoldani, de kevés sikerrel.
Ez lett volna, amit kitaláltam:
[[ -f "$IMAGEFILE/00-00-00-00-00-00*.png" ]] && rm "$IMAGEFILE/00-00-00-00-00-00*.png"
[[ -f "$IMAGEFILE/00-00-00-00-00-00*.traf" ]] && rm "$IMAGEFILE/00-00-00-00-00-00*.traf"
[[ -f "$IMAGEFILE/00-00-00-00-00-00*.rrd" ]] && rm "$IMAGEFILE/00-00-00-00-00-00*.rrd"vagy ez:
if [ -f $IMAGEFILE/00-00-00-00-00-00*.png ] ; then
rm "$IMAGEFILE/00-00-00-00-00-00*.png"
fi
De mind a két változatra ez a hibaüzenet:
+ [[ -f /opt/www_traff/stat_images/00-00-00-00-00-00_2013-01-10.png /opt/www_traff/stat_images/00-00-00-00-00-00_week_2013-01.png ]]
sh: /opt/www_traff/stat_images/00-00-00-00-00-00_week_2013-01.png: unknown operand
+ [[ -f /opt/www_traff/stat_images/00-00-00-00-00-00*.traf ]]
+ [[ -f /opt/www_traff/stat_images/00-00-00-00-00-00*.rrd ]]A sima törlés megy, ahogy látom a fájlokat is megtalálja, nem tudom hol rontom el
(#1284) bambano
Ha sikerül kijavítanom azokat a hibákat, amiket mondtatok, természetesen kiteszem, de ha érdekel elküldhetem Neked pü-ben. Egész szépen dolgozik, még egy html oldalt kell neki készítenem, hogy kereshető is legyen, mert egyelőre csak az aktuális kapcsolatokat és azok grafikonjait jeleníti meg. Az sem lesz kis feladat, mivel még soha nem csináltam.[ Szerkesztve ]
Steve
-
SteveBeard
senior tag
válasz SteveBeard #1287 üzenetére
Kiszaladtam a szerkesztési időből.
Arra közben rájöttem, hogy az nem tetszik neki, ha ugyanolyan kiterjesztésű fájlból többet talál.
Ha csak egy van belőle, akkor simán törli....[ Szerkesztve ]
Steve
-
válasz SteveBeard #1287 üzenetére
emlékeim szerint az rm -f nem szól be.
Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis
-
SteveBeard
senior tag
Nem teljesen ide, de hirtelen nem tudom hol kérdezzem meg. Ti hogy íratnátok ki a hetek számát?
Ha jól tudom már a 2. hét van, de eszerint:
date +%Y-%W
2013-01az első....
[ Szerkesztve ]
Steve
-
Jester01
veterán
válasz SteveBeard #1291 üzenetére
$ date +%Y-%V
2013-02man date: %V ISO week number, with Monday as first day of week (01..53)
Jester
-
SteveBeard
senior tag
Sziasztok!
Adott ez a rész egy scriptben:
for MAC in $(cat /etc/ethers |cut -f1) ; do
MAC_=$(echo $MAC | sed 's/:/-/g')
doneHogy tudnám elérni, hogy bizonyos MAC címeket ne vegyen figyelembe?
Steve
-
Jester01
veterán
válasz SteveBeard #1294 üzenetére
Például belepakolod egy asszociatív tömbbe ami nem kell.
#! /bin/bash
declare -A ignore
ignore=(
["00-00-00-00-00-01"]=1,
["00-00-00-00-00-03"]=1,
["00-00-00-00-00-05"]=1,
["00-00-00-00-00-07"]=1
)
for ((i=1; i<8; i+=1))
do
mac="00-00-00-00-00-0$i"
echo -n "$mac "
if [[ ${#ignore[$mac]} = 0 ]]
then
echo "valid"
else
echo "ignored"
fi
done$ ./test.sh
00-00-00-00-00-01 ignored
00-00-00-00-00-02 valid
00-00-00-00-00-03 ignored
00-00-00-00-00-04 valid
00-00-00-00-00-05 ignored
00-00-00-00-00-06 valid
00-00-00-00-00-07 ignored(Ez viszont busybox-ban így nem megy)
Jester
-
Jester01
veterán
válasz Jester01 #1295 üzenetére
busybox kompatibilis változat:
ignore="00-00-00-00-00-01,00-00-00-00-00-03,00-00-00-00-00-05,00-00-00-00-00-07"
i=1
while [ $i -le 8 ]
do
mac="00-00-00-00-00-0$i"
echo -n "$mac "
if [ "$ignore" == "${ignore/$mac/}" ]
then
echo "valid"
else
echo "ignored"
fi
i=$((i + 1))
doneJester
-
Jester01
veterán
válasz SteveBeard #1298 üzenetére
Azért van a topik.
Melyik részével nem boldogultál? Csak egy string konstansba kellett volna felvenned a mac listát ahogy mutattam, aztán meg az az if kell és kész.Jester
-
SteveBeard
senior tag
válasz Jester01 #1299 üzenetére
Úgy nézett ki, hogy minden rendben, hibát sem dobott, de csak nem akarta figyelmen kívül hagyni a megadott MAC címet. Két MAC címről lett volna szó a 00-00... és egy a routerre csatlakoztatott PS2 címéről.
Egyelőre pihentetem a dolgot, azután pár nap után friss erővel nekifutok megint.
Már nem tudom Neked bemásolni, mert kitöröltem, de talán jobb isSteve
Új hozzászólás Aktív témák
- World of Tanks - MMO
- Samsung Galaxy A05s - az ötösért több kell
- Nvidia GPU-k jövője - amit tudni vélünk
- Robot fűnyírók
- Samsung Galaxy Fit 3 - keveset, de jól
- Wise (ex-TransferWise)
- Honor Magic6 Pro - kör közepén számok
- Poco F3 - a mindenes, de nem mindenkinek
- Álláskeresés, interjú, önéletrajz
- Blu-ray lemez tapasztalatok
- További aktív témák...
- Játékkulcsok olcsón: Steam, Uplay, GoG, Origin stb.
- Adobe Creative Cloud - 2024. 04. 05 - 2025. 04. 05-ig
- Windows 10/11 Home/Pro licenc kulcsok kedvező áron!
- Microsoft licencek a legolcsóbban - UTALÁSSAL IS AUTOMATIKUS KÉZBESÍTÉS - Windows és Office
- Windows 10/11 Home/Pro , Office OEM/Retail kulcsok