shell脚本调用expect实现自动化远程拷贝

发布时间:2020-12-24编辑:脚本学堂
本文介绍了在shell脚本中调用expect实现自动化远程拷贝文件的方法,有关shell与expect结合使用的例子,需要的朋友参考下。

需求描述: 
将10.10.50.16:/home/build下的debug.tcl, good.tcl best.tcl 远程拷贝到10.10.51.16:/home/build下。

实现方法:
1)、将debug.tcl, good.tcl best.tcl 分行写入到filename中
 

复制代码 代码示例:
cat filename
# file name
debug.tcl
good.tcl
best.tcl

2)、在shell/ target=_blank class=infotextkey>shell脚本中调用expect实现远程拷贝:
 

复制代码 代码示例:

#!/bin/sh
for _item in `cat filename | grep -v '#'`;do
    expect -c "
    set timeout 60
    spawn scp $_item 10.10.51.16:/home/build
    expect {
        "*yes/no*" {send "yesr"}
        "*assword:" {send "buildr"}
    }

    expect eof
    "
    echo "$_item is ok..."
done;

注意:
运行以上shell脚本,需要正确安装了expect模块扩展才可以。