파일(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/