私は何をしようとしていることにある。読む文字列の中にファイルや期待にループを行うスクリプト
- は、同じディレクトリから
*.txt
ファイルから読み込まれ、すべてのコンテンツを解析します.exp
ファイルを作成しますテキストファイル内のexpectスクリプト内の文字列変数に変換します。 - 一連のホスト名を含む文字列をループし、文字列が列挙されるまで一連のコマンドを実行します。
だから、それらのそれぞれにどのようなスクリプトでは、同じディレクトリにあるtxt
ファイルからホスト名のシリーズを読み、[文字列にそれらを読んで、そして.exp
ファイルさはオートログとシリーズをexcecuteコマンドの。
私が書かれた次のコードを持っていますが、それは働いていない:
#!/usr/bin/expect
set timeout 20
set user test
set password test
set fp [open ./*.txt r]
set scp [read -nonewline $fp]
close $fp
spawn ssh [email protected]$host
expect "password"
send "$password\r"
expect "host1"
send "$scp\r"
expect "host1"
send "exit\r"
をすべてのヘルプは大歓迎です....
私は少し混乱しています。すべてのコマンドを一覧表示するファイルが1つあり、すべてのホストがリストされていますか?または、そのホスト上で実行するコマンドを保持するホストごとに1つのファイル(.txt拡張子を持つhostnameという名前)を持つディレクトリがありますか? –
こんにちは。私はループを作成しようとしています。 expスクリプトを実行したいすべてのサーバが入っているファイルhost.txtをまず読んでください。そして、host.txtのeofの間に、commands.txtファイルにあるコマンドをコピーして各ホストに貼り付けます。 – Tony
これは、このスクリプトのexpectコマンドが、$ host1->、$ host2-> etc ...のようないくつかの異なるホストを期待することを意味します。 – Tony