shell脚本中的FTP到SFTP

shell脚本中的FTP到SFTP,ftp,shell,unix,sftp,Ftp,Shell,Unix,Sftp,此脚本用于连接到不同的服务器并从定义的loaction复制文件。 必须使用sftp而不是ftp #!/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 $

此脚本用于连接到不同的服务器并从定义的loaction复制文件。 必须使用sftp而不是ftp

#!/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做类似的事情。

我得到的解决方案如下:

#!/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 $UserName@$remotehost       
         done
rm -f  .jyoti.batch.dat

不管怎样,请要求用户jyotibo在snv41915上更改他们的密码,因为您已经发布了该密码。