生成する変数を渡す

生成する変数を渡す

ファイル(servers_list)にリストされているサーバー名を別のスクリプト(user_create_script)のビルドコマンドに変数として渡したいと思います。このスクリプトの目的は、複数のサーバーにユーザー(david)を作成することです。

#cat servers_list
server1
server2
server3


#cat user_create_script
    spawn ssh -t user@$i sudo /usr/sbin/useradd david
    expect "password:"
    send "pass123\r"
    interact

ベストアンサー1

user_create_script は次のようになります。

#!/usr/bin/expect -f
set fh [open servers_list r]
while {[gets $fh server_name] != -1} {
    spawn ssh -t user@$server_name sudo /usr/sbin/useradd david
    expect "password:"
    send "pass123\r"
    expect eof
}
close $fh

リモートユーザーにsudoパスワードが必要ないとします。

チュートリアルを含むTcl(expectがビルドされている)に関する追加ドキュメントについては、以下を参照してください。https://tcl.tk/doc/

おすすめ記事