From: http://www.cnblogs.com/sunss/archive/2010/12/23/1914763.html
在工作中,我需要把远程服务器上的文件,拷贝到本地,可是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 " 123456\r "
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 " 123456\r "
sleep 1
send " /etc/init.d/mysqld restart\r "
sleep 2
send " exit\r "
expect eof
EOF