Hirdetés
- Pánikban a világ a Radeon RX 5000 és 6000 sorozat támogatása miatt
 - Milyen asztali (teljes vagy fél-) gépet vegyek?
 - Asztrofotózás
 - Fejhallgató erősítő és DAC topik
 - NVIDIA® driverek topikja
 - Milyen videókártyát?
 - Soundbar, soundplate, hangprojektor
 - Projektor topic
 - RAM topik
 - Amlogic S905, S912 processzoros készülékek
 
Új hozzászólás Aktív témák
- 
			
			
						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 is
 - 
			
			
						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. - 
			
			
						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))
done - 
			
			
						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)
 - 
			
			
						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?
 - 
			
			
						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)
 - 
			
			
						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ő....

 - 
			
			
válasz
							
							
								SteveBeard
							
							
								#1287
							
							üzenetére
						emlékeim szerint az rm -f nem szól be.
 - 
			
			
						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.... - 
			
			
						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. - 
			
			
						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. - 
			
			
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.
 - 
			
			
						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) - 
			
			
						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"
 - 
			
			
						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" ] ... - 
			
			
						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.

 - 
			
			
válasz
							
							
								SteveBeard
							
							
								#1275
							
							üzenetére
						az echo 1 | awk '{}' helyett awk 'BEGIN {..}' elegánsabb.
 - 
			
			
						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 - 
			
			
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.
 - 
			
			
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 - 
			
			
						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?
 - 
			
			
						SteveBeard
senior tag
 - 
			
			
 - 
			
			
						Jester01
veterán
 - 
			
			
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.
 - 
			
			
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. - 
			
			
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.
 - 
			
			
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.
 - 
			
			
						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ölteni
 - 
			
			
 - 
			
			
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. - 
			
			
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?
 - 
			
			
						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
 - 
			
			
						Jester01
veterán
válasz
							
							
								SteveBeard
							
							
								#1251
							
							üzenetére
						Persze, bármit megjavítunk, hadd pörögjön a topik

 - 
			
			
 - 
			
			
						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.
 - 
			
			
						Jester01
veterán
válasz
							
							
								bambano
							
							
								#1249
							
							üzenetére
						Abban alapból működnek a bash stringmanipulációs cuccai hacsak valaki ki nem kapcsolta:
compile time option ("ASH_BASH_COMPAT", active per default) for several bash compatibility features: option pipefail, substring and replacement parameter expansion
name=$(host $IP)
name=${name##* }
name=${name%.lan.}Ezzel próbáltam:
BusyBox v1.17.1 (Debian 1:1.17.1-8) built-in shell (ash) - 
			
			
 - 
			
			
válasz
							
							
								SteveBeard
							
							
								#1245
							
							üzenetére
						cut -d\ -f 5 | cut -d. -f 1
ez gyorsabb és csak két fork ugyanarra a programra. - 
			
			
						SteveBeard
senior tag
válasz
							
							
								Jester01
							
							
								#1244
							
							üzenetére
						Sziasztok!
Mind a két megoldás jó lett, mivel nálam mindig van, legalábbis eddig mindig volt .lan a végén.
Köszönöm!
Közben már a host parancs is működik..root@OpenWrt:~# host 192.168.1.100
100.1.168.192.in-addr.arpa domain name pointer Pistii-LAPTOP.lan.
root@OpenWrt:~# host 192.168.1.100 | awk '{print $5}'
Pistii-LAPTOP.lan.
root@OpenWrt:~# host 192.168.1.100 | awk '{print $5}' | sed -e 's/\.lan.//'
Pistii-LAPTOP - 
			
			
 - 
			
			
 - 
			
			
						Jester01
veterán
válasz
							
							
								SteveBeard
							
							
								#1238
							
							üzenetére
						Feltéve, hogy az első Name: kezdetű sor után következik amit ki akarunk szedni akkor például:
name=$(nslookup $IP | awk '/^Name:/ { getline; print $4; exit }')
name=${name%.lan}(bash esetén legalábbis)
 - 
			
			
						SteveBeard
senior tag
válasz
							
							
								bambano
							
							
								#1223
							
							üzenetére
						Köszönöm a tanácsot,
 tényleg elrontottam, javítottam.
Ez sed -e 's/\.lan//' működik, amíg nincs jobb, ez marad.
Ezt is köszönöm!
Mivel saját magamnak készül, és nem azt szeretném, hogy a leckét valaki más csinálja meg helyettem, ezért csak én nevetek majd magamon és nektek szerzek néhány
 vagy 
 percet. Kinek kinek vérmérséklete szerint 
 - 
			
			
válasz
							
							
								Jester01
							
							
								#1231
							
							üzenetére
						nyilván egy lehetetlen küldetés beírni nálad, hogy apt-get install dnsutils

# nslookup 217.20.130.97
Server: 127.0.0.1
Address: 127.0.0.1#53Non-authoritative answer:
97.130.20.217.in-addr.arpa name = sportgeza.hu.Authoritative answers can be found from:
130.20.217.in-addr.arpa nameserver = ns.index.hu.
130.20.217.in-addr.arpa nameserver = fns.index.hu.
130.20.217.in-addr.arpa nameserver = ns.inventra.hu.
fns.index.hu internet address = 217.20.130.3 - 
			
			
						Jester01
veterán
válasz
							
							
								SteveBeard
							
							
								#1232
							
							üzenetére
						De én az nslookup kimenetét szeretném, nem azt ami már átment a csövön

Szép az a forrás is
 - 
			
			
						SteveBeard
senior tag
válasz
							
							
								Jester01
							
							
								#1227
							
							üzenetére
						root@OpenWrt:~# nslookup 192.168.1.100 127.0.0.1 | grep "Name:" | awk '{print $2
}'
192.168.1.100
root@OpenWrt:~# nslookup 192.168.1.100 | grep Address | grep -v localhost | awk
{'print $4}'
Pistii-LAPTOP.lan
root@OpenWrt:~#Az első az eredeti, arra az ip címet dobta vissza, a második, amit én hoztam össze, azt sem egyedül.
Utánaolvasok és megpróbálom szabályosan megcsinálni, de csak egy éve foglalkozom "komolyabban" Linuxszal és 50 évesen nem egyszerű...
Tényleg bocs a láma kérdésekért, ráadásul nem is otthon vagyok, távoli eléréssel próbálkozom...
 - 
			
			
 - 
			
			
válasz
							
							
								SteveBeard
							
							
								#1226
							
							üzenetére
						sed -e 's/\.lan//'
 - 
			
			
						Jester01
veterán
válasz
							
							
								SteveBeard
							
							
								#1226
							
							üzenetére
						Semmi probléma, de még mindig nem muttattad meg mi jön ki az nslookup-ból

 - 
			
			
						SteveBeard
senior tag
válasz
							
							
								Jester01
							
							
								#1222
							
							üzenetére
						Bocsánat én tényleg nem értek hozzá, de amit szeretnék azt készen nem találtam meg a neten, ezért megpróbálom megoldani magam. Mindent a neten szedtem össze különböző helyekről nem én találom ki.Ez is így szerepelt
Egyébként grafikonok készülnek MAC vagy IP alapján szűrve a hálózati forgalomról és a grafikonok felső sorába íratnám ki a gépek nevét. A dolog működik, csak felesleges nekem a .lan
És még egyszer bocs...

 - 
			
			
 - 
			
			
válasz
							
							
								SteveBeard
							
							
								#1221
							
							üzenetére
						nem ártana helyes sorrendbe rakni az aposztrófokat és a kapcsos zárójeleket.
a kapcsos zárójelek közé írt szöveg az awk paramétere, amit a shelltől védeni kell, tehát a helyes sorrend
aposztróf-kapcsos zárójel-awk program-kapcsos zárójel-aposztróf. - 
			
			
						Jester01
veterán
válasz
							
							
								SteveBeard
							
							
								#1221
							
							üzenetére
						Ezt már megint nem értem, biztos velem van a baj.
Nem tudnád megmutatni mit köp ki az nslookup amit át akarsz alakítani?Egyébként a grep | grep | awk -ért kapsz egy jó nagy pofont
![;]](//cdn.rios.hu/dl/s/v1.gif)
MOD: egyébként van host program is, az nem jobb?
 - 
			
			
						SteveBeard
senior tag
Sziasztok!
Egy scriptben így íratom ki a csatlakoztatott gép(ek) nevét.
nslookup $IP | grep Address | grep -v localhost | awk {'print $4}'Ezzel semmi gond, de a gép neve mellé még hozzáfűzi a .lan -t is. a lan előtt van pont is
Ezt ki lehetne valahogy szedni? - 
			
			
						szoke12
őstag
Helló!
Két fájl összehasonlításakor szeretném kiíratni a különbségüket, ami tudom, hogy egy bizonyos sor. Hogy tudom megoldani? - 
			
			
 - 
			
			
						szoke12
őstag
Sziasztok!
Linux shell scriptet próbálnék írni.
A script adb-n keresztül ad utasítást a telefonnak.
Mi lehet a baj a következő résszel?./adblinux -s $SERIALNO shell 'flash_image recovery /data/local/tmp/recovery.img' &
sleep 10
echo -n "done"Egyszerűen nem akarja kiírni a "done"-t.

Vagy meg lehetne oldani, hogy valahogy kilőjem a futó programot (a "flash_image"-t) olyan 10 mp után?
előre is köszi!(a script részt most fejből írtam, de emlékeim szerint pontosan ez volt)
 - 
			
			
lehet, nem ide kellene, de 11111
ti hogy csinálnátok?van egy pgsql adatbázistábla, abba elvileg sorban kerülnek be rekordok. van egy id mező, ami bigserial és hagyom a default értéket. vagyis elvileg teljesen sorfolytonos az id mező. de néha mégsem. hogy miért, azt most hagyjuk. a kérdés az, hogy hogy találsz meg egész számokat, amiknek szerepelniük kellene az id mezőben, de mégse?
Jester01?

 - 
			
			
válasz
							
							
								SteveBeard
							
							
								#1211
							
							üzenetére
						./scriptnev 2>error.log
 - 
			
			
válasz
							
							
								SteveBeard
							
							
								#1209
							
							üzenetére
						ha írsz egy set -x -et az elejére, látni fogod a debug infókat.
 - 
			
			
						SteveBeard
senior tag
Sziasztok!
A következőben kérném a segítségeteket!
Nem igazán értek a scriptek készítéséhez, de sikerült összeraknom különböző forrásokból egy működő scriptet. Cronból időzítettem, a mai napig jól is működött. Ma mikor hazaértem látom, hogy pár órája nem működik. Megpróbáltam futtatni, de ezzel a hibaüzenettel leáll: line 114: arithmetic syntax errorSemmit nem módosítottam, itthon sem voltam.
a 114. sorban egy done van és nem igazán értem miért nem megy az, ami eddig teljesen jól működött.
A scriptet folyamatosan javítgatom, mert menet közben, ahogy olvasom a leírásokat jövök rá hibákra. Tudom közel sem tökéletes, de azért eddig működött.
A script idevonatkozó része:
for MAC in $(cat /proc/net/arp | grep -v address | awk '{print $4}') ; do
MAC_=$(echo $MAC | sed 's/:/-/g')
IP=$(cat /proc/net/arp | grep $MAC | awk '{print $1}')
# This assumes that a local dns server (like dnsmasq) is running
NAME=$(nslookup $IP | grep Address | grep -v localhost | awk {'print $4}')
# echo "mac: $MAC ip: $IP_ name: $NAME"
UP=$(cat /opt/www_traff/traffic.tmp | awk '{print $2 " " $7}' | grep $IP | awk '{print $1}' | tr -d '\n' )
ALL_UP=`ifconfig eth0.2 | grep bytes | awk -F ":" '{print $3}' | awk '{print $1}'`
DOWN=$(cat /opt/www_traff/traffic.tmp | awk '{print $2 " " $8}' | grep $IP | awk '{print $1}' | tr -d '\n' )
ALL_DOWN=`ifconfig eth0.2 | grep bytes | awk -F ":" '{print $2}' | awk '{print $1}'`
if [ ! -e /opt/www_traff/rrd/$NAME.sum.traf ]; then
echo 0 > /opt/www_traff/rrd/$NAME.sum.traf
fi
PREVSUM=`cat /opt/www_traff/rrd/$NAME.sum.traf`
NOWSUM=$(($UP+$DOWN))
SUM=$(($PREVSUM+$NOWSUM))
echo $SUM >/opt/www_traff/rrd/$NAME.sum.traf
COUNTIP=$(iptables -vnL traffic | grep $IP | wc -l | awk '{print $1}')
if [ "$COUNTIP" -eq 0 ] ; then
iptables -A traffic -s $IP
iptables -A traffic -d $IP
fi
# create db if not exists
if [ ! -e /opt/www_traff/rrd/${MAC_}.rrd ] ; then
# echo creating /opt/www_traff/rrd/${MAC_}.rrd
rrdtool create /opt/www_traff/rrd/${MAC_}.rrd -s 300 \
DS:up:ABSOLUTE:600:0:U \
DS:down:ABSOLUTE:600:0:U \
RRA:AVERAGE:0.5:1:576 \
RRA:AVERAGE:0.5:3:672 \
RRA:AVERAGE:0.5:12:732
fi
#echo "up: $UP down: $DOWN"
ED=`date +%s`
STATDATE=`date +%Y-%m-%d`
START=`expr $ED % 86400`
logger -t traff_graph "Statdate:$STATDATE Start:$START"
rrdtool update /opt/www_traff/rrd/${MAC_}.rrd N:$UP:$DOWN
CreateGraph "/opt/www_traff/rrd/${MAC_}_${STATDATE}.png" $START /opt/www_traff/rrd/${MAC_}.rrd "IP: $IP MAC: $MAC_ Host: $NAME"
INDEX=$INDEX"<img src='${MAC_}_${STATDATE}.png'><br>"
SUMMB=$(($SUM/1048576))
SUMTRAFTAG=$SUMTRAFTAG"<a> $NAME: $SUMMB MB</a><br>"
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"
INDEX=$INDEX"<img src='${MAC_}_${STATDATE}.png'><br>"
MONTH=`echo 1 | awk '{print strftime("%Y-%m", systime()-86400)}'`
STATDATE=month_$MONTH
START=`echo 1 | awk '{print strftime("%d", systime()-86400)}'`d
CreateGraph "/opt/www_traff/rrd/${MAC_}_${STATDATE}.png" $START /opt/www_traff/rrd/${MAC_}.rrd "IP: $IP MAC: $MAC_ Host: $NAME"
INDEX=$INDEX"<img src='${MAC_}_${STATDATE}.png'><br>"
doneElőre is köszi a segítséget!
 - 
			
			
						F34R
nagyúr
Hi
megint egy lama kerdes tudok olyat csinalni hogy egy adott mappa almappainak nevet egy txt-be listazzam ki ?
 - 
			
			
 
Új hozzászólás Aktív témák
- Pánikban a világ a Radeon RX 5000 és 6000 sorozat támogatása miatt
 - Milyen asztali (teljes vagy fél-) gépet vegyek?
 - Asztrofotózás
 - VoIP - mélyvíz (Asterisk és társai)
 - Battlefield 6
 - Fejhallgató erősítő és DAC topik
 - Luck Dragon: Asszociációs játék. :)
 - NVIDIA® driverek topikja
 - alza vélemények - tapasztalatok
 - GL.iNet Flint 2 (GL-MT6000) router
 - További aktív témák...
 
- GYÖNYÖRŰ iPhone 13 128GB Starlight -1 ÉV GARANCIA - Kártyafüggetlen, MS3434
 - ÁRGARANCIA!Épített KomPhone Ryzen 7 9800X3D 64GB RAM RTX 5090 32GB GAMER PC termékbeszámítással
 - Telefon felváráslás!! iPhone 15/iPhone 15 Plus/iPhone 15 Pro/iPhone 15 Pro Max
 - BESZÁMÍTÁS! Asus H370 i7 8700K 16GB DDR4 512GB SSD RTX 2070 8GB RAMPAGE Shiva A-data 600W
 - Azonnali készpénzes nVidia RTX 3000 sorozat videokártya felvásárlás személyesen / csomagküldéssel
 
Állásajánlatok
Cég: NetGo.hu Kft.
Város: Gödöllő
Cég: Promenade Publishing House Kft.
Város: Budapest
								
							

								
							
 nem akartam már tovább terhelni a topikot.
							
								
								
							
								

							




 grep | grep | awk | sed![;]](http://cdn.rios.hu/dl/s/v1.gif)
								
							
								
							

