2017-03-15 2 views
0

Ich möchte eine Reihe von verketteten Bash-Befehle in einem Netzwerk-Namespace in einem einzigen Schritt ausführen, aber es scheint, dass ip netns exec mynetns nur einen Bash-Befehl als Argument dauert. Zum Beispiel:Mehrere Befehle im Netzwerk-Namespace ausführen

ip netns exec mynetns ip a 

... funktioniert wie erwartet.

ip netns exec mynetns "ip a ; ip a" 

... gibt exec of "ip a" failed: No such file or directory zurück. Offensichtlich

,

ip netns exec mynetns ip a ; ip a 

... werden die Schnittstellen im Netzwerk-Namespace zurückkehren und auf dem Hostcomputer.

Gibt es eine Möglichkeit, damit es funktioniert?

Die manual nur Gespräche über einen Befehl, der nicht ein sehr gutes Zeichen ist ...

Antwort

2

netns exec einen Befehl ausgeführt wird, nicht ein Bash-Befehl: es führt einen Prozess mit Argumenten selbst.

Das ist OK, es bedeutet nur, dass Sie den Befehl explizit bash machen müssen. Dies sollte funktionieren:

ip netns exec mynetns bash -c "ip a ; ip a" 
Verwandte Themen