SSH自动登陆服务器--ARM linux

因为需要用到ssh自动登陆到远程服务器并执行相关命令,但是ssh不支持重定向和管道方式,所以只能使用expect,这里我使用的是ARM9的平台所以需要移植expect:

shell 脚本:

#!/usr/bin/expect 
#-------------------------------------------------- about us
# product: SSH autologin
# Author:horse
# Last Modified: 2017/3/3
# version:001
# user:this script to shutdown remote linux(unix) machine

set ipaddr [lindex $argv 0]
set loginuser [lindex $argv 1] 
set loginpass [lindex $argv 2] 
set command [lindex $argv 3] 

#set ipaddr 192.168.107.109
#set loginuser "root"
#set loginpass "12345678"

set timeout 300
set cmd_prompt "]#|~$]?"

puts "$ipaddr, $loginuser, $loginpass, $command"

#-------------------------------------------------- login by ssh 
spawn ssh $loginuser@$ipaddr
set timeout 2
expect {
-re "*yes/no*" {
send "yes\r"
}  "*password:*" {
send "${loginpass}\r"
} -re "Permission denied, please try again." {
exit
} -re "Connection refused" {
exit
} timeout {
exit
} eof {
exit
}
}


#---------------------------------------------------- now,we do some commands

expect "*$"
send "$command\r"

exec usleep 300

send  "exit\r"
exit

远程重启系统可以使用以下命令

./ssh.sh 192.168.107.109 root 12345678 reboot\&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

horsen_duan

你的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值