zoukankan      html  css  js  c++  java
  • 【Linux学习】expect远程下载和上传样例

    expect远程下载和上传样例

     1 #!/bin/sh
     2 
     3 if [ $# -ne 7 ];then
     4 exit 8;
     5 fi
     6 dstip="$1";
     7 dstport="$2";
     8 id="$3";
     9 pw="$4";
    10 dstpath="$5";
    11 localpath="$6";
    12 action="$7";
    13 if [ ${action} = "upload" ];then
    14     command="scp -pP ${dstport} ${localpath} ${id}@${dstip}:${dstpath}";
    15 elif [ ${action} = "download" ];then
    16     command="scp -pP ${dstport} ${id}@${dstip}:${dstpath} ${localpath}";
    17 else
    18     exit 9;
    19 fi
    20 expect -c "set timeout 300;
    21             spawn ${command};
    22             expect {
    23                 "(yes/no)?" {
    24                     send "yes
    ";                                                        
    25                         expect {
    26                             "*assword:" {        
    27                                 send "${pw}
    ";
    28                                 expect {
    29                                     "100%" {    
    30                                         expect eof;
    31                                         exit 0;
    32                                         } 
    33                                     "*assword:" {
    34                                         exit 1;
    35                                         }
    36                                         timeout {exit 5;}
    37                                         eof {exit 5;}
    38                                     }
    39                             }
    40                             timeout {exit 3;}
    41                             eof {exit 3;}
    42                         }                            
    43                 }
    44                 "*assword:" {        
    45                     send "${pw}
    ";
    46                     expect {
    47                         "100%" {    
    48                             expect eof;
    49                             exit 0;
    50                             } 
    51                         "*assword:" {
    52                             exit 1;
    53                             }
    54                             timeout {exit 5;}
    55                             eof {exit 5;}
    56                         }
    57                 }
    58                 timeout { exit 1;}
    59                 eof {exit 1;}
    60             }
    61             "
    62 result=$?
    63 exit $result
    作者:gtea 博客地址:https://www.cnblogs.com/gtea
  • 相关阅读:
    20
    19下
    19上
    18下
    20145218 《Java程序设计》第五周学习总结
    20145218 《Java程序设计》第四周学习总结
    20145218 《Java程序设计》第三周学习总结
    20145218 《Java程序设计》第二周学习总结
    20145218《Java程序设计》第一周学习总结
    问卷调查
  • 原文地址:https://www.cnblogs.com/gtea/p/12668796.html
Copyright © 2011-2022 走看看