2017-03-13 15 views
1

私はmininetを初めて使用しています。私は "ノード"、 "ダンプ"のようなpythonスクリプトから実行するmininetコマンドを実行したい。私はトポロジーを作成することはできますが、スクリプトを通してこれらのコマンドを使用することはできません。私はUbuntu 14.04を使用しています。外部からpythonスクリプトを使用してmininetプロンプト内のコマンドを実行する方法

import subprocess as sb 
import os 
print "Single Switch and 4 Hosts per switch topology" 
print "Creation of topology" 
os.system(" sudo mn --topo = single,4",shell=True) 
os.system("nodes") 

エラー:

sh: 1: nodes: not found 
32512 

私は私だけmininetコマンドを使用したい、Pythonスクリプトを通じてトポロジを作成する必要はありません。

+0

mininetはpythonic APIを持っています。あなたがbashを使ってそれを呼び出す理由はありますか? – nir0s

答えて

1

問題は、mininetが対話型CLIであることです。インタラクティブなCLIがブロックしているので、単にそれを呼び出して別のコマンドを渡すことはできません。

これを解決する方法があります。ここをクリックして:Wrapping an interactive CLI in python

とチェックすると、より快適に対話型CLIと対話できます。

2

nirOsが示唆しているように、Mininet Pythonライブラリを使用する必要があります。トポロジを作成する方法については、https://github.com/mininet/mininet/wiki/Introduction-to-Mininetを読んでください。 作成した後は、hostObject.cmdを使用できます(「あなたのコマンドはここにあります」)。 mininetの各ホストは独自の名前空間で作成されます。この "cmd"は、ホストの名前空間で指定されたコマンドを実行します。 例: host1.cmd( "ifconfig")#このホストのIP情報を返します。

0

嬉しい私はこの質問を見つけました。私は非常に似た性質の副題を持っています。 Pythonからmininet CLIにコマンドを実行することができます。 h1.cmd('ifconfig')がありますが、同じことをPythonからmininet>プロンプトにする方法はありますか?すなわち、それをトポロジ内の特定のホストに向けない(いくつかのホストが切断されるように障害をシミュレートしている)。 net.cmd('python module.py')のようなもの? @Abhimanyu singh @ nir0s

+0

私はこれを新しい質問として尋ねることをお勧めします。あなたがしたいことの具体的な例を挙げてください。 –

関連する問題