expect 非交互式sftp

#网络摘录整理

#!/usr/local/bin/expect -f 
#<---insert here your expect program location
#procedure to attempt connecting; result 0 if OK, 1 elsewhere
 proc connect {passw} {
  expect {
    "(yes/no)?" {send "yes/r";exp_continue}
    "password:" {send "$passw/r"
  expect {
     "sftp*" {
   return 0
      } 
  }
     }
  }
  # timed out
  return 1
 }
 
 #read the input parameters
 set user [lindex $argv 0]
 set passw [lindex $argv 1]
 set host [lindex $argv 2]
 set location [lindex $argv 3]
 set file1 [lindex $argv 4]
 
 #puts "Am citit:/n";
 #puts "user: $user";
 #puts "passw: $passw";
 #puts "host: $host";
 #puts "location: $location";
 #puts "file1: $file1";

 
 #check if all were provided
 if { $user == "" || $passw == "" || $host == "" || $location == "" || $file1 == "" }  {
   puts "Usage: <user> <passw> <host> <location> <file1 to send>/n"
   exit 1
 }
 
 #sftp to specified host and send the files
 spawn sftp $user@$host
 
 set rez [connect $passw]
 if { $rez == 0 } {
   send "cd $location/r"
   set timeout -1
   send "put $file1/r"
   #send "ls -l/r"
   #send "quit/r"
   #send "mkdir testsftp/r"
   send "quit/r"
   expect eof
   exit 0
 }
 puts "/nCMD_ERR: connecting to server: $host!/n"
 exit 1
 0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值