Portál AbcLinuxu, 13. května 2025 23:14
#! /bin/bash InetDev="eth0" LocalDev="eth1" RATEa=2500 RATEb=250 tc qdisc del dev $LocalDev root tc qdisc add dev $LocalDev root handle 1:0 htb tc class add dev $LocalDev parent 1:0 classid 1:1 htb rate ${RATEa}kbit tc class add dev $LocalDev parent 1:1 classid 1:11 htb rate ${RATEb}kbit ceil ${RATEa}kbit tc class add dev $LocalDev parent 1:1 classid 1:12 htb rate ${RATEb}kbit ceil ${RATEa}kbit . . tc qdisc add dev $LocalDev parent 1:11 handle 11:0 sfq perturb 10 tc qdisc add dev $LocalDev parent 1:12 handle 12:0 sfq perturb 10 . . iptables -t mangle -F FORWARD iptables -t mangle -A FORWARD -i $InetDev -d 192.168.2.2 -j MARK --set-mark 1 iptables -t mangle -A FORWARD -i $InetDev -d 192.168.2.3 -j MARK --set-mark 2 . . tc filter add dev $LocalDev parent 1:0 protocol ip handle 1 fw flowid 1:11 tc filter add dev $LocalDev parent 1:0 protocol ip handle 2 fw flowid 1:12 . .pomocí skriptu:
#! /bin/bash iptables -L FORWARD -t mangle -n -v -x | while read radek; do echo $radek >> /etc/network/pocitadlo2.txt donea dostanu tento výsledek:
Chain FORWARD (policy ACCEPT 10014869 packets, 6361905832 bytes) pkts bytes target prot opt in out source destination 73611 69782794 MARK all -- eth0 1 20072 a cbq-3501.internet.ssh cbq-4001.internet.marapo error.log install.sh interfac interfaces.old pocitadlo.txt roura swap.sh 0.0.0.0/0 192.168.2.2 MARK set 0x1 0 0 MARK all -- eth0 1 20072 a cbq-3501.internet.ssh cbq-4001.internet.marapo error.log install.sh interfac interfaces.old pocitadlo.txt roura swap.sh 0.0.0.0/0 192.168.2.3 MARK set 0x2 0 0 MARK all -- eth0 1 20072 a cbq-3501.internet.ssh cbq-4001.internet.marapo error.log install.sh interfac interfaces.old pocitadlo.txt roura swap.sh 0.0.0.0/0 192.168.2.4 MARK set 0x3což je mi kničemu, pokud ale použiju při čtení jen:
iptables -L FORWARD -t mangle -v -x |obdržím toco potřebuju kromě ip adres, ty bych raději v číselné podobě:
Chain FORWARD (policy ACCEPT 10024890 packets, 6366661171 bytes) pkts bytes target prot opt in out source destination 74534 70105462 MARK all -- eth0 any anywhere komp1 MARK set 0x1 0 0 MARK all -- eth0 any anywhere komp2 MARK set 0x2 0 0 MARK all -- eth0 any anywhere komp3 MARK set 0x3Jak je možné že na sebe roura při číselném výstupu nabalý další text? A hlavně jak dosáhnout kýženého výsledku. Pokud mi poradíte jak pro každý řádek získam zvlášť proměnnou s objemem dat a ip adresu budu plně spokojen, díky za odpověd.
echo $radek >> /etc/network/pocitadlo2.txt(keď sa vypisuje riadok získaný aj s -n tak môže obsahovať aj znak "*" a ten sa pri výpise expanduje na zoznam súborov). Treba použiť
echo "$radek" >> /etc/network/pocitadlo2.txtalebo dať na začiatok skriptu
set -f(podla toho preferovaného výstupu [tento druhý spôsob totiž vymaže viacnásobné medzery])
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.