Portál AbcLinuxu, 4. listopadu 2025 15:53
#! /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.