使用expect 实现 scp 文件的时候不手动输入密码

来源:互联网 发布:oracle数据库管理规范 编辑:程序博客网 时间:2024/05/17 23:34
#!/usr/bin/expect -f  #如果忽略-f,则脚本只会执行文件里面的语句,不会理会参数里语句set password 密码  spawn scp 用户名@目标机器ip:拷贝文件的路径 存放本地文件的路径 set timeout 300  expect "用户名@目标机器ip's password:" #注意:这里的“用户名@目标机器ip” 跟上面的一致set timeout 300   send "$password\r" set timeout 300   send "exit\r" expect eof   附:scp参数  -r:拷贝目录  -c:允许压缩  一个完整的例子      #!/usr/bin/expect -f  set password 123456  #download  spawn scp root@192.168.1.218:/root/a.wmv /home/yangyz/  set timeout 300   expect "root@192.168.1.218's password:" set timeout 300   send "$password\r" set timeout 300   send "exit\r" expect eof  #upload  spawn scp /home/yangyz/abc.sql root@192.168.1.218:/root/test.sql set timeout 300   expect "root@192.168.1.218's password:" set timeout 300   send "$password\r" set timeout 300   send "exit\r" expect eof