linux中使用expect完成自动登录

发布时间:2020-05-19编辑:脚本学堂
需要把远程服务器上的文件,拷贝到本地,可是scp的时候必须输入密码,用here文档又不能实现。
expect可以实现自动登录,可以借助expect在ssh,ftp,scp等地方实现自动登录,

需要把远程服务器上的文件,拷贝到本地,可是scp的时候必须输入密码,用here文档又不能实现。
expect可以实现自动登录,可以借助expect在ssh,ftp,scp等地方实现自动登录,加入到脚本中,自动完成一些工作。

下面是我的测试通过的脚本,供大家学习参考吧。
 

复制代码 代码如下:

#!/bin/bash
for i in a b c
do
/usr/bin/expect<<EOF
set timeout 1200;
spawn /usr/bin/scp root@192.168.0.26:/home/sunss/backup/$i/* /root/sss/$i/

expect "root@192.168.0.26's password:"
send "123456r"
expect eof
EOF
done

ssh远程登录做些操作:
 

复制代码 代码如下:
#!/bin/bash
#远程登录重启mysql
/usr/bin/expect<<EOF
set timeout 120;
spawn /usr/bin/ssh root@192.168.0.26
expect "*password:"
send "123456r"
sleep 1
send "/etc/init.d/mysqld restartr"
sleep 2
send "exitr"
expect eof
EOF

您可能感兴趣的文章:
putty实现自动登录的方法(ssh和ssh2)
except自动登录的几段代码
expect自动登录远程服务器和执行重复任务的例子
ssh expect自动登录的脚本
shell实现自动登录的脚本
用expect实现ssh自动登录服务器并进行批量管理
自动登录到多台服务器的shell脚本
实现ssh自动登录的4种方法