【问题标题】:How can I use FTP and SFTP together?如何同时使用 FTP 和 SFTP?
【发布时间】:2014-02-22 19:19:30
【问题描述】:

我需要制作一个 Unix 脚本,我需要 FTP 和 SFTP 功能。让我详细描述一下:

我需要从远程服务器导入一些文件,现在这些远程服务器要么支持 ftp 要么支持 SFTP,不能同时支持。所以我需要一个脚本,我的脚本将首先尝试执行 ftp,如果成功则退出脚本,如果没有则尝试在该服务器上执行 SFTP。

我尝试了以下脚本:

log=/opt/app/vertica/cdr/tmp/hpcom/sftp.txt
LOGINID=abc
HOST=sftp2.xyz.com
echo "starting ftp & sftp...." > $log
ftp -i -n -v $HOST <<-EOFtp >$log
user $LOGINID $PASSWD
bye
EOFtp
rc=$?
if [[ $rc = 0 ]]; then
echo "Successful ftp...$rc" `date "+%Y-%m-%d-%H.%M.%S"` >> $log
else
sftp  $LOGINID@$HOST<<EOF > $log
#cd $DIR
#get $FILE
bye
EOF
rc1=$?
if [[ $rc1 != 0 ]]; then
    echo "Error occured...$rc" `date "+%Y-%m-%d-%H.%M.%S"` >> $log
else
 echo "Successful sftp...$rc" `date "+%Y-%m-%d-%H.%M.%S"` >> $log
fi
fi

在上面的代码中,我的脚本没有正常工作……下面是日志文件的输出

"Not connected.
Successful ftp...0 2014-01-30-10.03.06"

它清楚地表明该主机上没有发生 FTP,因此理想情况下它应该尝试执行 SFTP,但它不符合 SFTP 语法,而是它来自脚本......

我希望我包含了所有内容,如果您需要任何进一步的信息来帮助解决这个问题,请告诉我。

【问题讨论】:

    标签: ftp sftp


    【解决方案1】:

    比较数字时需要使用“-eq”而不是“=”:

    if [[ $rc -eq 0 ]]; then...
    
    if [[ $rc1 -ne 0 ]]; then...
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-14
      • 1970-01-01
      • 1970-01-01
      • 2018-10-30
      • 2013-05-07
      • 1970-01-01
      相关资源
      最近更新 更多