因为要用scp命令向远程服务器自动上传文件,但是又不想做成免密交互,所以就需要用到expect,expect的安装有两种
1.yum安装
yum -y install expect
2.手动安装
因为我有的用户权限有限,无法yum安装,所以只能手动安装,步骤如下:
(1)下载tcl和expect的包,放到linux指定位置上
链接:https://pan.baidu.com/s/19eWj4UGq8eH_G7BiuX_NkA
提取码:rcj7
expect-5.43.0.tar.gz tcl8.4.11-src.tar.gz
(2)将下载好的压缩包,解压到指定目录下,我这里解压到当前目录
[appadmin@KF089-web-8372 software]$ tar -zxf tcl8.4.11-src.tar.gz
[appadmin@KF089-web-8372 software]$ tar -zxf expect-5.43.0.tar.gz
(3)安装配置tcl(加粗部分替换成自己实际要安装的路径)
cd tcl8.4.11/unix
./configure --prefix=/home/appadmin/software/tcl --enable-shared
make
make install
#注意
#安装完毕以后,进入tcl源代码的根目录,把子目录unix下面的tclUnixPort.h copy到子录generic中。
cp ./tclUnixPort.h …/generic/
(4)安装配置expect
cd expect5.43
./configure --prefix=/home/appadmin/software/expect --with-tcl=/home/appadmin/software/tcl/lib --with-tclinclude=…/tcl8.4.11/generic
make
make install
ln -s /home/appadmin/software/expect/bin/expect /usr/bin/expect
最后这一步因为我没有权限无法创建连接,所以没有操作
(5)使用
因为没有建立软连接,所有使用的时候直接指向的是expect的安装路径
#!/home/appadmin/software/expect/bin/expect -f
spawn scp [lindex $argv 0] appadmin@100.0.0.0:[lindex $argv 1]
expect "*password:"
send "123456\r"
interact
本文介绍在受限用户权限环境下,如何手动安装Expect工具,并利用其进行SCP远程文件传输,包括下载、解压TCL与Expect源码包,配置安装TCL,安装配置Expect,以及最终使用Expect进行文件传输的具体步骤。
2715

被折叠的 条评论
为什么被折叠?



