問題タブ [expect]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
tcl - 期待スクリプトの「-re」フラグでタイムアウトが機能しない
Expect スクリプトを機能させようとしていますが、(正規表現の解析を呼び出すために) -re フラグを使用すると、「timeout」キーワードが機能しなくなったようです。次のスクリプトを実行すると、「ステップ 1 でタイムアウトしました」というメッセージが表示され、次に「ステップ 2 を開始しています」というメッセージが表示され、その後タイムアウトしますが、「ステップ 2 でタイムアウトになりました」というメッセージが表示されず、新しいプロンプトが表示されます。
アイデア?
authentication - 公開鍵認証やexpect(1)を使わずにSSHを自動化する
パスワードを ssh に自動的に渡す方法はありますか。何らかの方法で ssh に標準入力またはファイルからパスワードを読み取らせることにより、公開鍵認証を使用したり、スクリプトを期待したりせずに、サーバーに自動的に ssh したいと考えています。
そのようにしなければならない理由は、cron ジョブとして実行されている rsync/ssh を使用して、ファイルをサーバーにバックアップしたいからです。このサーバーは、認証後にホーム ディレクトリをマウントするため、ログインが成功するまで ~/.ssh を使用できないため、公開鍵認証を使用しても機能しません。cron ジョブとして実行したいので、expect(1) は問題外です。また、cron ジョブは端末で実行されないため、expect/ssh の組み合わせは機能しません。私はそのサーバーへのルート アクセス権を持っていないため、管理者にそこでの動作方法を変更してもらうのは困難です。
expect - 期待スクリプトの問題
非対話的な方法でパスワードを更新するスクリプトを作成しようとしています。ラップトップでは動作していますが、サーバーでは失敗します。どちらも Etch を使用して同じ構成を実行しています。
これはスクリプトです:
サーバーでは、出力は次のようになります。
カップルのexpect-sendが同期していないように見えるため、機能していません。
しかし、奇妙なことに、私のラップトップでは動作します:
サーバーで問題が発生する理由はありますか? ありがとう
expect - 自分のマシン (win xp) 上のプログラム内の別のマシンで実行する実行可能ファイルを呼び出すにはどうすればよいですか?
私の目的は、実行時に決定されたパラメーターを使用して別のコンピューター (すべて win xp を使用) で別の実行可能ファイルを呼び出し、さらにいくつかのコンピューターで繰り返し、結果を収集するプログラムを作成することです。要するに、私はグリッド コンピューティング プロジェクトに取り組んでいます。使用されているアルゴリズム自体はすでに FORTRAN でコーディングされていますが、一度に多くのコンピューターで実行する効率的な方法を探しています。
これを達成する 1 つの方法は、スクリプトを各コンピューターにアップロードし、各コンピューターでそのスクリプトを実行することです。すべて自動的に、自分のパラメーターに依存します。しかし、別のコンピューターにスクリプトを書き込み、アップロードし、実行するプログラムを作成するにはどうすればよいでしょうか?
GridGain を検討しましたが、アルゴリズムは既にコード化されており、別の言語であるため、除外されました。
このタスクを達成するための私の現在の推測では、Expect ( wiki/Expect ) を使用していますが、ツールについての知識はありません。
アドバイスをいただければ幸いです。
ssh - expect を使用してパスワードを ssh に渡す
期待してパスワードを ssh 接続に送信するにはどうすればよいですか。
パスワードが p@ssword で、ssh コマンドが ssh me@127.0.0.1 だとします。
それが言ったときにパスワードを入力させることを期待してどうしますか
me@127.0.0.1 のパスワード:
?
SSHキーペアを使用する適切なアクションはオプションではありません.ssh(scp)を使用してサーバーにキーを配置する必要があり、パスワードを要求するからです。
linux - プログラムが終了するまでExpectを取得する
Expect Linux ツールを使用しており、シェルとやり取りする必要があります。しかし、それは本当のやり取りではなく、何が起こっているのかを見たいだけです。相互作用するプログラムが終了した後、Expect を終了するにはどうすればよいですか?
ruby - Ruby - Expect と Pty の問題
サーバーに ssh 接続し、特定のコマンドを実行し、そこから出力を取得する Ruby スクリプトを作成しようとしています。これは私がこれまでに得たもので、主にプログラミングRubyの本から改作されています:
残念ながら、私が戻ってきたのはこれだけです:
私が何を間違っていたのか、これを軽減する方法はありますか?
scripting - spawn と exec の違いは何ですか?
私は TCL (expect) スクリプトの書き方を学んでいますが、一部の例では spawn の使用が示されているのに気づきましたが、他の例ではコマンド exec が示されています。ググってみましたが、違いがわかりませんか?
長い期待スクリプトの途中で「exec」を呼び出すとしたら、何が起こると予想できますか?
scripting - 特定の拡張子を持つすべてのファイルの名前を変更/移動する方法は?
私はtcl(expect)を学んでいますが、興味深い問題に遭遇しました。拡張子が .status の一連のファイルを移動/名前変更するコマンドが必要です。私はこれらを試しました:
もちろん、それはうまくいきませんでした。私は少しグーグルでグロブについて何かを見つけましたが、それは私が望むようには機能していないようです. 私が行った場合:
mvは、「1.status 2.status 3.status ... など」と不平を言います。は有効なファイルではありません。ファイルのリスト全体が個別に処理されるのではなく、単一の文字列に連結されているかのようです。
グーグル経由でより多くの情報を見つけようとすると、多くの壊れた古いリンクにたどり着くので、この問題を解決することに加えて、tcl/expect の基本と一般的な落とし穴に関する優れたオンライン リソースを教えていただけないでしょうか。
更新: /bin で標準の tcl および標準ツールを使用するソリューションのみが受け入れられます。
perl - Perl スクリプトでパスワードを暗号化または非表示にするにはどうすればよいですか?
私は、Expectを使用して telnet 経由でリモート マシンにログインする Perl スクリプトに取り組んでいます (聞かないでください。telnet を使用する必要があります)。また、必要に応じて p4 ログイン操作を実行し、expect を使用して正しいパスワードをパイプします。今のところ、平文の環境変数からパスワードを読み取るだけです。つまりexport PASSWORD=password
、これはセキュリティ上良くないことがわかっています。
複数のシステムに多くのパスワードを必要とするこのようなスクリプトのパスワードを保存する最良の方法は何ですか? どういうわけかテキストファイルで暗号化されていますか?または、他の何か?
たとえば、SSHなどを実際にインストールできないなど、既存のシステムを簡単に変更できないことに注意してください。