2010-05-12 6 views
0

Ce script doit se connecter à différents serveurs et copier un fichier à partir d'une définition définie. Il est obligatoire d'utiliser sftp et non ftp.FTP à SFTP dans les scripts shell

#!/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 

Je veux faire la même chose en utilisant sftp au lieu de ftp.

+1

Peu importe ce que, s'il vous plaît demander jyotibo utilisateur de changer leur mot de passe sur snv41915 maintenant que vous avez publié il. – pra

Répondre

0

La solution que je suis arrivé est ci-dessous:

#!/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 
Questions connexes