在命令行ssh远程登录服务器和scp远程传输文件都需要交互式输入密码,无法像mysql登录数据库 mysql -uroot -p123456一样直接完成。
其实可以用脚本依赖expect来达到这一目的。
首先安装expect:
[root@yqtrack-jumphost src]# yum -y install expect
SSH登录脚本:
#!/usr/bin/expect
set timeout 30
spawn ssh root@192.168.1.93
expect "password:"
send "123456@\$abcdef\r"
interact
SCP传送文件脚本:
#!/usr/bin/expect
set timeout 30
spawn scp /usr/local/src/zbx_redis_stats.py root@192.168.1.93:/usr/local/src/
expect "password:"
send "123456@\$abcdef\r"
interact
注意:密码有特殊字符如“$”需要转义;
密码以“\r”结尾。
[THE END]