생성할 변수 전달

생성할 변수 전달

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

관련 정보