ar7.cfg patchen

Jogi76

Neuer User
Mitglied seit
27 Mrz 2006
Beiträge
33
Punkte für Reaktionen
0
Punkte
0
Hallo zusammen,

ich suche eine Möglichkeit die Datei ar7.cfg zu patchen um die Änderungen die jetzt 1mal gemacht habe nicht jedesmal von Hand einpflegen zu müssen. (zb. FB vom Kumpel ...). Bei den Änderungen geht es im Prinzip nur um Port Einstellungen für SSH, SIP, IAX2 und RTP.

Meine erste Idee war es per "diff" Befehl auf einer anderen Linux Kiste einen ar7.patch zu erstellen um damit dann die ar7.cfg auf der FB zu patchen. Dummerweise kennt meine FB 7170 (29.04.29) keinen patch Befehl.

Dann bin ich über den Befehl "ar7cfgctl" gestolpert, der laut Usage Daten in der ar7.cfg lesen und schreiben kann. siehe Ar7cfgctl

Leider klappt das auslesen der forwardrules nicht und das schreiben erst recht nicht.

Code:
# echo ar7cfg.dslifaces.dsldpconfig.forwardrules | ar7cfgctl
load: ok

# echo ar7cfg.dslifaces.dsldpconfig.shaper | ar7cfgctl
load: ok
"globalshaper"

Hat jemand von euch evtl. eine Idee wie man das am geschicktesten realisieren könnte? :noidea:

Gruss Jogi
 
Vielleicht geht das, was du vorhast mit sed, ist aber teilweise ganz schön "kryptisch" :rolleyes:
 
"kryptisch" ist da allerdings der richtige Ausdruck :D

Über sed hab ich auch schon nachgedacht, ich werd aber net wirklich schlau aus der Syntax (RegEx).

Ich denk ich werd mal versuchen die patch Sourcen zu kompelieren.

Falls jemand sed Technisch, mehr dazu sagen kann - immer raus damit ;)

Gruss Jogi
 
Reicht dir "ersetzen von Zeichen" dafür nicht ? Brauchst du RegEx ?
z.B.: sed "s/b/xxx/g" => ersetzt Buchstabe b durch die Zeichen "xxx" ...
 
Danke, das werd ich morgen gleich mal ausprobieren ... :lamer:

Gruss Jogi

______________________
EDIT: Registriert seit: 27.03.200x - hehe, was ein Zufall
 
Zuletzt bearbeitet:
Jogi76 schrieb:
EDIT: Registriert seit: 27.03.200x - hehe, was ein Zufall
stimmt! Hätte ich ja eigentlich erst in 19 Tagen antworten dürfen ... :lol:
 
Wenn Du z.B. aus der ar7.cfg den Abschnitt webui im Klartext haben willst kannst Du folgendes schreiben:

allcfgconv -C ar7 -c -o - |
sed -ne '/^webui[[:space:]]*{/,/^}/{
/=/{s/[[:space:]]*=[[:space:]]*/=/;s/^[[:space:]]*//;p}
}'

Der Weg wäre wohl auslesen in eine Datei | Ändern des Wertes mit sed und dann wieder zurückschreiben. Danach den Befehl ar7cfgchanged absetzen...
 
Zuletzt bearbeitet:
okay, sed war ne gute Idee, ich hoffe nur das die Zeilenumbrüche in der ar7.cfg nur der lesbarkeit dienen. Meine Port Forwardings stehn jetzt nämlich in einer Zeile. Und so hab ichs jetzt erstmal gemacht:

Code:
cat /var/flash/ar7.cfg > /var/tmp/ar7.cfg

sed 's/forwardrules = \"udp 0.0.0.0:5060 0.0.0.0:5060\",/forwardrules = \"udp 0.0.0.0:5060 0.0.0.0:5060\",\"udp 0.0.0.0:5061 0.0.0.0:5061\",\"udp 0.0.0.0:4569 0.0.0.0:4569\",\"udp 0.0.0.0:10002 0.0.0.0:10002\",\"udp 0.0.0.0:10003 0.0.0.0:10003\",\"udp 0.0.0.0:10004 0.0.0.0:10004\",\"udp 0.0.0.0:10005 0.0.0.0:10005\",\"udp 0.0.0.0:10006 0.0.0.0:10006\",\"udp 0.0.0.0:10007 0.0.0.0:10007\",\"udp 0.0.0.0:10008 0.0.0.0:10008\",\"udp 0.0.0.0:10009 0.0.0.0:10009\",\"udp 0.0.0.0:10010 0.0.0.0:10010\",\"udp 0.0.0.0:10011 0.0.0.0:10011\",\"udp 0.0.0.0:10012 0.0.0.0:10012\",\"udp 0.0.0.0:10013 0.0.0.0:10013\",\"udp 0.0.0.0:10014 0.0.0.0:10014\",\"udp 0.0.0.0:10015 0.0.0.0:10015\",\"udp 0.0.0.0:10016 0.0.0.0:10016\",\"udp 0.0.0.0:10017 0.0.0.0:10017\",\"udp 0.0.0.0:10018 0.0.0.0:10018\",\"udp 0.0.0.0:10019 0.0.0.0:10019\",\"udp 0.0.0.0:10020 0.0.0.0:10020\",\"udp 0.0.0.0:10021 0.0.0.0:10021\",\"udp 0.0.0.0:10022 0.0.0.0:10022\",\"tcp 0.0.0.0:22 0.0.0.0:22\",/g' /var/tmp/ar7.cfg > /var/tmp/ar7.cfg.new

mv /var/tmp/ar7.cfg.new /var/tmp/ar7.cfg

sed 's/\"permit udp any eq 5060 any\",/\"permit udp any eq 5060 any\",\"permit udp any eq 5061 any\",\"permit tcp any eq 21 any\",\"permit udp any eq 4569 any\",\"permit udp any range 10002 10022 any\",/g' /var/tmp/ar7.cfg > /var/tmp/ar7.cfg.new

cat /var/tmp/ar7.cfg.new > /var/flash/ar7.cfg

Ergebniss:

Code:
...

forwardrules = "udp 0.0.0.0:5060 0.0.0.0:5060","udp 0.0.0.0:5061 0.0.0.0:5061","udp 0.0.0.0:4569 0.0.0.0:4569","udp 0.0.0.0:10002 0.0.0.0:10002","udp 0.0.0.0:10003 0.0.0.0:10003","udp 0.0.0.0:10004 0.0.0.0:10004","udp 0.0.0.0:10005 0.0.0.0:10005","udp 0.0.0.0:10006 0.0.0.0:10006","udp 0.0.0.0:10007 0.0.0.0:10007","udp 0.0.0.0:10008 0.0.0.0:10008","udp 0.0.0.0:10009 0.0.0.0:10009","udp 0.0.0.0:10010 0.0.0.0:10010","udp 0.0.0.0:10011 0.0.0.0:10011","udp 0.0.0.0:10012 0.0.0.0:10012","udp 0.0.0.0:10013 0.0.0.0:10013","udp 0.0.0.0:10014 0.0.0.0:10014","udp 0.0.0.0:10015 0.0.0.0:10015","udp 0.0.0.0:10016 0.0.0.0:10016","udp 0.0.0.0:10017 0.0.0.0:10017","udp 0.0.0.0:10018 0.0.0.0:10018","udp 0.0.0.0:10019 0.0.0.0:10019","udp 0.0.0.0:10020 0.0.0.0:10020","udp 0.0.0.0:10021 0.0.0.0:10021","udp 0.0.0.0:10022 0.0.0.0:10022","tcp 0.0.0.0:22 0.0.0.0:22", 
                                       "udp 0.0.0.0:7078 0.0.0.0:7078", 
                                       "udp 0.0.0.0:7079 0.0.0.0:7079", 
                                       "udp 0.0.0.0:7080 0.0.0.0:7080", 
                                       "udp 0.0.0.0:7081 0.0.0.0:7081", 
                                       "udp 0.0.0.0:7082 0.0.0.0:7082", 
                                       "udp 0.0.0.0:7083 0.0.0.0:7083", 

...


Vielen Dank für eure Hilfe.

Gruss Jogi
 
Zuletzt bearbeitet:
Kostenlos!

Statistik des Forums

Themen
248,112
Beiträge
2,281,653
Mitglieder
377,327
Neuestes Mitglied
Aasss