Portál AbcLinuxu, 13. května 2025 18:28
#!/bin/bash set $(netstat | grep -m 14 tcp | awk '{print $4, $5}' | cut -f 2 -d: | cut -f 2 -d' ') while : do echo "$(tcpdump -i ra0 |grep $1)" shift || break done exit 0takze pomoci set predam vysledky dotazu v zavorkach. TO mi vrati aktualni seznam navazanych spojeni na protokolu TCP... problem je v tom, ze nazvy jsou zkracene, takze v pripade delsiho domenoveho nazvu vlastne neni videt, s kym je spojeni navazano. Proto chci ony neuplne nazvy pouzit v dotazu "tcpdump -i ra0" kde pomoci grep a predane promenne ze set, ziskam uplne domenove nazvy z prave aktivnich spojeni. Kdyz jsem zkousel toto ( viz nize ), promenne predane ze set se zobrazily, ale uvnitr cyklu uz nejsem schopen ony predane promenne pouzit v dalsim dotazu. Rekl bych, ze podobne pripady jsou caste a s nakopnutim/vysvetlenim uz urcite pochopim, jak podobne pripady resit.
#!/bin/bash set $(netstat | grep -m 14 tcp | awk '{print $4, $5}' | cut -f 2 -d: | cut -f 2 -d' ') while : do echo $1 shift || break done exit 0Tohle mi pri volani echo $1 zobrazi vypisy z retezce netstat...takze snad jsem na spravne ceste, ale promennou uz v dalsim dotazu ( v prikazu tcpdump.. )opravdu pozit nemohu. Dekuji moc za pomoc a nakopnuti - polopate prosim. P.
for
for foo in $(kolona); do nejaky kod vyuzivajici $foo doneMísto
netstat | grep -m 14 tcp
můžeš použít netstat -t
.
A nakonec zkus napsat netstat -tW
, příště doporučuji man netstat
.
echo "$(tcpdump -i ra0 |grep $1 | head -1)"aby mi to vratilo jen jednu hodnotu. Idealni zpusob a plne dostacujici je pro me netstat -n... ip adresy uz myslim netreba dale prekladat na domenove nazvy za pomoci nslookup - usetrim tim systemove prostredky. Slo mi o to, ze neuplny domenovy nazev jak jsem to resil ja predtim, mi samozrejme byl na nic. Hlavne, ze uz taky vim, jak na vyuziti tech promennych dale ve skriptech ( pomoci for ). Vsem moc dekuji a preji pekny den!
set $(prikaz)
while shift
do
prikaz $1
done
je korketni - jen bych ten shift přesunul hned za while. Když už není kam posouvat vrátí false a smyčka skončí, tak proč to dělat přes break. Funguje to podobně dost podobně jako ten for.netstat -tW
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.