使用sshpass软件可以解决登录时不能输入密码的问题,但是却无法达到继续自动执行其他shell命令:
最后找到expect这个使用方便的东西。
具体列上自己使用的实例:
#!/usr/bin/expect -f
set ip 135.33.16.163
set password admin
set timeout 10
spawn ssh mytest1@$ip
expect {
"*yes/no" { send "yes\r"; exp_continue}
"*password:" { send "$password\r" }
}
expect {
"*mytest1*"
{
send "pwd\r";
send "cd /data/bin \r";
send "exit\r";
}
}
expect eof
set ip2 135.33.16.164
set password2 admin
set timeout2 10
spawn ssh mytest1@$ip2
expect {
"*yes/no" { send "yes\r"; exp_continue}
"*password:" { send "$password2\r" }
}
expect {
"*mytest2*"
{
send "pwd\r";
send "cd /data/bin\r";
send "exit\r";
}
}
expect eof
system /home/isap/subUpdate.sh