本脚本需要借助expect完成,expect是一个免费的编程工具语言,用来实现自动和交互式任务进行通信,而无需人的干预。
首先,需要确认系统中已经安装expect,如果没有可以使用rpm或者yum方式安装:
rpm -qa|grep expect
yum -y install expect*
脚本示例如下:
#!/bin/bash
passwd=’oracle’
cat /home/oracle/test.txt
expect -c “
spawn scp /home/oracle/rman_201709031134.log /home/oracle/test.txt oracle@192.168.1.90:/home/oracle
expect {
\”(yes/no)?\” {send \”yes\n\”; expect \”*assword:\” {send \”$passawd\n\”}}
\”*assword:\” {send \”$passwd\n\”}
}
expect eof
“
#将/home/oracle/rman_201709031134.log /home/oracle/test.txt文件传输到192.168.1.90主机oracle用户下的/home/oracle目录中
#如果出现(yes/no),自动输入yes
#如果出现*assword,自动输入密码
--待续
转自 https://medium.com/@iuai1120/shell%E8%87%AA%E5%8A%A8%E5%8C%96scp%E4%BC%A0%E8%BE%93-93e93bb2f7ee