Tôi đã cố gắng để tạo ra một hy vọng kịch bản để tự động đăng nhập vào thiết bị của mình thông qua telnetmong đợi kịch bản để tự động hóa telnet đăng nhập
Nếu không có nhiều khả năng các mong đợi lệnh, kịch bản hoạt động tốt, các bản ghi vào thiết bị.
#!/usr/bin/expect
set timeout 20
set ip [lindex $argv 0]
set port [lindex $argv 1]
set user [lindex $argv 2]
set password [lindex $argv 3]
spawn telnet $ip $port
expect "'^]'." sleep .1;
send "\r";
sleep .1;
expect "login:"
send "$user\r"
expect "Password:"
send "$password\r";
interact
Kịch bản trên hoạt động tốt và đăng nhập thành công khi tôi chuyển đúng thông số. Nhưng khi tôi thêm các nhánh bổ sung (để xử lý lỗi) vào lệnh mong đợi, tập lệnh sẽ bị kẹt tại dấu nhắc login:
.Sau một thời gian, nó in Script Error Bất kỳ trợ giúp nào ?? Kịch bản sai lầm bên dưới.
#!/usr/bin/expect
set timeout 20
set ip [lindex $argv 0]
set port [lindex $argv 1]
set user [lindex $argv 2]
set password [lindex $argv 3]
spawn telnet $ip $port
expect "'^]'."
sleep .1;
send "\r";
expect
{
"login:"
{
send "$user\r"
expect "Password:"
send "$password\r";
interact
}
"host: Connection refused"
{
send_user "ERROR:EXITING!"
exit
}
}
PS: Tập lệnh này sẽ được phát triển thêm để chờ thêm lời nhắc tải hình ảnh xây dựng khác nhau trên thiết bị. Chỉ kết nối telnet (console) mới hoạt động. vì vậy ssh không phải là một lựa chọn.
Chăm sóc để chia sẻ cách bạn thực hiện chuyển các lệnh bổ sung sau khi đăng nhập? Tôi không thể vượt qua rào cản đó: http://stackoverflow.com/questions/11148832/shell-script-successful-telnet-login-how-to-issue-commands-after-that – TryTryAgain
nếu bạn đang nói về thực hiện các lệnh bổ sung trong trình bao tự động thông qua tập lệnh. bạn có nghĩa vụ phải sử dụng lệnh gửi. tương tác chuyền bóng cho người dùng. Từ câu hỏi u được đăng, tôi thấy rằng bạn đã có câu trả lời. :) mong đợi cho chiến thắng .. – woodstok