scp+expect 自动填充密码传送目录

2017-08-29  本文已影响0人  是阿离

问题

需要将A主机上path_a路径的文件备份到B主机上path_b路径下,由于path_a路径下文件比较大也比较多,计划进行后台执行

方案

使用expect+scp

    function auto_login_scp(){
        expect -c "
          set timeout -1;
            spawn scp -pr path_a BHostUserName@B:path_b
            log_file /tmp/hostBak_log #日志目录 自己定义
            expect {
                  *assword:* {
                      send $1\r;
                        expect {
                        *denied* {
                            exit: 2;
                            EOF
                        }
                        }
            }
            EOF {exit: 1;}
        }
        "
      return $?
    }

调用:

auto_login_scp BHostPassWD
TIPS

scp -p为保留原文件信息,如创建时间、所属用户等

问题

通过实际场景使用时发现,除了传送整个目录的方式之外,还有传送目录下部分文件的需求,此需求脚本可见:
scp+shell+expect传送目录下部分文件

上一篇下一篇

猜你喜欢

热点阅读