2010-05-12 137 views
0

此腳本用於連接到不同的服務器並從定義的位置複製文件。 這是強制使用sftp而不是ftp。shell腳本中的FTP到SFTP

#!/usr/bin/ksh -xvf 

Detail="jyotibo|snv4915|/tlmusr1/tlm/rt/jyotibo/JyotiBo/  jyotibo|snv4915|/tlmusr1/tlm/rt/jyotibo/JyotiBo/" 

password=Unix11! 
c_filename=import.log 
localpath1=`pwd` 
for i in $Detail 
     do 

       echo $i 
       UserName=`echo $i | cut -d'|' -f1` 
       echo $UserName 
       remotehost=`echo $i | cut -d'|' -f2` 
       echo $remotehost 
       remote_path=`echo $i | cut -d'|' -f3` 
       echo $remote_path 
       { 
       echo "open $remotehost 
       user $UserName $password 
       lcd $localpath1 
       cd $remote_path 
       bi 
       prompt 
       mget $c_filename 
       prompt 
       " 
       } |ftp -i -n -v 2>&1 


     done 

我想用sftp代替ftp來做類似的事情。

+1

任何其他人,請向用戶jyotibo到現在你已經公佈它snv41915更改他們的密碼。 – pra 2010-05-12 19:48:56

回答

0

的解決方案,我得到的是如下:

#!/usr/bin/ksh -xvf 

Detail="jyotibo|snv4915|/tlmusr1/tlm/rt/jyotibo/JyotiBo/|import.log  jyotibo|snv4915|/tlmusr1/tlm/rt/jyotibo/JyotiBo/|impor 
t_1.log" 


for i in $Detail 
     do 
       echo $i 
       remote_path=`echo $i | cut -d'|' -f3` 
       file_Name=`echo $i | cut -d'|' -f4` 
       echo "cd $remote_path" > .jyoti.batch.dat 
       echo "get $file_Name" >> .jyoti.batch.dat 
       echo "bye" >> .jyoti.batch.dat 
       UserName=`echo $i | cut -d'|' -f1` 
       echo $UserName 
       remotehost=`echo $i | cut -d'|' -f2` 
       echo $remotehost 
       sftp -b .jyoti.batch.dat [email protected]$remotehost  
     done 
rm -f .jyoti.batch.dat