回答編集履歴

3

paramiko を pexpectに変更

2023/03/30 07:39

投稿

TakaiY
TakaiY

スコア12765

test CHANGED
@@ -6,5 +6,5 @@
6
6
  また、出力を得るために、stdout.read()を実行すると、コマンドの出力結果を待つことでコマンドが実行されるようになるということです。
7
7
 
8
8
  ---
9
- ちなみに、paramikoはかなり低レベルのAPIでできているので、手動の作業の自動化が目的であれば、もう少し高レベルの paramikoを使ったり、ルータなどのみが対象であればnetmikoあたりを検討するのもいいと思います。
9
+ ちなみに、paramikoはかなり低レベルのAPIでできているので、手動の作業の自動化が目的であれば、もう少し高レベルの pexpectを使ったり、ルータなどのみが対象であればnetmikoあたりを検討するのもいいと思います。
10
10
  また、pythonプログラムでの制御が目的ということでなければ、ansibleを使うというのもありでしょう。

2

追記

2023/03/30 05:55

投稿

TakaiY
TakaiY

スコア12765

test CHANGED
@@ -4,3 +4,7 @@
4
4
  対話型で実行している場合、メソッド実行後にもインタープリタは生きているので、セッションは切れません。
5
5
 
6
6
  また、出力を得るために、stdout.read()を実行すると、コマンドの出力結果を待つことでコマンドが実行されるようになるということです。
7
+
8
+ ---
9
+ ちなみに、paramikoはかなり低レベルのAPIでできているので、手動の作業の自動化が目的であれば、もう少し高レベルの paramikoを使ったり、ルータなどのみが対象であればnetmikoあたりを検討するのもいいと思います。
10
+ また、pythonプログラムでの制御が目的ということでなければ、ansibleを使うというのもありでしょう。

1

修正

2023/03/30 05:50

投稿

TakaiY
TakaiY

スコア12765

test CHANGED
@@ -1,7 +1,6 @@
1
1
  exec_command()メソッドは、コマンドの実行を開始した直後に=終了を待たずに返ります。
2
- もし、プログラムがそこで終了してしまっていると、即座にセッションが切れてしまうので、開始されたコマンドが強制的に終了してしまのです。
2
+ もし、プログラムがそこで終了してしまっていると、即座にセッションが切れてしまうので、開始されたコマンドが強制的に終了してしまのです。
3
3
 
4
- 対話型で実行している場合、インタープリタはきているので、セッションは切れません。
4
+ 対話型で実行している場合、メソッド実行後にもインタープリタはきているので、セッションは切れません。
5
5
 
6
- また、出力を得るために、stdout.read()を実行すると、コマンドの出力結果を待つことになるのコマンドが実行
6
+ また、出力を得るために、stdout.read()を実行すると、コマンドの出力結果を待つことでコマンドが実行されるようになるということです。
7
- されるということです。