一、建立SSH的信任关系
二、使用sshpass工具
2.1 sshpass工具的安装(介绍两种方式)
先检查系统有没有sshpass
whereis sshpass
a. yum安装
yum install sshpass
b. 源码安装
sshpass安装包下载地址:https://sourceforge.net/projects/sshpass/files/
tar -zxvf sshpass-1.06.tar.gz
cd sshpass-1.06
./configure
make
make install
2.2 sshpass工具的使用
测试是否安装成功:man sshpass
使用 sshpass -p password scp file user@ip:dir, 示例如下
sshpass -p oracle scp /home/oracle/single.txt oracle@192.168.56.12:/home/oracle
三、使用expect工具
3.1 expect工具的安装(介绍两种方式)
先检查系统有没有expect
whereis expect
a. yum安装
yum install expect
b. 源码安装
expect工具是依赖tcl的,所以也需要安装tcl
tcl安装包下载地址:https://sourceforge.net/projects/tcl/files/Tcl/8.4.19/tcl8.4.19-src.tar.gz
解压安装
tar -zxvf expect5.45.tar.gz
cd expect5.45
./configure --with-tcl=/usr/local/lib --with-tclinclude=../tcl8.4.19/generic
make
make install
ln -s /usr/local/bin/expect /usr/bin/expect
3.2 expect工具的使用
测试是否安装成功
expect
出现下面界面就表示安装成功
expect1.>
expect1.> exit
通过一个示例,演示如何使用expect
a.先创建一个脚本
vi test.exp
#!/usr/bin/expect
set timeout -1
spawn scp /home/oracle/single.txt oracle@192.168.56.12:/home/oracle
expect "*password:"
send "oracle\n" #这里填远程用户的密码
expect "100%"
expect eof
b.测试运行脚本
chmod +x test.exp
expect test.exp
c.将脚本加到crontab里
crontab -e
* * * * * expect /home/oracle/test.exp &> /home/oracle/test.log
expect比sshpass用起来更复杂,但expect功能更加强大,并不仅仅适用于scp,还适用于其它很多需要交互的命令。
[转自] https://www.bbsmax.com/A/WpdK39Q1dV