scp
파일을 다른 서버에 백업하는 명령을 입력하는 스크립트가 있습니다 . 그런데 실행하면 비밀번호를 물어보더라구요. 이것을 자동화할 수 있는 방법이 있나요? CentOS 5.6을 사용하고 있습니다. 나는 가이드를 거의 본 적이 없으며 spawn
내가 그것을 사용할 때 명령을 사용하고 이라고 말합니다 -bash: spawn: command not found
.
#!/usr/bin/expect -f
# connect via scp
spawn scp "[email protected]:/home/santhosh/file.dmp" /u01/dumps/file.dmp
#######################
expect {
-re ".*es.*o.*" {
exp_send "yes\r"
exp_continue
}
-re ".*sword.*" {
exp_send "PASSWORD\r"
}
}
interact
답변1
키 기반 인증과 빈 비밀번호를 사용하세요. 비밀번호를 묻지 않습니다.
따르다이것들속도.
답변2
"Expect"가 설치되어 있는지 확인하세요. "yum"을 사용하는 Linux 배포판에서는 루트로 실행합니다. # yum install expect
그런 다음 다음을 입력하여 스크립트의 예상 경로가 올바른지 확인합니다. $ which expect
/usr/bin/expect 반환된 경로는 스크립트 시작 부분에 배치됩니다. # !/usr /bin/기대 -f
답변3
스폰이 제대로 작동하지 않으면 의도한 설치를 확인해야 합니다. 비밀번호 전송은 다음과 같이 자동화될 수 있습니다.
spawn scp "[email protected]:/home/santhosh/file.dmp" /u01/dumps/file.dmp
expect {
"assword:" {
send "MyPassword\r"
# you can send remote commands here..
}
"yes/no)?" {
send "yes\r"
sleep 2
exp_continue
}
timeout {
puts "\nError: timed out.\n"
exit
}
}