ファイアウォールから接続テーブルをプルしたい。場合によっては、20 万行を超えることもあります。
「TCP 外部 46.33.77.20:53415 内部 10.16.25.63:80、アイドル 0:00:04、バイト 3230、フラグ UIOB」
など。
これらのテーブルを取得するために、pexpect と telnetlib の両方を実装しようとしました。残念ながら、40k を超えると、タイムアウトおよび/または停止の両方が発生します。
pexpect の実装:
connect.send("sho conn\n")
connect.expect("<--- More --->", timeout=360)
tmp_txt = connect.before
telnetlib の実装:
telnet.write("sho conn\n")
tmp_text = telnet.read_until("<--- More --->")
この情報を取得するためのより堅牢な方法はありますか? ページャーの値を使用して、一度に指定される行数を制御します (これを実行する前に)。また、ファイアウォールのCPUを監視しているので、接続が表示されていることがわかります。数が多すぎるか、pexpect または telnetlib が追いつくには速すぎます。
ありがとう。