タグ付けされた質問 「expect」

10
sshサーバーにログインするためのシェルスクリプト
スクリプトに記載されているパスワードを使用してsshサーバーに自動ログインできるシェルスクリプトを作成してみました。私は次のコードを書きました: set timeout 30 /usr/bin/ssh -p 8484 root@172.31.72.103 expect { "root@172.31.72.103's password" { send "password\r" } } このコードは適切に実行されていませんが、それでもパスワードを要求しています。誰かがこれを解決するのを助けてくれますか
29 ssh  password  expect 

3
産卵 - コマンドが見つかりません!
Mac OS X 10.9.4を使用しています。ローカルマシンから別のホストにファイルをコピーするスクリプトは次のとおりです。 #!/bin/bash #!/usr/bin/expect echo "I will fail if you give junk values!!" echo " " echo "Enter file name: " read filePath echo " " echo "Where you want to copy?" echo "Enter" echo "1. if Host1" echo "2. if Host2" echo "3. if Host3" read choice …

3
bashスクリプトエラーstty:標準入力:デバイスの不適切なioctl
パスワードが何度も必要なインストールとセットアップを自動化するために、bashスクリプトでヒアドキュメントを使用しています。パスワードを1回入力すると、スクリプトはそれをさまざまなコマンドに渡します。ほとんどの場合、ヒアドキュメントアプローチがこの罰金を処理します。ただし、ある場合にはこのエラーが発生します。 Enter VNC password: stty: standard input: Inappropriate ioctl for device Verify password: stty: standard input: Inappropriate ioctl for device このエラーメッセージはx11vnc -storepassword(ではなく)からのものであることに注意してくださいsudo。 私の問題は関連してx11vnc -storepasswdおり、ここに私のコードがあります: sudo x11vnc -storepasswd ~/.vnc/passwd << ENDDOC password password y ENDDOC それは明らかに(エラーから)動作しません。sudo x11vnc -storepasswd ~/.vnc/passwdスクリプトに実装する方法の実用例に感謝します。 役立つ場合、プロンプトは次のようになります。 VNCパスワードの入力:パスワードの 確認: /home/user/.vnc/passwdにパスワードを書き込みますか?[y] / nn 使用expectする方が良い解決策でしょうか?もしそうなら、この場合どのように使用しますか?(これまで使用expectしたことはありませんが、この質問を投稿してから多くの例を見てきましたexpect。自分で作業することはできません。)

4
あまりにも多くのバックグラウンドジョブを開始するとどうなりますか?
Expectスクリプトを使用して、700個のネットワークデバイスで作業を行う必要があります。順番に実行できますが、これまでの実行時間は約24時間です。これは主に、接続の確立にかかる時間と、これらのデバイス(古いデバイス)からの出力の遅延が原因です。2つの接続を確立し、それらを正常に並列に実行することはできますが、どこまでプッシュできますか? 700個すべてを一度に実行できるとは思いませんが、noにはある程度の制限があります。VMが管理できるTelnet接続の数。 このようなループで700個を開始しようとした場合: for node in `ls ~/sagLogs/`; do foo & done と CPU 12 CPU x Intel(R)Xeon(R)CPU E5649 @ 2.53GHz メモリ47.94 GB 私の質問は: 700のインスタンスすべてをおそらく同時に実行できますか? サーバーが制限に達するまで、どこまで到達できますか? その制限に達すると、次の反復の開始を待つだけfooですか、それともボックスがクラッシュしますか? 残念ながら企業の実稼働環境で実行しているので、何が起こるかを正確に試すことはできません。

1
いくつかの疑似TTYを割り当てて、インタラクティブな方法でDockerfileからDockerコンテナーを構築できますか?
私はDockerfileの下からコンテナを構築します: FROM ubuntu:14.04 ... RUN apt-get update && apt-get install -y vim #RUN ssh-keygen -f /root/.ssh/id_rsa -N strongpass123$%^ RUN ssh-keygen -f /root/.ssh/id_rsa ... 私はめったにそれをしませんが、それの使用の前後に多くのコマンドがありssh-keygenます。 スクリプトからdocker exec -it thirsty_darwin sh script.sh画像にタグを付けて、画像にタグを付け、コンテナー(画像)のチェーンを使用できることはわかっていますが、私が望むほど明確な解決策ではありません。 最悪の場合でも、ssh-add ~/.ssh/id_rsaexpectツールを使用する必要がある場合です。期待ツールが私のパスワードをハードコード化した。私はそれをしたくありません。

1
同じスクリプトでbashと期待しますか?
.csvファイルからIPアドレスを取得し、デバイスにtelnetして「show version」コマンドの出力をキャッチするスクリプトをコーディングしようとしています。 これまでのところ私はこれをコーディングしました: #!/bin/bash #!/usr/bin/expect -f FILE1=dispositivos.csv #file with IP's and device name set Username "user" #this is the user for telnet connection. set Password "this.is.the.pass" #pass for telnet connection. NUMERODISP="$(wc -l $FILE1 | awk '{print $1}')" #this command counts number of devices (IP's) in the file as it is …

2
予期しないログから印刷できない文字を削除しますか?
ファイルから次の文字シーケンスを削除するにはどうすればよいですか?^[[64;8H、^[[?25h、^[[1;64rなどまたは最初の場所でそれらを追加する期待を避けますか? バックグラウンド: 特定のタスクにexpectスクリプトのコレクションを使用しています。 私が収集している出力ファイルには、上記のタイプの文字が含まれていることがよくあります(emacs / vi / cat -vで表示されます)。以下のようなtrコマンドをいくつか試しましたが、[64; 8Hなどが表示されるだけです。 tr -dc '[:print:]\n' < input 編集: 問題のある行での上記の結果 [1;64r[64;1H[64;1H[2K[64;1H[?25h[64;1H[64;.....
8 bash  expect  tr 

1
GNUスクリーンでLinuxシリアルポートログインを自動化するために、対話型シェルの前にキーストロークを送信する方法は?
シリアルポート経由で既知の固定ユーザー名とパスワードを使用して、Linux開発ボードにログインする必要がよくあります。 通常のコマンドは次のとおりです。 screen /dev/ttyS0 115200 そしてscreen、セッション内は次のようになります。 <enter> somehost login: root<enter> Password: root<enter> user@host# このログイン手順を自動化して、毎回ユーザー名とパスワードを入力する必要がないようにする方法は? expect必要に応じて使用することもできます。私はもう試した: expect -c "spawn screen /dev/ttyS${1:-0} ${2:-115200}; send "\r"; expect \"* login: \"; send \"root\"; expect \"Password: \"; send \"root\"; interact" しかし、私のexpectスキルはそれを完全にはカットせず、これはハングします。 また、ロゴを作成してすぐにログインすると、2回目はパスワードを要求せず、プロンプトに直接移動します。 user@host# そのため、スクリプトでもそれを考慮する必要があります。参照:https : //stackoverflow.com/questions/9464887/modify-expect-based-ssh-script-to-work-on-machines-that-dont-require-a-password SSHに関する同様の質問:https : //stackoverflow.com/questions/459182/using-expect-to-pass-a-password-to-ssh

1
CronからBashスクリプト、Bashスクリプト、Expectスクリプト
一連のExpectスクリプトを実行したい。実行のチェーンは次のようになります。Cronジョブはbashスクリプトを開始し、このラッパーは〜11個のbashスクリプトを開始Parallelします-それぞれがスクリプトを呼び出しExpectます。 そのExpect部分まではすべて順調です。2番目のBashスクリプトにParallel部分があり、各期待スクリプトのホスト名をファイルに出力しています。実際、doはグループで表示されますが、Expectスクリプトはすぐに終了します。 Cronジョブの性質上、環境変数をジョブに渡す必要があると聞きました。私はこれまでこれを試しました: 48 9 * * * rm /home/admin/.flag && /home/admin/.profile; /home/admin/nodeTest.sh nodeTestの重要なコードは次のとおりです。 for i in {1..10}; do for chunk in `ls /home/admin/assets/sagLogs/x*`; do cat $chunk | parallel -j 11 -I% --max-args 1 /home/abdmin/oneNode.sh "%" clear done done チャンクの長さは11ホスト名です。それらはoneNodeを介してExpectスクリプトを開始するために並列プログラムに入ります-oneNodeはホスト名をIPに変換し、実行するスクリプトを決定します。 これはコマンドラインからうまく機能します。悲しみを与えてくれるだけのCronの仕事。interacttclコマンドが問題を引き起こすことを読みましたが、スクリプトでは使用していません。これは並行して実行される行です: timeout 80 sudo expect /home/admin/assets/activeTest $sag $ip & 更新:前の行を次のように変更しました: …
bash  cron  expect 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.