Shell-Scp自动输入密码
2015-07-24 11:14
344 查看
在LINUX上,我们可以很方便的使用scp命令来远程拷贝文件,但是由于scp命令本身无保存密码选项,所以在shell里面无法像samba那样子保存密码,比较麻烦,下面介绍下两种实现方法。
方法一:
ssh公私钥认证
方法二:
expect(expect - programmed dialogue with interactive programs, Version 5)实现
默认安装,需要手动安装expect包:yum -y install expect expect-devel
#!/bin/bash
expect -c "
set timeout 1200; ##设置拷贝的时间,根据目录大小决定,我这里是1200秒。
spawn /usr/bin/scp -r 192.168.0.201:/work/backup/db_back/ /work/dbback/
expect {
\"*yes/no*\" {send \"yes\r\"; exp_continue}
\"*password*\" {send \"123456\r\";} ##远程IP的密码。
}
expect eof;"
如果不设置timeout的话会自动退出,所以必须设置,或者用default字段可以设置expect超时或退出时的动作。
本文出自 “wine” 博客,请务必保留此出处http://knowledge92.blog.51cto.com/7143076/1677865
方法一:
ssh公私钥认证
方法二:
expect(expect - programmed dialogue with interactive programs, Version 5)实现
默认安装,需要手动安装expect包:yum -y install expect expect-devel
#!/bin/bash
expect -c "
set timeout 1200; ##设置拷贝的时间,根据目录大小决定,我这里是1200秒。
spawn /usr/bin/scp -r 192.168.0.201:/work/backup/db_back/ /work/dbback/
expect {
\"*yes/no*\" {send \"yes\r\"; exp_continue}
\"*password*\" {send \"123456\r\";} ##远程IP的密码。
}
expect eof;"
如果不设置timeout的话会自动退出,所以必须设置,或者用default字段可以设置expect超时或退出时的动作。
本文出自 “wine” 博客,请务必保留此出处http://knowledge92.blog.51cto.com/7143076/1677865
相关文章推荐
- QProcess执行带管道的shell命令
- shell编程笔记
- shell中临时使用其他用户执行命令
- powershell 编写event log
- Bash shell下命令换行输入
- Microsoft.Windows.TimedPowerShell.DiscoveryProvider 的介绍
- shell脚本中一些特殊符号
- shell脚本-----按行读取文件
- linux shell 数组建立及使用技巧
- shell,linux
- Linux Shell脚本面试25问
- 自动登录ssh的shell脚本
- shell 脚本调试工具
- shell 脚本调试(使用shell的执行选项)
- shell序列和nohup &
- Shell 学习笔记 (org-mode制作)
- shell脚本:shell的基本元素-2 变量
- shell学习
- Mac OS X 执行shell以及bash shell的区别。
- 【BASH】自己主动清理rman脚本备份文件