echo Something=Something > file
paramikoのexec_commandを使用して、、cat
およびgrep
を実行できls
ますが、ファイルを変更しようとすると何も実行されません。私はすでにsu
この前に走りました。ファイルは、コマンドを実行する前とまったく同じままです。
これは、exec_command呼び出しごとに新しいチャネルを開く必要があるためです。これは、特定のチャネルに関連付けられているため、suコマンドの認証を失います。
いくつかのオプションがあります。
オプション3では、状態情報をそのまま維持しながら、paramikoでsshをインタラクティブに使用できます。それがsuコマンドに必要なものです。また、シェル接続の周りにpexpectタイプのラッパーを作成し、stdoutパイプを監視して処理が完了したことを確認し、stdinを介して追加のコマンドを送信することもできます。データを読み取るまで、パイプがいっぱいになってブロックされていることに注意してください。